AWS - Lambda VPC를 사용하여 고정 IP 주소 생성
·
Platform/AWS
[1] 구현 아키텍처- Lambda는 VPC의 프라이빗 서브넷에서 실행되므로 외부(인터넷)에 접근할 수 없습니다.- 따라서 NAT Gateway를 사용하여 내부서브넷과 통신을 할 수 있게 합니다.- 아래 이미지의 빨간색 부분이 고정 IP 적용을 위한 차이점입니다. 참조 : 2024.08.11 - [Platform/AWS] - AWS - 네트워트(Network) 개념 AWS - 네트워트(Network) 개념1. AWS 네트워크 다이어그램AWS에서 내부 서비스를 접근할 때, 또는 외부 인터넷을 사용할 때 다이어그램을 요약하자면 아래와 같습니다.많이 복잡하지만, 아래 다른 네트워크 개념을 보고 다시wave35.tistory.com  [2] VPC 생성- VPC 대시보드에서 우측상단의 'VPC 생성' 버튼을 눌..
AWS - Lambda Runtime 실행환경
·
Platform/AWS
Lambda 실행 환경- Lambda는 안전하고 격리된 런타임 환경을 제공하는 실행 환경에서 함수를 호출- 실행 환경은 함수를 실행하는 데 필요한 리소스를 관리- 내/외부 익스텐션(extension)을 통해 실행환경 수명주기 지원  실행환경 수명주기(Lifecycle) 3단계Init리소스로 실행 환경을 만듬함수와 모든 계층(Layer)을 로드하고 S3에서 함수의 코드를 다운로드런타임&익스텐션을 초기화, 함수의 초기화 코드(기본 핸들러 외부의 코드)를 실행 Invoke함수 핸들러를 호출, 함수의 실행 완료 시킴 ShutdownLambda 함수가 일정 기간 동안 호출을 받지 않으면 이 단계가 트리거 됨Lambda는 런타임을 종료하고 익스텐션이 완전히 중지되도록 알림을 보낸 다음 환경을 제거모든 메모리와 시스..
AWS - Lambda Warm and Cold Start
·
Platform/AWS
Cold Start(콜드 스타트)Cold Start는 AWS Lambda 함수가 처음 호출되거나 오랜 시간 동안 호출되지 않다가 다시 호출될 때 발생하는 초기화 과정입니다. 초기화 과정AWS Lambda는 함수가 실행될 때마다 내부적으로 새로운 컨테이너(Execution Environment)를 생성합니다.이 과정에는 함수의 코드 및 라이브러리를 로드하고, 런타임 환경을 초기화하며, 네트워크 설정 및 보안 그룹 등을 설정하는 시간이 필요합니다.이 초기화 단계가 다소 시간이 걸리기 때문에, 첫 호출 시 지연(latency)이 발생할 수 있습니다. 실행단계  Warm Start(웜 스타트)Warm Start는 함수가 호출될 때 이미 생성된 컨테이너가 재사용되는 경우를 말합니다.Warm Start를 조정하여 ..
AWS - 다른 계정의 S3로 Lambda trigger 설정
·
Platform/AWS
[ 테스트 ]AAAA계정의 S3에서 파일이 업로드되면BBBB계정의 Lambda 실행   [ BBBB 계정 ] 1. Lambda 함수가 있는 AWS 계정을 사용하여 Lambda 콘솔에서 함수 페이지를 엽니다.2. Amazon S3에서 호출할 Lambda 함수의 이름을 선택합니다.3. 구성 탭에서 권한을 선택합니다.4. 리소스 기반 정책 창에서 권한 추가를 선택합니다. 5. 정책 문 창에서 AWS 서비스를 선택합니다. 서비스 드롭다운 목록이 나타납니다.6. 서비스 드롭다운 목록에서 S3를 선택합니다. 더 많은 텍스트 필드가 나타납니다.7. 소스 계정의 경우 Amazon S3 버킷을 호스팅하는 계정의 AWS 계정 ID를 입력합니다.8. 소스 ARN에 Amazon S3 버킷의 ARN을 입력합니다. 다음 형식을 ..
AWS - Lambda 다른 계정의 IAM권한 사용
·
Platform/AWS
다른 계정의 IAM을 사용하여 Lambda함수에서 다른계정의 S3, Athena, Glue 등을 컨트롤 예제 : AAAA 계정의 람다함수를 통해 BBBB계정의 S3와 athena, glue테이블에 접근 [ 1 ] AAAA 계정에서 람다를 실행하는 iam role(my-lambda-etl-role)에 AccessCrossIAMBBBB라는 정책을 생성한 후, 아래 스크립트 추가 (기존 role에 추가시 policy로 생성 후 연동) { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::BBBB:role/bbbb-lambda-etl-role" } } [ 2 ]..
AWS - SAM을 통한 Lambda [2]Local Debugging
·
Platform/AWS
1. template.yaml 파일 수정 AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > test description # Global 설정 Layer선언 부분 Globals: Function: Timeout: 3 # 람다 함수 관련 부분 Resources: # 대표이름, sam build시 해당 이름으로 폴더가 생성됨 HelloWorld: Type: AWS::Serverless::Function Properties: # 해당 폴더가 있는 URL ( ex. myPycharmProject/sam-app/hello_world/app.py ) CodeUri: hello_world/ # 함수명, ..
AWS - SAM을 통한 Lambda [1]Pycharm 환경 셋팅
·
Platform/AWS
[ 사전 설정 ] 1. aws cli OS별 설치 방법 : https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2.html 2. aws sam cli OS별 설치 방법 : https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html 3. docker 설치 Run Function을 하게 되면 Docker 환경에서 실행 됨 Mac OS일 경우 마운트 경로 추가 4. pycharm 설정 plugin에서 aws toolkit을 검색 하여 설치 aws설치 path가 잘 잡혔는지 확인 프로젝트 생성 [ SAM 명..
wave35
'lambda' 태그의 글 목록