-
[DevOps] Code pipeline에 ECS 배포하기클라우드/DevOps 2023. 8. 6. 20:54
1. 배포할 이미지 생성
- Docker를 이용해서 image로 만든다음 ECR에 push함
- maven 프로젝트라, dockerfile 내에서 mvn package를 통해 프로젝트 빌드함
- docker build -t home . -> docker push...
- docker build를 하면 target 디렉토리 아래 jar파일이 떨어짐 (jar 파일 이름은 pom.xml에서 생성)
- 이때 이 ecr에 권한을 추가해줘야함
ecr:BatchCheckLayerAvailability ecr:BatchGetImage ecr:CompleteLayerUpload ecr:GetDownloadUrlForLayer ecr:InitiateLayerUpload ecr:PutImage ecr:UploadLayerPart
2. code commit -> github
- github에 해당 파일들 올려놓기 -> 파일들이 변경될때마다 code pipeline이 실행될 것이다
- 내 github연결
3. code build
- build할 이미지 선택 -> 내가 만든 도커 이미지에서도 빌드할 수 있음
- 환경변수를 사용하면 buildspec.yml의 파일들내의 변수들을 쉽게 바꿀 수 있음
- 저 권한이 있음을 꼭 체크해야함...!!!!! 안그러면 명령어가 작동이 안됨
- buildspec.yml을 통해 code build가 진행됨
4. Code Deploy -> ECS
- 미리 만들어둔 클러스터, 서비스 , 작업 이용해서 띄우기
- 클러스터 : 컨테이너를 실행하는 가상 환경
- 작업: 각 컨테이너를 구성함 -> 이미지를 설정하고, cpu memory설정, 포트매핑
- 서비스 : 작업정의를 기반으로 작업을 실행함, 서비스를 통해 컨테이너의 스케일링, 로드밸런싱 안정적인 배포등 관리함
-> 서비스는 컨테이너를 실행하는 기본 단위로 클러스터 내에서 여러 인스턴스로 확장 가능
https://cherrypick.co.kr/deploy-ecs-fargate-with-aws-codepipeline/