AWS에 도커 이미지를 배포할 수 있는 플랫폼에는 AWS EC2, AWS App Runner, AWS Lightsail, AWS EKS 등 다양한 방법이 있습니다. 이 중 가장 간단한 AWS ECS를 활용하여 배포하는 방법을 설명합니다.
도커 이미지 ECR에 등록하기
AWS에서 도커 이미지를 활용하기 위해서는 Elastic Container Registry(이하 ECR)에 이미지를 등록해야 합니다. 이미지 등록과 관련된 자세한 내용은 AWS 공식 문서를 참고하여 리포지토리 생성부터 도커 이미지 푸시까지 진행하십시오.
모든 과정을 마치면 ECR 리포지토리에서 다음과 같은 화면을 볼 수 있습니다.
앞으로는 URI 컬럼에 있는 값을 활용하여 이미지를 배포합니다.
AWS ECS 설정하기
1. 클러스터 생성하기
AWS Elastic Container Service를 사용하기 위해서는 먼저 클러스터를 생성해야 합니다. ECS에서 Clusters
> Create Cluster
메뉴로 진입하면 아래와 같은 화면을 볼 수 있습니다.
- 적절한 이름을
Cluster name
에 입력합니다. Infrastructure
는AWS Fargate
와EC2
를 모두 사용할 수 있지만, 본 문서에서는 간단한AWS Fargate
를 기준으로 진행합니다.- 클러스터를 생성합니다.
2. 태스크 정의하기
이미지를 사용하기 위해서는 먼저 태스크를 정의해야 합니다. ECS에서 Task definition
> Create new task definition
메뉴로 진입합니다.
- Task definition configuration
- 적절한 태스크 이름을 입력합니다.
- Infrastructure requirements
Launch type
은AWS Fargate
로 선택합니다.Operating system/Architecture
는Linux/X86_64
로 선택합니다.Task size
는 CPU 8 vCPU, 메모리 16GB를 권장합니다.
- Container
- 적절한 컨테이너 이름과 ECR에 등록한 이미지 URI를 입력합니다.
- 다음 포트를 엽니다:
- TCP port
8000
- A2 Campaign Management System UI
- TCP port
- 태스크에 포함된 1개의 컨테이너에 모든 리소스를 할당합니다.
Logging
에서Use log collection
옵션을 활성화합니다.
- Volume
- A2의 데이터는 /var/a2/data에 저장되므로, 컨테이너 데이터를 유지하기 위해 적당한 크기의 스토리지를 정의하고 /var/a2/data 경로에 마운트합니다.
- AWS EBS를 통해 데이터를 유지하기 위해
Configuration Type
을Configure at deployment
로 지정합니다. - 자세한 사항은 아래 이미지를 참고합니다.
3. 태스크 배포하기
2단계에서 정의한 태스크를 클러스터에 배포합니다. Clusters
> Tasks
> Run new task
메뉴를 통해 배포할 수 있습니다.
- Deployment Configuration
- 미리 정의한 태스크를 지정합니다.
Application Type
이Service
일 경우 볼륨을 유지할 수 없으므로Task
를 권장합니다.
- Networking
- 컨테이너 외부에서 통신하기 위해 신규
Security group
을 만들고 각 포트로의inbound
룰을 정의합니다. - 테스트를 위해
Source
를Anywhere
로 설정하지만, 보안을 위해 실제 요청이 일어날 IP로 한정하는 것을 권장합니다. - IP 자동 할당을 위해
Public IP
를 활성화합니다.
- 컨테이너 외부에서 통신하기 위해 신규
- Volume
- 태스크에서 정의한 볼륨에 AWS EBS를 마운트하기 위해 원하는 크기의 볼륨을 지정하고 생성합니다.
- 데이터를 유지하기 위해
Delete on termination
체크를 해제합니다.
4. 완료
모든 설정이 완료되었고 배포 후 할당된 공인 IP를 통해 A2를 사용할 수 있습니다.
이 매뉴얼을 통해 A2를 AWS에 성공적으로 배포할 수 있습니다. 추가 문의 사항이 있으면 언제든지 지원팀에 연락해 주세요.