ECS는 Elastic Container Service로써 도커를 활용한 오케스트레이션 툴입니다.
저는 서버리스 대신 EC2 인스턴스를 쓰기로 결정하였습니다. Fargate는 프리티어가 없기도 하고 세세한 컨트롤이 조금 어렵기 때문입니다.
서브넷은 모두 private로만 설정해줍니다. 그럼 외부랑은 어떻게 통신하냐구요? 저희는 앞에서 이미 NAT를 해줬기 때문에 괜찮습니다. NAT Gateway를 통해 외부와 통신합니다.
그럼 이런식으로 클러스터가 만들어집니다. 위에서 최소 인스턴스수를 1로 선택했기 때문에 ECS에서 자동으로 컨테이너 인스턴스 1개를 등록해줍니다. 해당 인스턴스는 EC2서비스로 들어가도 볼 수 있습니다.
이제 Task를 정의해줍시다 이번에도 EC2 인스턴스를 사용하고 저는 AWS 리눅스를 쓰기 때문에 네트워크 모드를 bridge로 해줍니다
태스크 크기도 줄여줍니다.
ec2를 설정했으니 연결한 RDS서비스도 만들어줍니다.
프리티어 선택은 필수입니다.
이때 스토리지 자동 조정 활성화를 꺼줍니다. 아니면 나중에 비용이 청구될 수도 있습니다.
자동백업도 혹시 모르니 꺼줍니다.
RDS는 DB서버이므로 EC2와 소통하고, 그외에는 접촉하지 못하게 만들어줍니다. 앞에서 만든 VPC를 이용하고 퍼블릭 액세스를 막습니다.
로드밸런서를 만들어 줍니다.
저는 로드밸런서에서 Https 통신 및 포트포워딩을 수행할 것입니다.
EC2서비스로 들어가서 로드밸런서를 클릭해줍니다.
그 중 ALB를 선택할 것입니다.