📖 Table of Contents
해당 포스팅은 아래의 시리즈로 구성되어 있습니다. 시리즈대로 포스팅을 읽어주세요 💚
- Teamcity 를 사용한 Build Process 구성 방법
- Teamcity로 Docker Container Image를 ECR로 Push 하는 방법
- ECS Fargate 에서 Datadog을 연결하는 방법
안녕하세요! 올디브에서 Back-end 업무를 맡은 코코리 입니다.
이전 포스팅에서는 Teamcity 로 Build Process 구성을 해보았는데요. 오늘은 Teamcity에서 Docker Container Image를 ECR로 Push 하는 방법을 설명해보도록 하겠습니다!
ECR 은 무엇인가요?
Amazon ECR 은 이미지를 가용성과 확장성이 뛰어난 아키텍처에 호스팅하여 사용자는 애플리케이션을 위한 컨테이너를 안정적으로 배포할 수 있습니다. 또한, Amazon ECR을 사용함으로써 이미지 리포지토리를 직접 구축하고 관리할 필요가 없습니다. AWS IAM을 사용하여 컨테이너 이미지에 액세스할 수 있는 사용자 및 리소스에 대한 권한을 제어하고 모니터링할 수 있고, 이미지 취약점 스캔 기능도 활성화할 수 있습니다. 또한, 리포지토리를 프라이빗 혹은 퍼블릭으로 설정할 수 있습니다. (공식 홈페이지에서 발췌)
쉽게 설명하자면 Amazon ECR이란 개발자가 Docker 컨테이너 이미지를 손쉽게 저장, 관리 및 배포할 수 있게 해주는 완전관리형 Docker 컨테이너 레지스트리입니다.
올디브에서 ECR을 통해 배포를 하게 된 이유는 아래와 같습니다.
AWS code deploy / code pipeline 과 연계
AAWS code deploy / code pipeline과 연계해서 배포 자동화가 가능합니다!
AWS 안에서 모든 걸 다 하게 된다니 관리 포인트가 줄어들어서 조금 더 CI/CD가 가능합니다!
저장 용량
ECR 을 사용하게 된다면 저장용량 걱정을 하지 않아도 됩니다! 쓰는 만큼 비용을 지불하면 되는데요! 인하우스 레파지토리의 경우에는 용량을 다 쓰게 되면 증설을 해야 하는 번거로움이 있습니다.
그렇다면 쓰는 만큼 비용을 낸다면 너무 많이 내는 거 아니야? 라고 생각하실 수 있는 데요! AWS에서 공개된 자료에 따르면 생각보다 합리적인 가격으로 이용할 수 있습니다! 많이 써도 한 달에 10불 미만입니다!
위의 이유들로 AWS ECR을 사용하기로 했습니다! 그렇다면 이제 본격적으로 ECR로 배포를 해볼까요?
Teamcity에서 Docker Container Image를 ECR로 Push 해보자!
0. 준비사항
Teamcity 에서 AWS ECR에 docker image를 pull/push 하기 위해 Account ID / AWS accessKey / secretKey / ECR address 가 필요합니다!
이전 포스팅을 보고 차근차근 잘 따라오셨다면 위의 사항은 준비가 되셨을 겁니다 😃
(혹시나 깜빡하셨더라도 괜찮아요! Teamcity - "이제부터 배포요정은 접니다 ✋🏻"를 먼저 보고 와주세요!)
1. ECR Repository 생성
먼저 AWS Console로 접근해 ECR 메뉴에서 Repository를 하나 생성합니다. 해당 포스팅에서는 Datadog 이미지를 보관하는 Registry를 하나 만들었습니다.
생성됐으면 Registry의 EndPoint를 복사 후 기억한 후 이전 포스팅에서 구축해 둔 Teamcity에 관리자 계정으로 로그인 합니다.
예시 : 40*************.dkr.ecr.ap-northeast-2.amazonaws.com/datadog-agent
ECR 연결은 크게 두 가지 프로세스를 거쳐야 가능합니다. 프로세스는 다음과 같습니다.
- Project Level에서 Connection 구성
- Build Pipeline Level에서 Feature 구성
2. ECR 연결
연결을 원하는 프로젝트 상세 메뉴로 진입 후 다음과 같은 순서로 진입하고 아래 두 개의 방법을 차근차근 따라 해봅시다!
Project Level 에서 Connection 구성
2. Connection 메뉴에서 Add Connections 버튼을 클릭합니다.
Build Pipeline Level에서 Feature 구성
그래서 빌드 하면 어떻게 될까요?
Teamcity - "이제부터 배포요정은 접니다 ✋🏻" 에서 잘 설정된 Teamcity 의 빌드가 끝나면 ECR 에 Push 가 되고 이후 자동으로 Trigger 가 걸려 배포가 됩니다!
이제 번거로운 빌드 > 업로드 >배포를 단 한번의 클릭으로 가능하게 되었습니다! 🎉
마무리
오늘은 Teamcity에서 Docker Container Image를 ECR로 Push 하여 배포까지 해보았는데요! 배포하고 나서는 모니터링은 필수겠죠?
올디브에서는 모니터링을 Datadog 으로 하고 있는 데요!
다음 포스팅에서는 ECS 와 Datadog 연결하는 방법과 어떻게 모니터링을 하는지 설명해 드리도록 하겠습니다! 그렇다면 우리 다음에 만나요!💚💚