도커 컴포즈를 이용하면 로컬 머신에서 다중 컨테이너를 쉽게 실행할 수 있다. 다른 포트에서 수신 대기하는 컨테이너와 함께 도커 컴포즈를 사용하여 동일한 머시에서 백엔드, 데이터베이스, 프론트엔드 컨테이너를 모두 실행 할 수 있다. 하지만 배포하여 리모트 머신으로 이동시켜 컨테이너 당 하나의 각각 다른 머신을 사용하게 된다면 상황이 복잡해진다. 따라서 컴포즈 파일은 동일한 머신에서 다중 컨테이너를 관리하고 실행해야 컴포즈 파일의 장점을 가져갈 수 있다.
때문에 우리가 우선 다중 컨테이너 배포를 위해 해야 할 일은 동일한 머신에서 컨테이너를 실행시키도록 해야한다.
다행히 AWS ECS의 경우 동일한 태스크에 컨테이너를 추가하면 동일한 머신에서의 실행이 보장된다. 그래도 여전히 ECS는 도커 네트워크를 생성하지 않는다. -> 그래도 동일한 머신에서 실행되기 때문에 localhost를 내부 주소로 사용하여 컨테이너 간 연결
* 참고글 : 도커 네트워크 통신 설명
1. 클러스터 생성
2. 태스크 생성
태스크 역할 : essTaskExcutionRole 선택 - 역할 리스트에 없다면 iam에 권한 추가 필요
컨테이너 정의 : DB, 백엔드 등의 컨테이너에 해당
태스크 생성 후 이 태스크를 기반으로 서비스를 시작하면 실제로 정의된 구성으로 이들의 컨테이너를 구동 시킬 수 있다.
3. 클러스터 - Sevice 생성
서비스 실행으로 위해 이전에 생성한 클러스트로 돌아가 Services 아래의 Create를 클릭한다.
VPC는 클러스터 생성 시 자동으로 생성된다.
Public ID의 도움으로 접근 할 수 있도록 ENABLED 옵션을 선택한다.
로드밸런서 지정을 위해 로드밸런서를 직접 생성한다.
*로드밸런서는 들어오는 트래픽이 효율적으로 처리되도록 하지만 나중에 커스텀 도메인을 할당하는데에도 도움이 된다.
next를 눌러 Auto Scaling 사용 유무를 선택해준다.
서비스 생성 완료.
ECS를 통해 다중 컨테이너 배포가 완료되었으며 태스트 상세 화면에서 네트워크 IP를 통해 접근할 수 있다.
'백엔드 개발' 카테고리의 다른 글
쿠버네티스 구조 (0) | 2023.02.21 |
---|---|
관리형 데이터베이스 서비스 (5) | 2023.01.09 |
docker 배포 (0) | 2022.12.31 |
Docker compose (0) | 2022.11.18 |
Docker DB 컨테이너 (0) | 2022.10.23 |
댓글