AWS

    API서버 - AWS Rekognition을 사용한 Object Detection API

    1. Rekognition AWS에서 제공하는 딥 러닝 기반 시각 분석 서비스 기계 학습을 통해 이미지 및 비디오 분석 자동화 기계 학습 모델 및 인프라를 구축하지 않고도 사전 훈련되었거나 사용자 지정 가능한 API 제공 예) 레이블 탐지, 얼굴 비교 및 검색, 얼굴 탐지 및 분석, 텍스트 탐지 등등 문서: https://aws.amazon.com/ko/rekognition/ 2. IAM 사용자 권한 수정 rekogniton을 사용할 수 있게 IAM 사용자 권한을 추가한다. 3. 객체 탐지 API 코드 from flask import request from flask_restful import Resource from datetime import datetime import boto3 from confi..

    AWS Lambda - 사용자 지정 Layer 생성, 추가하기 (2)

    AWS Lambda - 사용자 지정 Layer 생성, 설정하기(1) 1. AWS Lambda Layer serverless를 이용하여 배포시 requirements.txt 파일에 패키지를 적어주면 자동으로 AWS에서 설치한다. 참고: https://donghyeok90.tistory.com/197 하지만 람다에는 할당량이 있어서 함수의 용량은 donghyeok90.tistory.com 위 포스트에서 Layer로 등록할 zip 파일의 생성까지 완료했다. 이어서 Layer를 생성하고 Lambda에 추가하는 방법을 알아보자. 1) Lambda Layer 생성을 위해서, AWS 콘솔에 로그인한다. 2) 앞서 만든 zip파일을 업로드 하기 위해, 먼저 AWS S3로 가서 버킷을 만든다. 레이어에 추가할 zip파일..

    AWS Lambda - 사용자 지정 Layer 생성, 추가하기 (1)

    1. AWS Lambda Layer serverless를 이용하여 배포시 requirements.txt 파일에 패키지를 적어주면 자동으로 AWS에서 설치한다. 참고: https://donghyeok90.tistory.com/197 하지만 람다에는 할당량이 있어서 함수의 용량은 50MB를 초과할 수 없다. 이런 제약을 해소하기 위해 계층(Layer)을 이용한다. Layer에 패키지들을 미리 설치해놓으면 aws는 람다가 실행될 때 Layer를 붙여준다. Layer를 이용하면, 공통된 패키지를 사용하는 다른 애플리케이션을 배포할 때도 유용하게 사용할 수 있다. Lambda의 할당량 참고: https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/gettingstarted-li..

    AWS - IAM 사용자 권한 설정하기

    1. IAM (Identity and Access Management) AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹서비스 AWS 계정을 처음 생성 할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한을 지님 완전한 액세스 권한을 통합 인증(SSO) 자격 증명이라고 하며, 루트 사용자라고도 함 IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여 된 대상을 제어 일상적인 작업, 관리 작업의 경우에도 루트 사용자는 가능한한 사용하지 않는 것이 좋음 2. IAM 사용자 권한 부여하기 현재 나의 목적은 Lambda를 사용해서, Flask로 개발한 REST API서버를 Serverless(서버리스) 배포 하는 것이다. 따라서 그에 맞게 권한 설정하는 법을 알아본..

    AWS EC2 - GitHub를 거치지 않고 서버와 로컬 간의 파일 전송(FTP)

    깃허브엔 업로드 용량 제한이 있기 때문에 서버에 용량이 큰 동영상 파일 등을 업로드하고 싶을 때는 FTP(File Transfer Protocol) 방식으로 로컬과 서버 간 직접 전송할 수 있다. 파일질라 다운로드 https://filezilla-project.org/download.php?type=client 파일질라는 많이 사용되는 FTP 클라이언트다. 설치 후 실행화면에서 파일 > 사이트 관리자를 누른다. 새 사이트를 눌러 이름을 짓고 설정을 해준다. 프로토콜: SFTP 호스트: 내 EC2 서버의 주소를 입력 로그온 유형: 키 파일 사용자: EC2에 접속하던 사용자명 (ec2-user) 키 파일: 내 PPK 키 파일을 등록 완료 후 연결을 누른다. 내 로컬사이트와 리모트사이트(서버) 가 연결 되었다..

    AWS EC2 에서 배포한 앱을 수정하는 방법

    배포해서 백그라운드에서 실행중인 앱을 수정할 때 어떤 일련의 과정을 거치는지 정리해본다. 0. 수정 전 앱 화면 1. 로컬에서 코드를 수정 2. 수정한 코드를 테스트해보고 문제가 없으면 commit 3. push 하면 github에 수정본이 저장된다. 4. 앱이 구동중인 서버에 pull 5. 수정 완료

    AWS EC2 - 여러 개의 포트 지정, 실행하기

    하나의 EC2 서버에서 여러 개의 streamlit app을 실행하려 한다. streamlit은 기본적으로 8501 포트로 실행되고 8501에 실행중인 프로세스가 있으면 8502, 또 있으면 8503 이런식으로 증가한다. 내가 직접 포트를 지정해 줄 수도 있다. --server.port 포트번호 실행문 뒤에 이걸 붙여준다. 두 개의 streamlit app을 각각 8501, 8503 포트에서 백그라운드 실행해보겠다. 내 AWS EC2의 퍼블릭 주소뒤에 :포트번호를 붙여서 주소창에 입력하면 접속이 가능하다. 접속이 안된다면 인바운드 규칙을 추가해줘야 한다. 관련 포스트를 참고하자. https://donghyeok90.tistory.com/122 AWS EC2 서버에 접속할 수 있도록 포트 허용하기 stre..

    AWS EC2 - 터미널 접속을 끊어도 백그라운드에서 돌아가게 하는 방법

    이전 포스팅에서 실행한 앱은 터미널을 닫으면, 실행명령도 사라지기 때문에 더 이상 돌아가지 않는다. 터미널 접속을 해제해도 365일 24시간 서버가 돌아갈 수 있도록 백그라운드 실행하는 법을 알아보자. 백그라운드로 실행하는 법 # $ nuhup 명령어 & nohup streamlit run app.py & 아무 일이 일어나지 않은 것 처럼 보이지만, 터미널 창을 끄고 AWS EC2의 퍼블릭주소로 접속하면 여전이 app은 돌아가고 있다. 현재 실행중인 프로세스를 확인하는 법 # $ ps -ef | grep 프로세스명 ps -ef|grep streamlit 백그라운드에서 실행 중인 프로세스를 종료하는 법 # $ kill 프로세스id kill 4535 실행중인 프로세스를 확인할 때와 실행할 때 터미널 창을 확..