Amazon Elastic Container Service (ECS)
- Docker 컨테이너를 지원하는 컨테이너 관리 서비스
- Amazon EC2 인스턴스의 관리형 클러스터에서 애플리케이션을 손쉽게 실행 가능
- ECS에서 애플리케이션 가용성을 유지 관리하고 애플리케이션 용량 요구 사항에 따라 컨테이너 규모를 확장하거나 축소
- CPU 사용량, 메모리 사용량, 로드벨런서 요청수, EventBridge 이벤트, SQS Queue와 결합하여 Auto Scaling 수행 가능
- Application Load Balancer 및 Network Load Balancer를 사용하여 트래픽 분산 가능
- EC2 시작 유형 (EC2 Launch Type)
- 1) Fargate 시작 유형
- 서버리스 방식으로 ECS 워크로드를 호스팅
- 사용자가 EC2 인스턴스를 관리할 필요 없음
- 2) EC2 시작 유형
- ECS 클러스터를 등록하고 사용자가 직접 관리하는 EC2 인스턴스에서 컨테이너화 된 애플리케이션을 실행
- 3) ECS Anywhere
- ECS 클러스터에 등록하고 원격으로 관리하는 온프레미스 서버나 가상머신(VM)에서 컨테이너화 된 애플리케이션을 실행
- 1) Fargate 시작 유형
실습
1) 클러스터 생성
- ECS 서비스에 들어간다.
- 클러스터를 먼저 생성한다.
- 이름은 ECS-Cluster
- 인프라를 선정할 수 있다. 수동으로 할 경우는 EC2, Anywhere은 온프레미스
- EC2를 선택하고 Linux2 , t2.micro, 최소 0, 최대 5로 설정 그리고 생성을 누른다. (오토 스케일링도 구축됨)
- EC2 서비스에 들어가 Auto Scaling 그룹에 들어가보면 새롭게 생성되는 것을 확인할 수 있다.
- 원하는 용량 최소를 1로 바꾸면 오토스케일링에 의해 하나의 인스턴스가 추가되는 것을 확인할 수 있다.
- 런칭이 완료됐다!!
2) 테스크 생성 (Docker 생성)
- [테스크 정의]를 클릭해서 하나 만들어주자
- 이름은 nginx-hello
- 컨테이너 이름도 위와 동일하고 허그에서 이미지 URL를 가져온다. (nginxdemos/hello) 다음
- AWS Fargate로 설정하고 최소로 설정한다. 다음 후 생성한다!
3) 보안설정
테스크 설정 후 서비스 배포하기전 보안설정을 진행해야 한다.
- ecs-sg로 설정하자
- 인바운드 규칙은 TCP - Anywhere로 허용해서 만든다.
4) 서비스에 테스크 배포하기
- 용량 공급자는 FARGATE
- 패밀리는 nginx-hello, 1개
- 보안 그룹은 방금 만든 ecs-sg로 하고 퍼블릭 IP는 키도록 한다.
- 로브 밸렁싱은 ALB로 하고 ecs-alb라고 이름을 만든다.
- 대상 그룹 이름은 ecs-tg, 30초를 클릭해 서비스를 배포한다.
- 완료!!
- 로드 밸런스 및 대상 그룹에 새롭게 추가된 것을 확인할 수 있다.
5) 접속
- 로드 벨런서의 IPv4 주소를 입력하면 접속이 잘 되는 것을 확인할 수 있다.
6) 여러개의 컨테이너 만들기
- [클러스터] - [서비스] - [nginx-hello] - [서비스 편집] - 원하는 테스크를 5개로 설정한다.
- 이말은 컨테이너를 5개를 배포한다는 뜻이다.
- 클러스터에 가서 테스크를 살펴보면 5개가 나타나있다.
7) 접속
- 로드 벨런서의 IPv4 주소를 입력하면 5개의 주소로 로드벨런싱이 되는 것이 확인할 수 있다.
'Cloud Infra Architecture (AWS) > AWS SAA-C03' 카테고리의 다른 글
AWS Lambda (0) | 2023.01.22 |
---|---|
Amazon Elastic Kubernetes Service(EKS) (0) | 2023.01.22 |
AWS 컨테이너 서비스 (0) | 2023.01.22 |
AWS CloudFormation (0) | 2023.01.22 |
AWS Transit Gateway 및 Data Transfer Costs (0) | 2023.01.22 |