- AWS CodeDepoly
- EC2, 온프레미스, Lambda, ECS 으로 '배포'를 자동화 해주는 서비스.
- 두가지의 '배포유형' 제공.
- 실행중 롤링 배포 : EC2,온프레미스 플랫폼을 대상으로~ 배포그룹의 각 인스턴스에 Application을 stop/start 를 하는식. (LB기반 롤링)
- Blue/Green 배포 : 새 버젼의 Application 업데이트를 중단 최소화 하여 진행 가능.(구버젼 과 함께 신버젼 프로비저닝)
- EC2,온프레미스 : ...
- Lambda : 업데이트된 람다함수 버젼으로, 트래픽을 이동하는 식으로~ 이동방식 옵션을 제공함.
- ECS : 동일한 서비스의 대체 작업 세트로 트래픽을 이동. AllAtOnce 혹은 Linear 혹은 Canary 옵션설정 가능.
- CloudFormation의 배포 : Stack 업데이트 일부로, 트래픽이 새로운 리소스 으로 이동 하는 방식으로 배포함.
- 주요용어
- 애플리케이션 : 배포에 관련된... '리비전', '배포Config', '배포그룹', '배포유형' 를 조합한 고유식별 단위.
- 리비전(개정) : 람다의 경우, 해당 함수 변경을 YAML(혹은JSON) 형식으로 AppSpec파일에 명시.
- 배포Config : 배포중의 트래픽을 어떻게 라우팅 할지? 관련한 방식을 정의 해둔것. (AllAtOnce, Canary, Linear)
- 배포그룹 : 개별 인스턴스 세트.
- 배포 : ...
- (별첨) 배포방식 이란?
- 실행중 롤링배포 :
- 구성된 서버에 트래픽을 하나씩 빼가며, 점진적으로 배포.
- 블루/그린 :
- 트랙픽을 일괄적으로 구(블루) -> 신(그린) 전환.
- 서버구성이 두배로 들지만... 빠른 롤백과 상용 테스트에 용의.
- 카나리 :
- 까(카)나리 새를 미리 탄광에 노출해보는 전략.
- 즉, 특정 or 램덤 User 의 트래픽만 신버전으로 분산 및 확인 후~ 전체적용.
- A/B 테스트가 가능하고, 성능 모니터링에 좋다.
- 실행중 롤링배포 :
- 작업순서 (Lambda 배포)
- 1. 애플리케이션 생성
- 2. 배포그룹 명시
- 3. 배포Config 명시
- 4. AppSpec 파일 작성
- 5. 배포 및 확인 (혹은 Error시, 롤백)
- 튜토리얼 (Lambda함수 배포)
- (Lambda함수 업데이트 감지, 배포 트리거, 배포, 배포확인 hook, ...)
- 음... CodeDeploy 차원에서 Lambda함수의 지속적인 배포를 지원하지는 않는것 같음...
- 단순히 appspec.yaml 으로는... 함수의 alias에 version을 바꾸는 수준?
- 예시)
-
version: 0.0 Resources: - 람다함수명: Type: AWS::Lambda::Function Properties: Name: "람다함수명" Alias: "특정별칭" CurrentVersion: "현재버젼" TargetVersion: "바꿀버젼"
- 특정 '배포그룹'에서, 지정한 '배포Config' 및 'AppSpec' 으로~ "배포"는 하면 된다.
- (트래픽이 안전하게 이동함. 왜냐면, APIGW가 Lambda함수의 특정 alias를 바라보도록 했기 땜시)
- CodeBuild 차원에서 Lambda를 업데이트 하고 -> 해당 비젼을 만들고 -> appspec을 아티팩트로 보내면~
- CodeDeploy 가 받아서, 리비전 업데이트 하는식으로 하면... 안되려나???
- 그냥... SAM은 결국 CloudFormation이고, `sam deploy`도 결국 CF Stack기반으로 쳐랄이니~
- Lambda함수 배포는 당연히? CodeDeploy를 쓸 이유가 없는거 였나? ㅎㅎ; 꺆 속았닦!ㅋ
- ...
-끝-
'AWS' 카테고리의 다른 글
Amazon Route53 (작성예정) (0) | 2020.12.02 |
---|---|
Amazon Kinesis Data Streams (0) | 2020.10.18 |
AWS CodeBuild (0) | 2020.08.29 |
Amazon EKS (0) | 2020.07.16 |
Amazon SageMaker Studio (0) | 2020.07.16 |