[AWS] codedeploy 란 무엇일까?

Yuri Lee·2022년 3월 15일
0

codedeploy

CodeDeploy는 Amazon EC2 인스턴스, 온프레미스 인스턴스, 서버리스 Lambda 함수 또는 Amazon ECS 서비스로 애플리케이션 배포를 자동화하는 배포 서비스이다.

  • Amazon EC2
  • 온프레미스(on-premise) : 소프트웨어 등 솔루션을 클라우드 같이 원격 환경이 아닌 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식을 말한다. 온프레미스는 클라우드 컴퓨팅 기술이 나오기 전까지 기업 인프라 구축의 일반적인 방식이었기 때문에 "이전의" 또는 "전통적인"이라는 단어와 함께 사용된다.
  • 서버리스 : 서버리스(serverless)란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델이다.
  • Lambda : Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스이다. Lambda는 고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 코드 모니터링 및 로깅 등 모든 컴퓨팅 리소스 관리를 수행한다. Lambda를 사용하면 거의 모든 유형의 애플리케이션 또는 백엔드 서비스에 대한 코드를 실행할 수 있다. Lambda가 지원하는 언어 중 하나로 코드를 공급하기만 하면 된다.
  • Amazon Elastic Container Service(Amazon ECS) : 클러스터에서 컨테이너를 손쉽게 실행, 중지 및 관리할 수 있게 하는 컨테이너 관리 서비스로서 확장성과 속도가 뛰어나다. 컨테이너는 서비스 내에서 개별 태스크나 여러 태스크를 실행하는 데 사용하는 태스크 정의에 정의된다. 이 컨텍스트에서 서비스는 클러스터에서 지정된 수의 태스크를 동시에 실행하고 유지할 수 있는 구성이다. AWS Fargate에서 관리하는 서버를 사용하지 않는 인프라에서 작업 및 서비스를 실행할 수 있다. 또는 인프라에 대한 더 세부적인 제어를 위해 관리하는 Amazon EC2 인스턴스의 클러스터에서 태스크와 서비스를 실행할 수 있다.

다음을 포함하여 다양한 애플리케이션 콘텐츠를 거의 무제한으로 배포할 수 있다.

  • 코드
  • 서버리스 AWS Lambda 함수
  • 웹 및 구성 파일
  • Executables
  • 패키지
  • 스크립트
  • 멀티미디어 파일

AWS CodeDeploy의 이점

  • 서버, 서버리스 및 컨테이너 애플리케이션. CodeDeploy를 사용하면 서버 상의 기존 애플리케이션과 서버리스 AWS Lambda 함수 버전 또는 Amazon ECS 애플리케이션을 배포하는 애플리케이션을 모두 배포할 수 있다.
  • 배포 자동화. CodeDeploy는 개발, 테스트 및 프로덕션 환경에 걸쳐 애플리케이션 배포를 완전 자동화한다. 그리고 CodeDeploy는 인프라에 맞춰 규모를 조정할 수 있으므로 인스턴스 하나 또는 수천 개에 배포할 수 있다.
  • 가동 중지 최소화. 애플리케이션이 EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 경우 CodeDeploy는 애플리케이션 가용성을 극대화한다. 인 플레이스(In-place) 배포에서 CodeDeploy는 Amazon EC2 인스턴스 전체에 대해 롤링 업데이트를 수행한다. 업데이트 시 오프라인 상태가 될 수 있는 인스턴스 수를 지정할 수 있다. 블루/그린 배포 시에는 최신 애플리케이션 수정이 대체 인스턴스에 설치된다. 선택한 경우 새로운 환경 테스트를 완료한 직후 이러한 인스턴스로 트래픽이 다시 라우팅된다. 두 가지 배포 유형에 대해 CodeDeploy는 사용자가 구성한 규칙에 따라 애플리케이션 상태를 추적한다.
  • 중지 및 롤백. 오류가 있는 경우 자동 또는 수동으로 배포를 중지하고 롤백할 수 있다.
  • 중앙 집중식 제어. CodeDeploy 콘솔 또는 AWS CLI를 통해 배포 상태를 시작 및 추적할 수 있다. 각 애플리케이션 개정이 배포된 시점 및 Amazon EC2 인스턴스가 나열된 보고서가 제공된다.
  • 채택 편의성. CodeDeploy는 플랫폼과 관련된 제약이 없으므로 모든 애플리케이션과 작동한다. 사용자는 설정 코드를 쉽게 재사용할 수 있다. 또한 CodeDeploy는 소프트웨어 릴리스 프로세스 또는 지속적 전달 도구 체인과 통합이 가능한다.
  • 동시 배포. EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 1개 이상의 애플리케이션이 있는 경우에는 CodeDeploy를 통해 동일한 인스턴스 세트에 동시에 배포할 수 있다.

CodeDeploy를 이용한 자동배포(CD) 환경 구축하기


https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/welcome.html
http://wiki.hash.kr/index.php/%EC%98%A8%ED%94%84%EB%A0%88%EB%AF%B8%EC%8A%A4
https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/welcome.html
https://www.redhat.com/ko/topics/cloud-native-apps/what-is-serverless

profile
Step by step goes a long way ✨

0개의 댓글