ECS; Elastic Container Service: 컨테이너화된 애플리케이션의 손쉬운 배포, 관리 및 크기 조정을 지원하는 완전관리형 컨테이너 오케스트레이션 서비스
ECR; Elastic Container Registry: 애플리케이션 이미지 및 아티팩트를 안정적으로 배포할 수 있도록 뛰어난 성능 호스팅을 제공하는 완전관리형 컨테이너 레지스트리.
(0) 원하는 서버를 dockerfile로 생성 (포트 주의!)
(1) ECS / ECR full access 가진 IAM 생성 후 secret key, access id 저장
(2) 레포에서 secrets로 위 credentials 저장
(3) 레포에서 github action for ecs 설정 후 aws.yml 파일에서 위 credentials 잡아주기
(4) ecr 레포 생성하고 aws.yml에서 잡아주기. => github에 push할 경우 ecr에 새로운 이미지 업로드하게 됨
(5) ecs 클러스터 생성. Fargate 사용.
(6) task definition 설정. 작업에 필요한 role 붙여주고, 컨테이너는 ecr 레포 내 image의 uri 복사해야함. 이때 포트 주의.
(7) ecs 클러스터에서 서비스 배포. (6)에서 생성한 task definition 붙여주고, alb, target group 설정.
(8) health check로 정상 배포 확인
(9) task definition에서 json 뽑아와 ./github/workflow/aws/task-definition.json으로 저장. (경로 설정 주의)
(10) 그 외 aws.yml 파일 항목들 설정
(11) push 후 자동 배포 확인