목록AWS (37)
우노
들어가기 앞서, Lambda 의 실행 환경은 Cold Start 와 Warm Start 상태로 구분되며, Lambda 는, 함수가 5분 동안 실행되지 않을 경우, 실행 환경을 Warm Start 에서 Cold Start 상태로 전환합니다. Cold Start 상태에서의 함수 실행 시간은, Warm Start 상태에서의 함수 실행 시간보다 응답이 지연됩니다. 따라서, Warm Start 를 유지하기 위한 방법 중 하나로, CloudWatch 를 사용해 주기적으로 Lambda 함수를 실행 해놓는 방법이 있습니다. 1. 단순히 Lambda 호출만 반복할 경우 Lambda 함수 접근 후, 좌측의 [트리거 추가] 클릭 트리거 구성 후, 추가 1-1. Lambda 함수 접근 후, 좌측의 [트리거 추가] 클릭 1-2..
들어가기 앞서, 이전 글에선, AWS S3 를 이용한 정적 웹사이트 호스팅 방법에 대해서 다뤄보았었습니다. https://wooono.tistory.com/385 하지만, 보통 웹 페이지 접근은, S3 앤드포인트를 이용한 접근 방법보다 DNS 주소를 이용한 접근 방법이 많이 사용됩니다. 예를 들어, google.com, naver.com 등이 있습니다. AWS 는 Route 53 이라는 서비스를 통해 DNS 서비스를 제공하고 있습니다. 따라서, 해당 포스트에서는 AWS Route 53 를 통해 DNS 를 통한 정적 웹 사이트(AWS S3 bucket) 접근 방법에 대해서 다뤄보겠습니다. 진행 순서 정적 웹 사이트 호스팅 용 AWS S3 bucket 생성 및 설정 호스팅 영역 생성 레코드 생성 DNS 를 ..
진행 순서 S3 버킷 생성 S3 버킷 설정 변경 속성 변경 권한 변경 S3 버킷에 index.html 파일 업로드 S3 앤드포인트 접근 1. S3 버킷 생성 AWS S3 서비스 접근 → [버킷 만들기] 버킷 이름 작성 AWS 리전 선택 [퍼블릭 액세스 차단 설정] 의 모든 퍼블릭 액세스 차단 비활성화 우측 하단의 [버킷 만들기] 클릭 2. S3 버킷 설정 변경 속성 변경 위에서 생성한 버킷 접근 → 상단의 [속성] 탭 클릭 → 하단 [정적 웹 사이트 호스팅] 의 [편집] 클릭 정적 웹 사이트 호스팅 [활성화] → 호스팅 유형 [정적 웹 사이트 호스팅] → 인덱스 문서 [index.html] → 우측 하단의 [변경 사항 저장] 권한 변경 상단의 [권한] 탭 클릭 → 중간 [버킷 정책] 의 [편집] 클릭 해..
AWS Lambda Provisioned Concurrency 란? AWS Lambda 에는 Cold Start 라는 개념이 존재합니다. Lambda 는, 사용자로부터 요청을 받으면, 함수를 실행할 수 있는 런타임 환경을 준비한 뒤, 함수를 실행합니다. 하지만, 한 동안 함수를 사용하지 않았거나, 함수를 새롭게 업데이트했다면, Lambda 는 사용자로부터 요청을 받았을 때, 새로운 런타임 환경을 준비하는 시간을 갖게 됩니다. 이 때 발생하는 지연 시간을 Cold Start 라고 합니다. 이러한 문제를 해결하기 위해 생성된 기능이 Provisioned Concurrency 이며, Provisioned Concurrency 는 AWS Lambda 함수를 지속적으로 초기화하며, 런타임 환경을 준비함으로써, 사..
들어가기 앞서, 일반적으로 AWS EC2 는, EC2 생성 시 발급 받은 pem key 를 사용해 SSH 접속한다. 이는, brute force 공격에 의해 암호가 탈취되는 것을 막기 위한 보안 조치이다. 그러나, 특수한 상황에 따라 pem key 없이, 임시적으로 User 를 생성하여, User-password 방식으로 EC2 에 SSH 접속 가능하도록 설정해야 할 수도 있다. 보통, 협업 시 접근 편의성을 위해 해당 방식을 사용한다. 따라서, 해당 포스트에서는 pem key 없이 User-password 방식을 사용해, AWS EC2 에 SSH 접속 가능하도록 설정하는 방법을 다룰것이다. 물론, 보안 측면에서 굉장히 위험하다. 진행 순서 pem key 를 사용하여 EC2 접속 User 및 Passwo..
AWS CLI 를 사용한, S3 업로드 및 다운로드 S3 에 파일 업로드 aws s3 cp "로컬 경로" "S3 버킷 경로" S3 에서 파일 다운로드 aws s3 cp "S3 버킷 경로" "로컬 경로" S3 에 폴더 업로드 aws s3 cp "로컬 경로" "S3 버킷 경로" --recursive S3 에서 폴더 다운로드 aws s3 cp "S3 버킷 경로" "로컬 경로" --recursive
Container Image 기반으로 Lambda Function 을 구현하면, 로그 출력으로 Duration, Billed Duration, Init Duration 을 확인할 수 있다. Init Duration Lambda 함수 초기화 시간 cold start 에만 발생 Duration 함수 실행 시간 cold start, warm start 모두 발생 Billed Duration 비용 청구 시간 cold start 일 땐 Init Duration + Duration = Billed Duration warm start 일 땐 Duration = Billed Duration
구현 순서 EC2 생성 및 접속 Docker 설치 Dockerfile 생성 Image 생성 액세스 키 생성 AWS Configure 설정 ECR 환경 설정 Image tagging ECR 에 Image 업로드 Lambda Function 생성 Lambda Function 테스트 1. EC2 생성 및 접속 AWS Console 에서 EC2 서비스에 접속합니다. 아래 설정으로 EC2 를 생성합니다. Amazon Machine Image(AMI) Amazon Linux 2 AMI (HVM), SSD Volume Type 인스턴스 유형 t2.medium 스토리지 크기 20GB 보안 그룹 SSH, TCP, 22, 위치무관 2. Docker 설치 생성한 EC2 에 접속한 뒤, Docker 를 설치합니다. (Linu..
AWS Lambda + API Gateway 로 RESTful API 생성 구현 순서 AWS Lambda 콘솔을 사용하여, Lambda 함수 생성 API Gateway 콘솔을 사용하여, REST API 생성 API 테스트 실행 순서 사용자가 REST API 를 호출하면, API Gateway 는 요청을 Lambda 함수로 라우팅 API Gateway 는 Lambda 로부터 받은 응답을 사용자에게 반환 1. Lambda 함수 생성 (Python) POST 받은 데이터를 그대로 출력하는, 간단한 Lambda 함수를 생성합니다. https://console.aws.amazon.com/lambda에서 Lambda 콘솔에 로그인합니다. [함수 생성] 을 선택합니다. [함수 이름] 을 입력합니다. — 해당 포스트에..
목표 Tensorflow 모델을 사용해, 입력에 대한 예측값을 출력해주는 Lambda Function 을 생성합니다. Lambda Function 은 모델을 사용하기 위해 고용량 패키지를 호출해야하는데, AWS Lambda 에서 제공해주는 파일 저장소는 크기 제한이 존재하므로 Amazon EFS 를 통해 AWS Lambda 에서 고용량 패키지를 사용 가능하도록 설정합니다. 순서 Lambda 에서 사용할 package 를 EFS 에 설치 EFS 를 마운트 할 EC2 생성 Lambda 에서 EFS 로 접근하기 위해, EFS 용 보안 그룹 생성 EFS 및 액세스 포인트 생성 EC2 접속 후, EFS 마운트를 위한 패키지 설치 EC2 에 EFS 마운트를 진행할 디렉토리 생성 후, 마운트 진행 마운트 디렉토리에 ..