ECS Fargate 서비스 단계별 만들기
Source: Dev.to
ECR에 Docker 이미지 준비하기
ECR에 이미지가 없으면, 이 글을 참고해 이미지를 만든 뒤 푸시하세요.
Docker 이미지를 AWS ECR에 푸시하기
AWS Elastic Container Service (ECS) 용어 정리
- Task / Task Definition: 컨테이너 설정을 위한 정의
- Service: 작업, 자동 스케일링, VPC 등을 설정하기 위한 단위
- Cluster: 서비스들의 클러스터(EC2 인스턴스 집합)
ECS 클러스터 만들기
- ECS 콘솔에서 Create Cluster 선택
- Only networking (Fargate) 선택
- 클러스터 이름 입력
- (선택) VPC 생성
- Create 클릭
※ 1~2분 정도 기다립니다.
ECS 작업 정의 만들기
-
ECS 콘솔에서 Task Definitions 선택
-
Create new Task Definition 클릭
-
Fargate 선택
-
작업 정의 이름 입력
-
작업 역할으로 ecsTaskExecution 선택
-
운영체제 패밀리로 Linux 선택
-
작업 메모리 0.5 GB 선택
-
작업 CPU 0.25 vCPU 선택
-
Add container 클릭
- Container name: 이름 입력
- Image: 태그까지 포함한 ECR 이미지 URI 복사 붙여넣기
- Port mappings:
3000입력 - Create 클릭
ECS 서비스 만들기
ECS 서비스는 여러 ECS 작업을 모아 ALB와 Auto Scaling Group에 연결해 줍니다. 서비스 생성 시 작업 정의가 필요하지만, 작업 자체가 서비스의 하위 개념은 아니며 서비스 없이도 작업을 클러스터에 배치할 수 있습니다.
- ECS 콘솔에서 Cluster 선택 → 만든 클러스터 클릭
- Service 탭 선택 → Create 클릭
- Launch type: Fargate
- Task Definition: 만든 작업 선택
- Service name: 이름 입력
- Number of tasks:
1입력 - Next step 클릭 후 나머지 항목은 그대로 넘어감
네트워크 설정
- Cluster VPC: 앞서 만든 VPC 선택 (1단계에서 VPC를 만든 경우)
- 필요에 따라 서브넷 여러 개 선택
- Security groups 옆 Edit 클릭
- 인바운드 규칙 추가: Custom TCP, Anywhere, 포트 3000
- Next step 클릭 후 나머지 항목은 그대로 넘어감
자동 스케일링 설정
- Do not adjust the service’s desired count 선택
- Next step 클릭
서비스 생성 완료
- 모든 항목을 다시 한 번 확인하고 Create Service 클릭
서비스 확인 및 접속
- ECS 콘솔에서 Cluster 선택 → 만든 클러스터 클릭
- Tasks 탭 선택 → 실행 중인 작업 클릭
- Public IP 복사
- 브라우저에서
http://<Public IP>:3000로 접속
잘 하셨습니다!
사용이 끝났다면 클러스터를 반드시 삭제하세요. 장기간 사용하지 않을 경우 혹은 학습 목적만으로 만든 리소스는 모두 정리해 두는 것이 좋습니다.