• 1) 함수
    • 1-1) 기본설정
      • 작업 : 
        • Publish new version : 최신에서 작업된 함수를 새로운 하나의 '버전'으로 땀.
        • 별칭 생성 : '버전'을 1or2개 선택하여, 명칭을 붙여줌. (2개일 경우, 비율조절 가능)
      • 구분자 : 생성된 '버전' 이나 '별칭' 을 선택하여, 해당 함수의 구별된 ARN를 설정하도록 함. ($LATEST가 디폴트)
      • 트리거 추가 : API Gateway, AWS IoT, S3, SNS, SQS, ... , 써트파티 이벤스 소스 등과 연결.
      • 대상 추가 : SNS토픽, SQS대기열, Lambda함수, EventBridge버스 으로 연결.
      • 아키텍처 :
        • x86_64 - x86 기반 프로세서에 사용되는 64비트 x86
        • arm64 - AWS Graviton2 프로세서에 사용되는 ARM64
    • 1-2) 함수설정
      • 환경변수 : (외부호출 API키 같은) 환경변수를 등록하여, "os.environ[이름]" 식으로 사용하면 된다.
      • 실행역할 : IAM의 특정 Role지정 후, 해당 Role에 사용할 리소스의 특정 권한을 주면 된다.
      • VPC : Virtual Private Cloud에 연결하여 인터넷에 노출되지 않고 네트워크 리소스에 액세스.
      • X-RAY : 함수 내부적인 호출 tracing 옵션.
      • 동시성 : 동시에 몇개의 Thread까지로, 진짜 1로 제한하니~ 하나씩 순차적으로 처리했다...
      • 프로비저닝된 동시성 : // TODO : ...
      • 비동기식 호출 : // TODO : ...
      • 함수 URL : ...
    • 1-3) Layers설정
      • 함수에서 사용할 Layer를 추가하여, 활용 할수있도록 설정 한다.
      • 추가한 이후, 함수코드에서 "import {모듈명}" 식으로 사용하면 된다.
    • 특집) Lamdba 함수 동시성 관리
      • 동시성 이란? 특정 시각에 'Lambda 함수'가 서비스 할 수 있는 요청의 갯수.
      • (하나의 인스턴스가 하나의 요청을 처리하고, 그 도중에 요청이 또 오면~ 다른 인스턴스가 할당되어 동시성이 증가)
      • Reserved-Concurrency : 최대 동시 인스턴스 수를 보장(?) 제한(?)
        • 설정을 하지않는 'Lambda 함수' 는 "예약되지 않은 동시성 풀"을 공유 하게 됨. (아무나 막쓰면 되는 구조?)
        • 설정을 한 'Lambda 함수' "예약된 동시성 풀"의 한도 내에서 사용을 하게 됨.
      • Provisioned-Concurrency :  요청에 즉시 응답할 준비가 되도록, 실행 준비가 된 인스턴스 수를 보장. (추가요금발생)
        • ...
    • 특집) 동시성과 Auto-Scale 상호작용
      • Lambda 함수 규모 조정.
      • 확장으로 인해, 새로운 인스턴스들의 지연 시간이 늘어나는 현상.
      • 미리 Provisioned-Concurrency 를 할당하여~ 지연 시간 거의없이 확장 가능!
      • 즉, Application Auto Scaling 를 활용하여~ 사용률 or 스케쥴 에 따라 Provisioned-Concurrency 자동제어 가능!
      • Provision 초기화 Burst 제한 : // TODO : ...
        • https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/configuration-concurrency.html
        • https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/invocation-scaling.html
      • ...
  • 2) Layers
    • 람다함수에서 사용할 외부Lib 등등이 있을경우, Layer를 만들어서 사용할수있다.
    • 파이썬의 경우, {압축명}/python/{모듈명}/{코드...} 이런 구조로 압축을하여~ 사용함.
    •  
  • 3) 애플리케이션
    • Lambda애플리케이션 == "Lambda함수+event리소스+etc리소스" 의 조합으로 코드, 배포, 모니터링을 관리.
    • 쌤플로써... 전형적인 '서버리스API', 'S3파일Worker', 'Watch잡스케쥴러', 'SNS 및 SQS' 식의 아주(?) 멋있어는 보이데!!!
    • (막상... 일단 AWS콘솔에서는 Node.js 만 지원된다... 왜죠? ㅎㅎ 구대기 같은 노드ㅈㅅ)
    • 기본적으로, {CodeCommit(소스)}->{CodeBuild(빌드)}->{CloudFormation(배포)} 식의~
    • CodePipeline으로 "지속적인 개발" 을 할수있는... 무시무시한... 음... ㅎㅎㅋㅋ
  • ...
  • 별첨) AWS Lambda Cold Start Problem
  • Python 런타임 기본환경
    • 핸들러 :
    • zip 배포 :
    • image 배포 : 
    • context : 
    • Log :
    • Test & Err & X-Ray : 
  • 모니터링
    • ...
  • 케파
    • https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/gettingstarted-limits.html
      • timeout : 15분, layer : 5개, payload : 6MB, zip : 50MB, image : 10GB, /tmp : 늘어남, ...
    • ...
  • ...

-끝-

 

'AWS' 카테고리의 다른 글

AWS CodePipeline  (0) 2020.03.11
AWS CodeCommit  (0) 2020.03.10
Amazon S3  (0) 2020.03.05
Amazon API Gateway  (0) 2020.02.27
Amazon Managed Blockchain  (0) 2019.04.27

+ Recent posts