수업을 듣고 배운 내용과 연습한 내용을 정리하였습니다
개인 공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
잘못된 부분이 있거나 질문사항은 댓글로 남겨주시면 성심성의껏 답변해드리겠습니다. 감사합니다!
교재 <당신이 지금 알아야 할 AWS - 이영호, 한동수 지음>를 토대로 실습을 진행하였습니다.
*ECS란?
docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/Welcome.html
* 실습 요약
1. ECS 작업 정의 만들기
A. 작업 정의 이름 TD-sample-web
B. 컨테이너 구성(컨테이너 이름 : containersampleapp)
2. 클러스터 생성(클러스터 이름 : cluster-sample)
3. 작업 실행 및 테스트
A. 작업 정의 TD-sample-web
B. 보안 설정 이름 SG-sample-web
VPC와 ELB를 이용하여 확장 가능한 웹 애플리케이션을 실습해보겠습니다.
1) ECS 작업 정의 만들기
콘솔에 ECS 검색 > 작업 정의 > 새 작업 정의 생성 > "FARGATE" 선택
ECS는 크게 EC2상에서 작동하는 방식과 호스트에 대한 관리 없이 실행되는 FARGATE가 있습니다.
네트워크 모드는 호스트 PC와 컨테이너 간 네트워크 설정을 해줄 수 있지만 FARGATE는 호스트 PC가 없기 때문에 VPC와 직접 연결되는 AWSVPC만 사용할 수 있습니다.
작업 역할은 도커 인스턴스 애플리케이션을 위한 역할이며,
작업 실행은 도커 인스턴스를 게시하기 위한 역할이며,
작업 실행 역할은 로그를 기록하기 위한 역할입니다.
"컨테이너 추가"를 클릭하여 아래 설정을 진행합니다.
명령에는 저자가 제공한 예제 파일을 복사하여 붙여넣습니다.
이 스크립트는 따로 개발한 웹서버가 없기 때문에 테스트를 위해 제공하는 내용입니다.
설정을 다 마쳤다면 "추가"를 클릭하여 컨테이너를 생성합니다.
그리고, "생성"을 클릭해 "작업 정의"를 생성합니다.
2) 클러스터 생성
도커 컨테이너들을 실행할 수 있는 공간인 클러스터를 만들어보겠습니다.
클러스터 > 클러스터 생성 > 네트워크 전용 AWS Fargate 제공
VPC 생성에 체크표시하여 설정되는 기본값을 따르고 "생성" 버튼을 클릭합니다.
클러스터를 생성하는 과정에서 VPC와 서브넷만 설정했지만, 인터넷 게이트웨이와 라우팅 테이블도 함께 정의됐습니다.
클러스터 리소스 VPC 이름을 잘 기록합니다.
작업 > 새 작업 실행
> 생성된 VPC 선택 > 서브넷은 나타나는 2개 모두 선택
자동 할당 퍼블릭은 IP는 "ENABLED" 선택되어 있으면 Fargate에 직접 IP가 할당되는 형태로 작동합니다.
보안 그룹 "편집" 클릭 > HTTP의 소스가 "위치 무관" 인지 확인 후 "저장" 클릭 > "작업 실행" 클릭
우측 "업데이트" 버튼을 클릭하여 마지막 상태와 원하는 상태가 "RUNNING" 으로 변경되면 서버가 정상적으로 실행된 것입니다.
상태가 계속해서 "STOPPED" 로 나타나는 오류(?)가 나타나는 경우가 있는데, 이런 경우에는 "클러스터 생성"이 아닌 "시작하기" 버튼을 클릭하여 클러스터를 생성합니다.
( 로드밸런서 유형 : Application Load Balancer , 나머지는 "다음" 클릭하여 생성 )
클러스터 생성이 완료되면 "서비스"와 "작업"에 클러스터가 생성되고, 위의 과정과 똑같이 "작업" 을 클릭하여 퍼블릭 IPv4 주소로 접속하면 됩니다!
작업의 세부정보에서 퍼블릭 IPv4 주소를 웹 브라우저에 입력하면 정상적으로 접속되는 것을 확인할 수 있습니다.
지금까지 작업 정의를 이용하여 클러스터에 도커 컨테이너를 실행시키고, 직접 컨테이너에 IP를 할당하여 웹 브라우저로 접속해보았습니다.
ECS로 구축한 도커 컨테이너 서비스가 잘 실행되는 것을 확인했다면, "중지"를 클릭하여 컨테이너를 중지합니다.
'클라우드 > AWS' 카테고리의 다른 글
AWS QuickSight 인터랙티브 분석 (0) | 2021.02.22 |
---|---|
AWS QuickSight를 활용한 공공 데이터 시각화 (0) | 2021.02.22 |
EC2 기반 window 웹 서버 설정하기 (0) | 2021.02.20 |
AWS EC2 기반 커뮤니티 사이트(그누보드) 만들기 (0) | 2021.02.18 |
AWS EC2 개념과 이해 (0) | 2021.02.18 |
댓글