배포 환경설정(DeployMent Configulation)
배포 환경설정(Deployment Configulation)은 CodeDeploy가 배포할 인스턴스 수, 전반적인 배포 작업 및 배포 성공 판정에 대해서 관여하는데 배포 그룹 생성 시 배포 환경설정도 같이 설정을 해줘야 한다. 배포 타입인 OneAtATime, HalfAtATime, AllAtOnce에 따라 배포 환경설정이 제공된다. 배포 그룹이 하나 이상의 인스턴스인 경우 CodeDeply는 한 번에 하나씩 애플리케이션 배포가 성공한 후에 다음 배포로 넘어가는데 OneAtATime은 마지막 인스턴스를 제외한 나머지 모든 인스턴스의 배포가 성공했을 때 배포 성공으로 판정한다. 예를 들어 인스턴스가 5개일 경우 마지막 인스턴스를 제외한 4개의 인스턴스의 배포가 성공했다면 배포 성공으로 판정한다. 같은 상황에서 세 번째 인스턴스를 제외한 나머지 4개의 인스턴스가 배포에 성공했다면 전체 배포가 실패한 것으로 판정한다. 만약 하나의 인스턴스를 이뤄져 있다면 이 유일한 인스턴스를 마지막 인스턴스로 간주하여 배포가 성공해야 전체 배포가 성공한 것으로 판정한다. HalfAtATime은 배포 그룹에 속한 전체 인스턴스 중 절반이 배포에 성공하면 나머지 절반의 인스턴스를 배포하는 방식이다. 다시 말해 전체 인스턴스의 절반이 배포에 성공하면 전체 배포에 성공한 것으로 판정한다. AllAtOncedm 경우는 한 번에 동시다발적으로 많은 인스턴스를 배포하는데 이들 중 하나라도 배포에 성공하면 전체 배포가 성공한 것으로 판정한다. 이렇게 AWS 자체에서 제공하는 OneAtATime, HalfAtATime, AllAtOnce 말고도 커스텀 배포 환경설정도 제공하는데 사용자는 CodeDeploym를 통해서 동시에 배포하려는 인스턴스의 수를 조정할 수 있다. 배포 작업은 주기적인 라이프사이클 이벤트에 따라 구분될 수 있는데 애플리케이션 중지, 사전 설정 요소 설치, 애플리케이션 설치, 애플리케이션 실행 및 검증 등으로 구분할 수 있다. 그리고 스크립트로 작성된 에이전트를 이용해 라이프사이클 이벤트를 실행할 수 있다.
애플리케이션 명세서 (AppSpec)
애플리케이션 명세서 파일은 에이전트가 애플리케이션 파일을 어디에 복사할지, 배포 작업 등 실행할 스크립트를 정의해놓는 환경설정 같은 파일이다. 공통적으로 AppSpec 파일은 Repository의 루트에 위치해야 하고 파일명은 'appspec.yml'로 지정해줘야 한다. 애플리케이션 명세서 파일은 크게 Version 섹션, OS 섹션, Files 섹션, Permissions 섹션, Hooks 섹션으로 구성된다. Version 섹션은 애플리케이션 명세서 파일의 버전 번호이고 OS 섹션은 Linux나 Windows 중 하나를 선택하여 지정해야 한다. Files 섹션은 repository에서 인스턴스로 복사되는 파일 대상을 지정한다. Permissions 섹션은 파일에 대한 소유권한, 그룹 멤버십, 퍼미션 등을 정의하고 Amazon Linux, Ubuntu, RedHatEnterprise Linux 인스턴스에서만 사용할 수 있다. 마지막으로 Hooks 섹션은 라이프사이클 이벤트에서 에이전트가 실행해야 할 스크립트를 정의한다. 이때 Location, Timeout, Run As Amazon Linux 튜플 요소가 포함되어야 한다.
'AWS 공부' 카테고리의 다른 글
AWS Systems Manager (0) | 2022.06.20 |
---|---|
배포 자동화 - CodePipeline (0) | 2022.06.17 |
AWS 배포 - CodeCommit, CodeDeploy (0) | 2022.06.15 |
AWS 운영 효율화 (0) | 2022.06.14 |
비용 효율화 - E2C 예약 인스턴스, EC2 스팟 인스턴스 (0) | 2022.06.13 |
댓글