Amazon ECS Express Mode 서비스 모범 사례
프로덕션 환경에서 Express Mode 서비스를 효과적으로 사용하기 위한 모범 사례 및 권장 사항에 대해 알아봅니다.
보안 모범 사례
보안 암호 관리
-
보안 암호에 Secrets Manager 사용 - Secrets Manager에 민감한 데이터(예: 프라이빗 리포지토리 또는 데이터베이스 자격 증명)를 저장합니다.
자세한 내용은 Secrets Manager 사용 설명서의 Secrets Manager best practices를 참조하세요.
-
저장 시 암호화 활성화 - AWS 서비스에 저장할 때 보안 암호가 암호화되는지 확인합니다.
Secrets Manager와 같은 서비스를 사용하면 AWS 관리형 키 또는 고객 제공 키를 사용하여 암호화할 수 있습니다.
-
보안 암호 교체 구현 - 데이터베이스 암호 및 API 키에 자동 교체를 사용합니다.
Secrets Manager와 같은 서비스를 사용하면 Amazon Aurora 및 Amazon RDS와 같은 서비스의 보안 암호 교체를 관리할 수 있습니다.
Express Mode 서비스에서 보안 암호를 사용하는 예제:
aws ecs update-express-gateway-service \ --primary-container \ ‘{“environment”=[{“name”=“DB_PASSWORD”,”value”=“arn:aws:secretsmanager:us-west-2:123456789012:secret:prod/db/password”}, \ {“name”=“API_KEY”,”value”=“arn:aws:ssm:us-west-2:123456789012:parameter/prod/api-key”}]}’ \
네트워크 보안
-
민감한 애플리케이션에서 프라이빗 서브넷 사용 - 프라이빗 서브넷에서 직접 인터넷에 액세스할 필요가 없는 애플리케이션을 배포합니다.
권장 아키텍처에 대한 자세한 내용은 Connect Amazon ECS application to the internet을 참조하세요.
-
최소 허용으로 보안 그룹 구성 - 인바운드 및 아웃바운드 트래픽을 필요한 포트 및 소스로만 제한합니다.
Express Mode 서비스 보안 그룹의 아웃바운드 트래픽을 제한하려면 아웃바운드 규칙을 수정하여 Amazon EC2 보안 그룹 콘솔에서 직접 편집하거나 다음 명령을 사용할 수 있습니다.
aws ec2 authorize-security-group-egress --group-id sg-xxxxxxxx \ --protocol tcp \ --port 443 \ --cidr 0.0.0.0/0 aws ec2 revoke-security-group-egress --group-id sg-xxxxxxxx \ --protocol tcp \ --port 443 \ --cidr 0.0.0.0/0 -
Amazon VPC 흐름 로그 활성화 - 보안 분석 및 문제 해결을 위해 네트워크 트래픽을 모니터링합니다.
VPC 서브넷 콘솔을 기반으로 Express Mode 애플리케이션에서 사용 중인 각 서브넷에서 활성화하거나
aws ec2 create-flow-logs --resource-ids subnet-xxx를 사용할 수 있습니다. -
웹 애플리케이션에 AWS WAF 사용 - 일반적인 웹 악용 및 공격으로부터 보호합니다.
웹 ACL을 생성한 다음 Express Mode 서비스에서 사용하는 Application Load Balancer에 연결하여 활성화할 수 있습니다. 콘솔을 기반으로 WAF & Shield Service에서 웹 ACL을 생성하고 Application Load Balancer에 연결합니다. 또는
aws wafv2 create-web-acl및aws wafv2 associate-web-acl --resource-arn <alb>을 사용합니다.
성능 및 컴퓨팅 최적화
리소스 크기 조정
-
적정 규모의 CPU 및 메모리 - 애플리케이션 성능을 모니터링하고 실제 사용 패턴에 따라 CPU 및 메모리 할당을 조정합니다.
AWS Compute Optimizer는 Amazon ECS 작업 및 컨테이너 크기에 대한 권장 사항을 생성합니다. 자세한 내용은 AWS Compute Optimizer 사용 설명서의 AWS Compute Optimizer이란?을 참조하세요.
-
애플리케이션 성능 테스트 - 애플리케이션이 지정된 조정 임계치 및 리소스 할당으로 대규모 기반에서 작동하는지 확인하려면 로드 테스트를 수행합니다.
오토 스케일링 구성
-
적절한 조정 임계치 설정 - 성능이 저하되기 전에 조정을 트리거하는 CPU 또는 메모리 임계치를 구성합니다.
Express Mode 서비스 콘솔에서 서비스 지표의 목표 값을 수정할 수 있습니다.
특히 트래픽이 시간 기반 패턴을 따르는 경우 예측 조정 정책을 추가하는 방법을 고려합니다. 자세한 내용은 Predictive Auto Scaling을 참조하세요.
-
다중 조정 지표 사용 - 응답성 있는 조정을 위해 CPU 또는 메모리 및 요청 기반 조정 사용을 모두 고려합니다.
서비스에 여러 정책을 추가할 수 있습니다. Express Mode는 기본적으로 하나를 추가하지만 추가 정책을 서비스에 직접 연결할 수 있습니다.
-
태스크의 최소 및 최대 한도 구성 - 비용을 제어하고 가용성을 보장하기 위해 적절한 범위를 설정합니다.
프로덕션 워크로드의 경우 초기 테스트가 완료된 후 가용성 모범 사례를 따르려면 3개의 가용 영역에서 실행하는 것이 좋습니다. Express Mode 콘솔에서 또는
update-express-gateway-service --scaling-target '{“minTaskCount”=3}'를 사용하여 최소 태스크 수를 업데이트할 수 있습니다.
상태 확인
-
의미 있는 상태 확인 구현 - 중요한 애플리케이션 종속성을 확인하는 상태 확인 엔드포인트를 생성합니다.
Express Mode 콘솔에서 상태 확인 경로를 업데이트할 수 있습니다. 또는
update-express-gateway-service --health-check-path "/health"를 사용합니다.애플리케이션의 상태 확인 구성에 대한 자세한 내용은 Implementing Health Checks
를 참조하세요. -
상태 확인 경량 유지 - 상태 확인 엔드포인트에서 비용이 많이 드는 작업을 방지합니다.
예를 들어 외부 API 직접 호출, CPU 또는 메모리 집약적 작업 또는 제한 시간이 초과된 장기 실행 작업이 포함될 수 있습니다.
-
적절한 제한 시간 사용 - 장애를 빠르게 감지하는 동시에 정상적인 응답 시간을 허용하는 상태 확인 제한 시간을 구성합니다.
Express Mode에 대한 상태 확인 제한 시간은 Application Load Balancer 대상 그룹에서 구성할 수 있습니다. Amazon EC2 콘솔에서 대상 그룹 섹션으로 이동하여 Express Mode 대상 그룹을 선택합니다. 상태 확인 탭을 선택하고 편집을 클릭합니다. 고급 상태 확인 설정에서 제한 시간을 조정할 수 있습니다. 또는
aws elbv2 modify-target-group --target-group-arn <targetgroup> --health-check-timeout을 사용합니다. -
적절한 HTTP 상태 코드 반환 - 정상 상태인 경우 200을 사용하고 비정상 상태인 경우 4xx/5xx를 사용합니다.
운영 모범 사례
모니터링 및 로깅
-
향상된 Container Insights 활성화 - Express Mode 서비스 애플리케이션을 포괄적으로 모니터링하려면 CloudWatch, 향상된 Container Insights를 사용합니다.
자세한 내용은 Setting up Container Insights on Amazon ECS를 참조하세요.
-
사용자 지정 지표 설정 - 비즈니스 로직 모니터링을 위해 애플리케이션별 지표를 CloudWatch에 게시합니다.
자세한 내용은 CloudWatch 사용 설명서의 Public custom metrics를 참조하세요.
-
로그 보존 구성 - 비용과 규정 준수 요구 사항의 균형을 맞추기 위해 적절한 로그 보존 기간을 설정합니다.
Express Mode에서 생성한 CloudWatch 로그 그룹은 만료되지 않도록 구성되며 Express Mode 서비스가 삭제될 때에도 유지됩니다. CloudWatch 로그 그룹에서 이 설정을 조정할 수 있습니다.
-
대시보드 및 알림 생성 - 선제적 모니터링을 위한 CloudWatch, 대시보드 및 경보를 설정합니다.
배포 전략
-
베이크 소요 시간 구현 - Express Mode는 카나리 베이크 소요 시간을 구현하여 문제가 있는 배포의 영향 범위를 줄이면서 배포를 안정화할 시간을 확보합니다. 애플리케이션을 안정화하는 데 시간이 더 필요한 경우 Express Mode 서비스의 Amazon ECS 서비스 정의에서 구성할 수 있습니다. 자세한 내용은 Creating an Amazon ECS canary deployment를 참조하세요.
-
롤백 절차 구현 - 문제가 발생할 경우 이전 버전으로 빠르게 되돌릴 계획을 세웁니다.
의미 있는 상태 확인과 경보 기반 롤백은 모두 롤백에 도움이 될 수 있습니다. Express Mode의 카나리 배포 전략과 4xx 및 5xx 트래픽의 경보 기반 롤백을 결합하면 애플리케이션 코드 또는 구성에 결함이 있는 경우 빠른 롤백을 위한 배포를 설정할 수 있습니다.