기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Elastic Container Service란 무엇입니까?
Amazon Elastic Container Service(Amazon ECS)는 컨테이너 애플리케이션을 쉽게 배포, 관리 및 확대할 수 있도록 도와주는 완전 관리형 컨테이너 오케스트레이션 서비스입니다. 완전관리형 서비스인 Amazon ECS에는 AWS 구성 및 운영 모범 사례가 내장되어 있습니다. Amazon Elastic 컨테이너 레지스트리 AWS 및 Docker와 같은 타사 도구 모두와 통합됩니다. 이러한 통합을 통해 환경이 아닌 애플리케이션 구축에 더욱 집중할 수 있습니다. 컨트롤 플레인을 관리하는 복잡성 없이 클라우드와 온프레미스에서 컨테이너 AWS 리전 워크로드를 실행하고 확장할 수 있습니다.
Amazon ECS 용어 및 구성 요소
Amazon ECS에는 세 가지 계층이 있습니다.
-
용량 - 컨테이너가 실행되는 인프라입니다.
-
컨트롤러 - 컨테이너에서 실행되는 애플리케이션을 배포하고 관리합니다.
-
프로비저닝 - 스케줄러와 함께 애플리케이션 및 컨테이너를 배포 및 관리하는 데 사용할 수 있는 도구입니다.
다음 다이어그램은 Amazon ECS 계층을 나타냅니다.
Amazon ECS 용량
Amazon ECS 용량은 컨테이너가 실행되는 인프라입니다. 다음은 용량 옵션에 대한 개요입니다.
-
클라우드의 Amazon EC2 인스턴스 AWS
인스턴스 유형, 인스턴스 수를 선택하고 용량을 관리합니다.
-
클라우드의 서버리스 (AWS Fargate (Fargate)) AWS
Fargate는 서버리스 컴퓨팅 엔진입니다. pay-as-you-go Fargate를 사용하면 서버를 관리하거나, 용량 계획을 처리하거나, 보안을 위해 컨테이너 워크로드를 격리할 필요가 없습니다.
-
온프레미스 가상 머신(VM) 또는 서버
Amazon ECS Anywhere는 외부 인스턴스(예: 온프레미스 서버 또는 가상 머신(VM))을 Amazon ECS 클러스터에 등록하도록 지원합니다.
용량은 다음 AWS 리소스 중 하나에서 찾을 수 있습니다.
-
가용 영역
-
로컬 영역
-
Wavelength Zone
-
AWS 리전
-
AWS Outposts
Amazon ECS 컨트롤러
Amazon ECS 스케줄러는 애플리케이션을 관리하는 소프트웨어입니다.
Amazon ECS 프로비저닝
Amazon ECS를 프로비저닝하기 위한 여러 가지 옵션이 있습니다.
-
AWS Management Console - Amazon ECS 리소스 액세스에 사용할 수 있는 웹 인터페이스를 제공합니다.
-
AWS Command Line Interface (AWS CLI) — Amazon ECS를 비롯한 다양한 AWS 서비스에 대한 명령을 제공합니다. Windows, Mac, Linux에서 지원됩니다. 자세한 설명은 AWS Command Line Interface
섹션을 참조하세요. -
AWS SDK — 언어별 API를 제공하고 많은 연결 세부 정보를 관리합니다. 서명 계산, 요청 재시도 처리 및 오류 처리가 여기에 포함됩니다. 자세한 내용은 AWS SDK
를 참조하십시오. -
Copilot - 개발자가 Amazon ECS에서 프로덕션 지원 컨테이너식 애플리케이션을 구축, 릴리스 및 운영할 수 있는 오픈 소스 도구를 제공합니다. 자세한 내용은 웹 사이트의 Copilot을
참조하십시오. GitHub -
AWS CDK - 익숙한 프로그래밍 언어를 사용하여 클라우드 애플리케이션 리소스를 모델링하고 프로비저닝하는 데 사용할 수 있는 오픈 소스 소프트웨어 개발 프레임워크를 제공합니다. AWS CDK 는 AWS CloudFormation을 통해 안전하고 반복 가능한 방식으로 리소스를 프로비저닝합니다.
애플리케이션 수명 주기
다음 다이어그램은 애플리케이션 수명 주기와 Amazon ECS 구성 요소와의 작동 방식을 보여줍니다.
컨테이너에서 실행할 수 있도록 애플리케이션을 설계해야 합니다. 컨테이너는 소프트웨어 애플리케이션을 실행하는 데 필요한 모든 것을 포함하는 소프트웨어 개발의 표준화된 단위입니다. 여기에는 관련 코드, 런타임, 시스템 도구 및 시스템 라이브러리가 포함됩니다. 컨테이너는 이미지라고 하는 읽기 전용 템플릿에서 생성됩니다. 이미지는 일반적으로 Dockerfile에서 구축됩니다. Dockerfile은 컨테이너에 포함되는 모든 구성 요소를 지정하는 일반 텍스트 파일입니다. 이러한 이미지는 빌드된 후 다운로드할 수 있는 Amazon ECR과 같은 레지스트리에 저장됩니다.
이미지를 생성하고 저장한 후 Amazon ECS 작업 정의를 생성합니다. 작업 정의는 애플리케이션에 대한 청사진과 같습니다. 작업 정의는 애플리케이션을 구성하는 파라미터 및 하나 이상의 컨테이너를 설명하는 JSON 형식의 텍스트 파일입니다. 예를 들어, 이를 사용하여 운영 체제에 대한 이미지 및 파라미터, 사용할 컨테이너, 애플리케이션에 대해 개방할 포트, 작업의 컨테이너와 함께 사용할 데이터 볼륨을 지정할 수 있습니다. 태스크 정의에 사용할 수 있는 특정 파라미터는 특정 애플리케이션의 필요에 따라 달라집니다.
작업 정의를 정의한 후에는 클러스터에 서비스 또는 작업으로 배포합니다. 클러스터는 클러스터에 등록된 용량 인프라에서 실행되는 작업 또는 서비스의 논리적 그룹입니다.
태스크는 클러스터 내 태스크 정의를 인스턴스화하는 것입니다. 독립 실행형 태스크를 실행하거나 서비스의 일부로 태스크를 실행할 수 있습니다. Amazon ECS 서비스를 사용하여 Amazon ECS 클러스터에서 원하는 수의 태스크를 동시에 실행하고 유지할 수 있습니다. 태스크가 어떤 이유로든 실패하거나 중지하면 Amazon ECS 서비스 스케줄러가 태스크 정의에 따라 다른 인스턴스를 시작하는 방식으로 작동합니다. 이로써 이를 대체하여 서비스에서 원하는 수의 태스크를 유지할 수 있습니다.
컨테이너 에이전트는 Amazon ECS 클러스터 내의 각 컨테이너 인스턴스에서 실행됩니다. 에이전트는 현재 실행 중인 태스크와 컨테이너의 리소스 사용률에 대한 정보를 Amazon ECS로 전송합니다. Amazon ECS로부터 요청을 수신할 때마다 태스크를 시작 및 중지합니다.
작업 또는 서비스를 배포한 후 다음 도구 중 하나를 사용하여 배포 및 애플리케이션을 모니터링할 수 있습니다.
-
CloudWatch
-
Runtime Monitoring