Amazon Web Services 한국 블로그

Amazon ECS Express Mode 출시 – 인프라 복잡성 없이 프로덕션 수준의 애플리케이션 구축 지원

컨테이너식 애플리케이션을 프로덕션에 배포하려면 로드 밸런서, 오토 스케일링 정책, 네트워킹 및 보안 그룹 전반에서 수백 개의 구성 파라미터를 탐색해야 합니다. 이러한 오버헤드로 인해 출시 시간이 지연되고 핵심 애플리케이션 개발에 집중할 수 없게 됩니다.

오늘, Amazon Elastic Container Service(Amazon ECS)의 새로운 기능인 Amazon ECS Express Mode를 발표하게 되어 기쁩니다. 이 모드를 사용하면 단일 명령으로 가용성과 확장성이 뛰어난 컨테이너식 애플리케이션을 시작할 수 있습니다. ECS Express Mode는 간소화된 API를 통해 도메인, 네트워킹, 로드 밸런싱, 오토 스케일링을 비롯한 인프라 설정을 자동화합니다. 즉, Amazon Web Services(AWS) 모범 사례를 사용하여 안정적으로 배포하면서 애플리케이션 구축에 집중할 수 있습니다. 또한 애플리케이션이 발전하고 고급 기능이 필요한 경우 Amazon ECS를 비롯한 리소스의 전체 기능을 원활하게 구성하고 액세스할 수 있습니다.

Amazon ECS 콘솔로 이동하여 Amazon ECS Express Mode를 시작할 수 있습니다.

Amazon ECS Express Mode는 AWS 전반에서 자주 사용되는 리소스를 손쉽게 생성할 수 있도록 새로운 통합 기능을 제공하며, Amazon ECS 서비스 리소스를 보다 단순화된 인터페이스로 제공합니다. ECS Express Mode는 단일 진입점에서 ECS 클러스터, 작업 정의, Application Load Balancer, 오토 스케일링 정책 및 Amazon Route 53 도메인을 자동으로 프로비저닝하고 구성합니다.

ECS Express Mode 시작하기
Amazon ECS Express Mode를 사용하는 방법을 안내해 드리겠습니다. 컨테이너식 애플리케이션을 가장 빠르게 배포할 수 있는 방법을 제공하는 콘솔 환경을 중점적으로 살펴보겠습니다.

이 예제에서는 Flask 프레임워크와 함께 Python에서 실행되는 간단한 컨테이너 이미지 애플리케이션을 사용합니다. 다음은 데모용으로 사용한 Dockerfile이며 Amazon Elastic Container Registry(Amazon ECR) 리포지토리에 푸시했습니다.


# Build stage
FROM python:3.6-slim as builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir --user -r requirements.txt gunicorn

# Runtime stage
FROM python:3.6-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY app.py .
ENV PATH=/root/.local/bin:$PATH
EXPOSE 80
CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:app"]

Express Mode 페이지에서 생성을 선택합니다. 인터페이스가 간소화되었습니다. Amazon ECR에서 컨테이너 이미지 URI를 지정한 다음 작업 실행 역할과 인프라 역할을 선택합니다. 이러한 역할이 아직 없는 경우 드롭다운에서 새 역할 생성을 선택하여 AWS Identity and Access Management(IAM) 관리형 정책에서 역할을 새로 생성합니다.

배포를 사용자 지정하려는 경우 추가 구성 섹션을 확장하여 클러스터, 컨테이너 포트, 상태 확인 경로 또는 환경 변수를 정의할 수 있습니다.

이 섹션에서는 CPU, 메모리 또는 규모 조정 정책도 조정할 수 있습니다.

필요할 때 애플리케이션 문제를 해결할 수 있도록, 항상 Amazon CloudWatch Logs에 로그 설정을 구성합니다. 구성이 만족스러우면 생성을 선택합니다.

생성을 선택하면 Express Mode가 전체 애플리케이션 스택을 자동으로 프로비저닝합니다. 여기에는 AWS Fargate 작업이 포함된 Amazon ECS 서비스, 상태 확인이 포함된 Application Load Balancer, CPU 사용률에 기반한 오토 스케일링 정책, 보안 그룹 및 네트워킹 구성, 그리고 AWS에서 제공한 URL이 포함된 사용자 지정 도메인이 포함됩니다. 리소스 탭의 타임라인 보기에서도 진행 상황을 확인할 수 있습니다.

프로그래밍 방식으로 배포해야 하는 경우 단일 AWS Command Line Interface(AWS CLI) 명령으로 동일한 결과를 얻을 수 있습니다.

aws ecs create-express-gateway-service \
--image [ACCOUNT_ID].ecr.us-west-2.amazonaws.com/myapp:latest \
--execution-role-arn arn:aws:iam::[ACCOUNT_ID]:role/[IAM_ROLE] \
--infrastructure-role-arn arn:aws:iam::[ACCOUNT_ID]:role/[IAM_ROLE]

작업이 완료되면 콘솔에서 애플리케이션 URL을 확인하고 실행 중인 애플리케이션에 즉시 액세스할 수 있습니다.

애플리케이션이 생성되면, ECS 서비스에서 지정한 클러스터 또는 지정하지 않은 경우 기본 클러스터로 이동하여 세부 정보를 볼 수 있습니다. 이를 통해 성능을 모니터링하고, 로그를 확인하며, 배포를 관리할 수 있습니다.

애플리케이션을 새 컨테이너 버전으로 업데이트해야 하는 경우 콘솔로 돌아가서 Express 서비스를 선택하고 업데이트를 선택하면 됩니다. 인터페이스를 사용하여 새 이미지 URI를 지정하거나 리소스 할당을 조정할 수 있습니다.

또는 AWS CLI를 사용하여 업데이트할 수도 있습니다.

aws ecs update-express-gateway-service \
  --service-arn arn:aws:ecs:us-west-2:[ACCOUNT_ID]:service/[CLUSTER_NAME]/[APP_NAME] \
  --primary-container '{
    "image": "[IMAGE_URI]"
  }'

전체적인 사용 경험은 설정 복잡성을 낮추면서도, 고급 구성이 필요할 때 기본 리소스에 모두 액세스할 수 있게 해준다는 점이 인상적입니다.

추가 정보
ECS Express Mode에 대한 추가 정보는 다음과 같습니다.

  • 가용성 – ECS Express Mode는 출시와 동시에 모든 AWS 리전에서 사용할 수 있습니다.
  • 코드형 인프라 지원AWS CloudFormation, AWS 클라우드 개발 키트(CDK) 또는 Terraform과 같은 IaC 도구를 사용하여 Amazon ECS Express Mode를 통해 애플리케이션을 배포할 수 있습니다.
  • 요금 – Amazon ECS Express Mode를 사용하는 데 드는 추가 비용은 없습니다. 애플리케이션을 시작하고 실행하기 위해 생성한 AWS 리소스에 대해 비용을 지불합니다.
  • Application Load Balancer 공유 – 생성된 ALB는 호스트 헤더 기반 리스너 규칙을 사용하여 최대 25개의 ECS 서비스에서 자동으로 공유됩니다. 이는 ALB 비용을 크게 분산하는 데 도움이 됩니다.

Amazon ECS 콘솔을 통해 Amazon ECS Express Mode를 시작하세요. Amazon ECS 설명서 페이지에서 자세히 알아보세요.

즐겁게 빌드해 보세요!
Donnie