ECS 컨테이너 구축
ECS란 도커 컨테이너나 인스턴스를 모니터링하고 관리할 수 있는 도구이다
(이러한 도구를 컨테이너 오케스트레이션이라고 함)
ECS 구성요소로는
- 클러스터: ECS의 가장 기본적인 단위로 도커 컨테이너를 실행할 수 있는 가상의 공간
- 작업: ECS에서 컨테이너를 실행하는 최소 단위
- 작업정의: 도커 컨테이너르 실행하기 위해 정의한 도면
- 서비스: 작업을 하나의 오케스트레이션 단위로 묶은 것(작업은 작업 개수로 정의하지만, 서비스는 로드 밸런서와 오토 스케일링을 연결하여 애플리케이션 단위로 조절)
- 컨테이너 인스턴스: ECS는 컨테이너 배포를 EC2 인스턴스 기반에 올리도록 설계되어 있다. 컨테이너를 동작시킬 컴퓨터를 지칭
도커 인스턴스가 어떤 이미지, 어느 포트를 사용할지를 정의한다
ECS는 EC2 상에서 작동하는 방식과 호스트에 대한 관리없이 실행되는 FARGATE가 있다
작업 정의 이름을 설정하고, 다른 AWS 서비스를 사용하지 않기 떄문에 작업역할은 '없음', 네트워크 모드는 'awsvpc'로 선택한다.(네트워크 모드는 호스트 PC와 컨테이너 간 네트워크 설정을 해줄 수 있지만, FARGETE는 호스트PC가 없기 때문에 VPC와 직접 연결되는 AWSVPC만 사용 가능)
작업 실행 역할은 도커 인스턴스를 게시하고 로그를 기록하기 위한 역할이다
[컨테이너 추가]를 클릭하고 컨테이너 이름을 설정하고 이미지에 "httpd:2.4"를 입력한다. 포트 매핑은 80으로 한다
스크롤을 내려 환경 설정란에 있는 명령에 아래의 소스코드를 복사한다
"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground"
"TD-sample-web"이라는 작업 정의가 잘 만들어졌는지 확인한다
좌측 메뉴에서 클러스터를 선택하고 "시작하기" 버튼을 클릭한다("클러스터 생성"으로 만들면 잘 작동하지 않는다)
웹 서버를 선택한다
로드 밸런서 유형을 선택한다
클러스터 이름을 설정한다
클러스터 생성을 완료하면 대시보드에 "작업"이 실행되고 있는 것을 확인할 수 있다
작업 이름을 클릭하고 들어가면 퍼블릭IP가 생성되어 있는데 주소창에 입력하면 도커 컨테이너 서비스가 잘 실행되고 있는 것을 볼 수 있다