AWS ECS

조민철·2025년 4월 23일

AWS

목록 보기
18/21
post-thumbnail

AWS 컨테이너 서비스들

AWS에는 컨테이너를 활용한 서비스들이 여러개 존재한다. 어떤 서비스들이 존재하고 이러한 서비스들이 어떤 역할을 하는지 간단하게 알아보겠다.

  • 레지스트리
    • 도커로 치면 도커허브같은 존재임 (컨테이너 저장소)
    • 컨테이너 이미지를 저장하고 관리할 수 있음
  • 오케스트레이션 도구
    • 여러개의 컨테이너들을 관리하고 운영할 수 있음
    • 쿠버네티스를 이용하여 완전관리형 서비스 사용 가능
  • 컨테이너 호스팅
    • 오케스트레이션 도구가 컨테이너를 호스팅하는 데 사용하도록 할 컴퓨팅 리소스를 결정해야함

ECS

ECS는 컨테이너화된 애플리케이션을 쉽게 사용할 수 있도록 해주는 완전 관리형 컨테이너 오케스트레이션 서비스이다. ECR, Docker 등 여러 서드파드 도구와 통합이 되며 다른 인프라에 신경쓸 필요가 없어 개발에만 집중할 수 있다. 또한 컨테이너를 클러스터 단위로도 실행이 가능하며 배포,관리,확장 작업을 쉽게 효율적으로 수행할 수 있다.
주요 기능으로는 다음과 같다.

  • 완전관리형
    • 컨트롤 플레인, 노드 추가기능을 관리할 필요 없음
  • 서비스 검색
    • 서비스 검색 기능을 사용하여 도메인 이름 시스템 DNS 이름에 ECS 서비스 등록가능
  • AWS 통합
    • 다른 AWS 서비스와 통합
  • 유연한 호스팅 옵션
    • Fargate, EC2 인스턴스 호스팅 모두 사용 가능
  • 개발 워크플로
    • CI/CD 지원

ECS 아키텍처



ECS를 사용하여 태스크를 시작하는 서비스를 생성하여 태스크는 하나 이상의 컨테이너 이미지를 사용할 수 있다. 태스크는 하나 이상의 컨테이너 이미지를 사용하여 애플리케이션의 수요를 충족 하도록 실행중인 태스크 수를 조정함

  • 용량
    • ECS 클러스터 내에서 컨테이너를 실행할 수 있는 컴퓨팅 리소스 제공
    • EC2 인스턴스 or Fargate(서버리스)
  • 컨트롤러
    • ECS 서비스와 태스크 상태를 모니터링하고, 원하는 개수의 태스크가 항상 실행되도록 관리
    • 오토스케일링, 롤링 업데이트, 장애 복구 등 오케스트레이션 핵심기능 담당
  • 애플리케이션
    • 컨테이너 내부에서 실행될 SW

ECS 구성 요소

  • Cluster
    • 컨테이너가 실행되는 논리적 그룹
    • EC2, Fargate, 온프레미스 등 다양한 인프라에서 실행 가능
  • 태스크 정의
    • 컨테이너 실행에 필요한 모든 설정(CPU, Memory 등)을 JSON으로 표시한 템플릿
  • 태스크
    • 태스크 정의를 기반으로 실행되는 컨테이너 집합
    • 하나의 태스크에는 하나 이상의 컨테이너 포함
  • 서비스
    • 태스크는 원하는 개수를 항상 유지
    • 오토스켈일링, 로드밸런싱 등 연동 가능

ECS Fargate


ECS에서 인스턴스 유형중 Fargate는 ECS를 위한 EC2 인스턴스,서버,클러스터를 관리할 필요 없이 컨테이너를 실행할 수 있다. 즉 서버리스 서비스이다.

  • 서버리스
    • Fargate의 제일 큰 특징이다. 서버리스로 동작하며 모든 인프라를 신경쓸 필요가 없음
  • AutoScaling
    • 트래픽 변화 및 워크로드에 따라 자동으로 확장/축소
  • 격리 및 보안
    • 각 태스크는 독립된 격리 환경에서 실행되어 커널,CPU,메모리 등 다른 태스크와 공유하지 않음
    • IAM,보안그룹 등 여러 보안 서비스와 통합됨
  • 비용
    • Fargate Spot을 사용하면 최대 70%까지 비용 절감 가능

ECS의 이점

타 서비스와 비슷하게 ECS는 완전 관리형이다. 즉, 사용자는 인프라에 관리를 전혀 하지 않아도 상관이 없다는 말이다. 그냥 컨테이너 이미지를 만들고 실행만 시키면 끝이 난다. 단지 사용자는 도커에대해 알고있으면 된다.

  • 간편한 배포 및 관리
    • 완전관리형 서비스로 애플리케이션의 배포와 관리를 단순화함
    • AWS 콘솔, CLI, IaC등 다양한 방법으로 손쉽게 리소스를 관리가능
  • 고가용성 및 내결함성
    • Muti-AZ에 걸쳐 컨테이너를 배포하고 장애 발생 시 자동으로 컨테이너를 재배포함
    • 서비스의 가용성을 유지함
  • 자동 확장
    • 트래픽의 변화에 따라 컨테이너 수를 자동으로 조정함으로 성능을 유지할 수 있음
  • 보안 기능
    • IAM와 통합이 가능하여 세분화된 권한 관리 가능
  • 모니터링
    • CloudWatch와 연동 가능
  • 유연한 운영 모델
    • EC2 인스턴스 기반, Fargate 중 선택할 수 있음
    • 온프레미스 환경까지 지원하여 하이브리드 클라우드 운영 가능
profile
기록의 힘은 대단하다

0개의 댓글