Cloud Infra Architecture (AWS)/AWS SAA-C03

Amazon Elastic Container Service (ECS)

seongduck 2023. 1. 22. 20:40

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) 클러스터 생성

  1. ECS 서비스에 들어간다.
  2. 클러스터를 먼저 생성한다.
  3. 이름은 ECS-Cluster
  4. 인프라를 선정할 수 있다. 수동으로 할 경우는 EC2, Anywhere은 온프레미스
  5. EC2를 선택하고  Linux2 , t2.micro, 최소 0, 최대 5로 설정 그리고 생성을 누른다. (오토 스케일링도 구축됨)

 

  1. EC2 서비스에 들어가 Auto Scaling 그룹에 들어가보면 새롭게 생성되는 것을 확인할 수 있다.
  2. 원하는 용량 최소를 1로 바꾸면 오토스케일링에 의해 하나의 인스턴스가 추가되는 것을 확인할 수 있다.
  3. 런칭이 완료됐다!!

 

2) 테스크 생성 (Docker 생성)

  1. [테스크 정의]를 클릭해서 하나 만들어주자
  2. 이름은 nginx-hello
  3. 컨테이너 이름도 위와 동일하고 허그에서 이미지 URL를 가져온다. (nginxdemos/hello) 다음
  4. AWS Fargate로 설정하고 최소로 설정한다. 다음 후 생성한다!

 

 

3) 보안설정

테스크 설정 후 서비스 배포하기전 보안설정을 진행해야 한다.

  1. ecs-sg로 설정하자
  2. 인바운드 규칙은 TCP - Anywhere로 허용해서 만든다.

 

 

4) 서비스에 테스크 배포하기

  1. 용량 공급자는 FARGATE
  2. 패밀리는 nginx-hello, 1개
  3. 보안 그룹은 방금 만든 ecs-sg로 하고 퍼블릭 IP는 키도록 한다.
  4. 로브 밸렁싱은 ALB로 하고 ecs-alb라고 이름을 만든다.
  5. 대상 그룹 이름은 ecs-tg, 30초를 클릭해 서비스를 배포한다.
  6. 완료!!
  7. 로드 밸런스 및 대상 그룹에 새롭게 추가된 것을 확인할 수 있다.

 

5) 접속

  1. 로드 벨런서의 IPv4 주소를 입력하면 접속이 잘 되는 것을 확인할 수 있다.

 

6) 여러개의 컨테이너 만들기

  1. [클러스터] - [서비스] - [nginx-hello] - [서비스 편집] - 원하는 테스크를 5개로 설정한다.
  2. 이말은 컨테이너를 5개를 배포한다는 뜻이다.
  3. 클러스터에 가서 테스크를 살펴보면 5개가 나타나있다.

 

 

7) 접속

  1. 로드 벨런서의 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