본문 바로가기
자격증/SAA

AWS - 컴퓨팅 서비스(ECS, EKS, Auto Scailing)

by SLkittys 2024. 1. 16.
728x90

ㆍECS(Elastic Container Service) : AWS에서 서비스하는 컨테이너를 관리하기 위한 도구(≒ Kubernetes)

    - 기본 용어

      ▪️ Task

        ⮞Task definition : 컨테이너를 설정하기 위한 내용. 컨테이너 이미지, 리소스, 포트 설정 등을 수행.

        ⮞Task : Task definition에서 정의한 내용을 기반으로 배포한 한 개 또는 여러 개의 컨테이너들

      ▪️ Service : 컨테이너 상위의 개념으로, Task를 Cluster에 몇 개나 배포할 것인지 결정함.

                     외부 서비스를 위해 로드밸런서를 연동하고, Task에 문제가 생기면 자동으로 새로운 Task를 생성.

      ▪️ Container Instance : ECS를 통해서 Task가 배포되는 EC2인스턴스를 Container Instance라고 함.

                                       Container Instance에는 ecs-agent가 설치되어 Instance를 Cluster에 묶어서 관리함.

    - 구성 요소

      ▪️  EC2(Container Instance) : EC2 인스턴스를 생성하고, EC2 내에 Agent를 실행하여 EC2를 ECS 클러스터에 등록

      ▪️  Fargate : 서버리스 서비스, EC2 인스턴스나 클러스터를 관리할 필요 없이 AWS가 ECS Task를 대신 생성한다.

      * ECS와 Fargate를 엮어서 물어보는 경우 있음.(회사는 컨테이너화 된~ 인프라 ~ 책임 원하지 않음)

    - IAM Role

      ▪️  EC2 Instance IAM Role

      : EC2 시작 유형 전용 Role, ecs-agent가 EC2를 ECS Cluster에 등록하기 위해서 사용함.

        해당 Role을 이용해 ECS 서비스에 API 호출을 하면, CloudWatch에 컨테이너 로그를 보내고

        ECR에서 도커 이미지를 가져온다.

      ▪️ ECS Task IAM Role

      : EC2 + Fargate 시작 유형 Role, 각각의 Task에서 특정 권한을 허용하는 Role.

        Task 별로 다른 Role을 부여하여 서로 다른 서비스 접근이 가능함.

        ex) A Task는 DynamoDB, B Task는 S3로 접근 가능

 

ㆍEKS(Elastic Kubernetes Service) : AWS에서 제공하는 관리형 Kubernetes 서비스

    - Kubernetes : 도커로 컨테이너화한 애플리케이션의 관리, 규모 조정 및 배포를 자동화

    - AWS 네트워크 및 보안 서비스와 통합되어 Kubernetes 워크로드를 사용하며,

      IAM과 통합되어 클러스터에 대한 인증 제공(= AWS 서비스와 통합됨)

    - 자동 규모 조정

      ▪️ Pod : CPU 사용자 지정 지표를 기반으로 수평 Pod 자동 규모 조정

      ▪️ 클러스터 : 전체 워크로드 수요 기반으로 클러스터 자동 규모 조정

    - 여러 가용 영역의 컨트롤 플레인에 대한 고가용성 제공

    - 노드 유형

      ▪️ 관리형 노드 그룹 : EC2 인스턴스 생성 / 관리

      ▪️ 자체 관리형 노드 : 사용자 지정 및 제어 대상이 많은 경우 노드 생성 후 EKS 클러스터로 등록하여

                                       Auto Scailing Group으로 관리

      ▪️ Fargate 모드 : 노드, 유지 관리 없이 EKS에서 컨테이너만 실행하면되는 서버리스 서비스

 

ㆍECS와 EKS의 차이점

    - ECS : AWS에서 제공하는 Native 컨테이너 오케스트레이션 서비스, AWS와 통합 하는 경우 사용

                Native 솔루션이기 때문에 제어플레인이 없음.

    - EKS : 관리형 Kubernetes 서비스, Kubernetes의 기능을 사용할 경우 사용,

                 Kubernetes 기반으로 제어플레인 있음

 

Auto Scailing : 리소스 규모(수)를 애플리케이션의 수요, 트래픽 증가 및 감소에 따라

                            자동으로 탄력적으로 조정하는 기능(= 가용성 상승, 비용 최적화)

    - Cluster Autoscaler : 클러스터의 워커 노드를 유동적으로 스케일링하는 기능을 가지고 있음.

                                       클러스터 내에 미예약된(혹은 실패한) Pod나 노드가 리스케쥴링될 때 노드 수를 조정함

    - Karpenter : 미예약된 Pod의 전체 리소스 요청을 모니터링하고, 새 노드를 시작 및 종료를 결정하여

                         예약 대기 시간과 인프라 비용을 줄일 수 있음. JIT(Just In-Time) 배포가 가능함.

728x90

'자격증 > SAA' 카테고리의 다른 글

AWS - 스토리지(S3)  (0) 2024.01.16
AWS - 컴퓨팅 서비스(ELB)  (0) 2024.01.16
AWS - 컴퓨팅 서비스(EC2)  (0) 2024.01.12
AWS - 기본 용어 및 개념  (0) 2024.01.12
SAA-C03 준비  (0) 2024.01.12