AWS CodeDeploy VS AWS Elastic Beanstalk

2021. 2. 7. 23:07BACKEND/AWS

반응형

안녕하세요 ❗️ 

오랜만에 포스팅을 하게 되었습니다.

그동안 프로젝트들을 하느라 ... 죽을고비를 넘기고 ... 하지만 현재진행형 ...

 

오늘 가져온 주제는 CI/CD를 위해 프로젝트 자동 배포를 하다가 찾아봤던

AWS CodeDeploy를 사용할지, AWS Elastic Beanstalk을 사용할까에 대한 주제입니다.

 

 

 

*****************  INDEX  *****************

 

🔥 AWS CodeDeploy

🚀 AWS Elastic Beanstalk

🎯CodeDeploy VS EB

 

******************************************** 


 

AWS CodeDeploy 🏗

AWS CodeDeploy는 Amazon EC2 인스턴스에 대한 코드 배포를 자동화하는 서비스입니다.

 

AWS CodeDeploy로 배포를 자동화하면

오류가 발생하기 쉬운 수동 작업의 필요성이 없어지고

인프라에 따라 서비스가 확장되므로

하나 또는 수천 개의 인스턴스에 손쉽게 배포할 수 있습니다.

 

 

📌 CodeDeploy 장점

AWS에서 말하고 있는 CodeDeploy의 장점을 아래 네 가지로 정리해보았습니다

 

✔️ 배포 자동화

 

✔️ 가동 중지 최대화

배포 중 CodeDeploy 롤링 업데이트를 수행.

블루/그린 배포 시에는 최신 애플리케이션 개정이 대체 인스턴스에 설치됨.

 

롤링 업데이트 새로운 Replicaset을 만들고, 이전 Replicaset을 줄이면서 새로운 Replicaset의 수를 점차적으로 늘려가는 방식. (참고 : 그린/블루, 카나리에)

 

✔️ 중앙 집중식 제어

AWS Management Console이나 AWS CLI를 통해 배포 상태를 시작/추적할 수 있음.

각 애플리케이션 개정이 배포된 시점 및 Amazon EC2 인스턴스가 나열된 보고서가 제공.

 

✔️동시 배포

 

 

📌 인플레이스 배포방식을 통한 CodeDeploy

 

 

 

AWS Elastic Beanstalk 🍫

Elastic Beanstalk를 사용하면 인프라에 대해 자세히 알지 못해도

AWS 클라우드에서 애플리케이션을 신속하게 배포하고 관리할 수 있습니다.

 

Elastic Beanstalk에서 용량 프로비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링에 대한 세부 정보를 자동으로 처리해줍니다.

한마디로, 프로비저닝의 결합체죠

 

devOps를 하는 동안 인프라 서비스를 직접 하나하나 관리할 수 있지만,

미리 준비된 환경을 통해 빠르게 서비스를 배포하고 싶을 때 사용할 수 있죠.

 

Elastic Beanstalk 의 장점 중 하나는 EB의 편리한 사용을 위한 CLI인 eb를 이용해 Elastic Beanstalk와 상호 작용할 수 있습니다.

Elastic Beanstalk 콘솔에서 직접 Amazon EC2 인스턴스의 플릿 크기 변경 또는 애플리케이션 모니터링 등과 같은 대부분의 배포 작업을 수행할 수도 있습니다.

 

 

 Elastic Beanstalk의 워크플로우

 

 

Elastic Beanstalk를 사용하려면 애플리케이션을 생성하고, 애플리케이션 소스 번들의 형태로 애플리케이션 버전을 Elastic Beanstalk에 업로드하고, 애플리케이션에 대한 몇 가지 정보를 제공합니다. Elastic Beanstalk가 자동으로 환경을 실행하고 코드 실행에 필요한 AWS 리소스를 생성 및 구성합니다. 환경 실행 후에는 환경을 직접 관리하고 새로운 앱 버전을 배포할 수 있습니다. (참조)

 

 

 

CodeDeploy VS EB ⚓️

CICD를 고려하다, 둘 중 어떤 걸 사용해서 자동 배포를 구성할지 많이 고민했는데요.

 

 

위의 그림과 같이 EB는 Deploy부터 Provision, Monitor까지 한 서비스로 해결할 수 있습니다.

아래의 CodeDeploy는 Deploy에만 집중되었죠. 

 

각종 서비스를 결합해서 사용해야만 한다면, CodeDeploy를 고려해볼만 하고

빠르고 간편하게 사용하고 싶다면 EB를 고려해볼만 하겠죠.

 

 

 

이것저것 찾아보면서 참고가 되었던 글이 있어서 같이 첨부해봅니다 ~.~

aws-codedeploy-vs-beanstalk

 

AWS CodeDeploy vs Beanstalk | What are the differences?

"Automates code deployments", "Backed by Amazon" and "Adds autoscaling lifecycle hooks" are the key factors why developers consider AWS CodeDeploy; whereas "Ftp deploy", "Deployment" and "Easy to navigate" are the primary reasons why Beanstalk is favored.

stackshare.io

다음에는 CodeDeploy를 사용한 CI/CD를 구축하는 포스팅을 적어보고 싶네요 〰️ 

반응형

'BACKEND > AWS' 카테고리의 다른 글

AWS EKS - Web Application (2)  (0) 2022.07.19
AWS EKS - Web Application (1)  (0) 2022.07.17
AWS, S3  (0) 2020.11.08
AWS, IAM  (5) 2020.11.01
AWS Elastic Load Balancing  (0) 2020.10.25

Backend Software Engineer

Gyeongsun Park