AWS는 CodeDeploy를 통해 CD(Continous Delivery)를 진행한다.
CodeDeploy는 Revision(code, dependencies,packages 등 필요한 파일들과 AppSpec.yml)이
로컬에서 S3 Bucket, github, bitbucket 등으로 업로드될 때 실행되어 EC2 인스턴스 또는 auto-scaling group에 배포한다.
Appspec.yml은 OS, files, permisson 그리고 hooks 를 포함하고 있는 yaml 파일이다.
Appspec은 CodeDeploy agent에게 배포 또는 실행해야하는 파일들의 순서와 경로를 알려주는데,
이 때 모든 EC2 인스턴스에는 Appspec를 읽을 수 있는 agent가 설치되어 있어야한다.
Revision 업로드 후 배포되는 모든 과정들을 자동화할 수 있도록 CodeDeploy를 구성할 수 있다.
업로드 후 배포하는 과정부터, 배포 상태에 대한 alert, 배포 실패 시 자동 rollback.
이러한 구성은 첫 배포전에 설정할 수 있다.
고가용성이란, 서버와 네트워크, 프로그램등의 정보 시스템이 오랜 기간동안 정상적으로 지속되는 것을 뜻함
배포 실패 시 자동으로 rollback이 되는 특징은 서버가 장기간으로 운영될 수 있도록 관리한다.
또한, CloudWatch metrics 와 CloudTrail logs 와 같이 CodeDeploy와 연동이 되는 프로그램을 통해
트러블 슈팅도 가능하다. ( Trouble shooting makes deployments more predictable, and improves the user experience.)
Codepipeline, CloudWatch metrics 등 AWS에서 제공하는 기능들을 사용할 수 있으며
github, 젠킨스, redhat과 같은 다른 devops tool과도 통합이 가능하다.