기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon ECS에서 AWS Fargate 작업 비용 최적화
개요
올바른 크기 조정 AWS Fargate 작업은 비용 최적화를 위한 중요한 단계입니다. 애플리케이션은 Fargate 태스크에 대한 임의 크기 조정으로 빌드되는 경우가 많으며 절대 유지되지 않습니다. 이로 인해 Fargate 태스크가 과다 프로비저닝되고 불필요한 지출이 발생할 수 있습니다. 이 섹션에서는 AWS Compute Optimizer
비용 이점
Fargate에서 Amazon ECS 태스크를 적정 규모로 조정하면 장기 실행 태스크의 비용을 30~70% 절감할 수 있습니다. 애플리케이션 성능 지표를 검토하여 태스크를 적정 규모로 조정하지 않고도 EC2 컴퓨팅 인스턴스에 사용된 것과 동일한 사고 방식을 컨테이너 크기 조정에 적용할 수 있습니다. 이로 인해 Fargate 태스크가 너무 커지면 유휴 리소스에 대한 비용이 증가합니다. Compute Optimizer를 사용하여 적정 규모 조정 기회를 사후에 표시할 수 있습니다. 애플리케이션 소유자가 특정 애플리케이션 성능 지표를 검토하고 운영 체제 오버헤드를 제거하여 적절한 태스크 크기를 지정하는 것이 가장 좋습니다. 자세한 내용은 이 가이드의 컨테이너로 Windows 애플리케이션 이동 섹션을 참조하세요.
비용 최적화 권장 사항
이 섹션에서는 Compute Optimizer를 사용하여 Fargate 기반 Amazon ECS 태스크를 적정 규모로 조정하기 위한 권장 사항을 제공합니다.
비용 최적화 프로세스의 일환으로 다음을 수행하는 것이 좋습니다.
-
Compute Optimizer 활성화
-
Compute Optimizer 결과 사용
-
적정 규모로 태스크 태그 지정
-
비용 할당 태그가 AWS 결제 도구에서 작동하도록 활성화
-
적정 규모 권장 사항 구현
-
Cost Explorer에서 이전과 이후 비용 검토
Compute Optimizer 활성화
AWS Organizations의 조직 또는 단일 계정 수준에서 AWS Compute Optimizer를 활성화할 수 있습니다. 조직 전체 구성은 모든 멤버 계정의 전체 플릿에서 신규 및 기존 인스턴스에 대한 지속적인 보고서를 제공합니다. 이렇게 하면 특정 시점 활동 대신 적정 규모 조정이 반복 활동이 될 수 있습니다.
조직 수준
대부분의 조직에서 Compute Optimizer를 사용하는 가장 효율적인 방법은 조직 수준에서 사용하는 것입니다. 그러면 조직에 대한 다중 계정 및 다중 리전 가시성을 제공하고 검토를 위해 데이터를 하나의 소스로 중앙 집중화할 수 있습니다. 조직 수준에서 이를 활성화하려면 다음을 수행합니다.
-
필요한 권한이 있는 역할로 AWS Organizations 관리 계정에 로그인하고 이 조직 내 모든 계정에 대해 옵트인하도록 선택하세요. 조직의 모든 기능을 활성화해야 합니다.
-
관리 계정을 활성화한 후 계정에 로그인하고, 다른 모든 멤버 계정을 보며, 권장 사항을 찾아볼 수 있습니다.
참고
Compute Optimizer에 대해 위임된 관리자 계정을 구성하는 것이 모범 사례입니다. 이를 통해 최소 권한 원칙을 연습하여 AWS Organizations 관리 계정에 대한 액세스를 최소화하는 동시에 조직 전체의 서비스에 대한 액세스를 제공할 수 있습니다.
단일 계정 수준
비용이 높지만 AWS Organizations에 액세스할 수 없는 계정을 대상으로 하는 경우에도 해당 계정 및 리전에서 Compute Optimizer를 활성화할 수 있습니다. 옵트인 프로세스에 대한 자세한 내용은 시작하기를 참조하세요 AWS Compute Optimizer.
참고
권장 사항은 매일 업데이트되며 생성하는 데 최대 12시간이 걸릴 수 있습니다. Compute Optimizer가 Fargate의 Amazon ECS에 대한 권장 사항을 생성하려면 지난 14일 동안 24시간 분량의 지표가 필요하다는 점을 유의해야 합니다. 자세한 내용은 Compute Optimizer 설명서의 Requirements for Amazon ECS services on Fargate를 참조하세요.
Compute Optimizer는 Fargate 기반 Amazon ECS 서비스에서 다음과 같은 Amazon CloudWatch 및 Amazon ECS 사용률 지표를 자동으로 분석합니다.
-
CPUUtilization- 서비스에서 사용되는 CPU 용량의 비율(%). -
MemoryUtilization- 서비스에서 사용되는 메모리의 비율(%).
Compute Optimizer 결과 사용
단일 계정 및 단일 리전 내에서 적정 규모 조정을 수행하는 데 중점을 둔 예를 고려합니다. 이 예제에서는 Compute Optimizer가 모든 계정의 조직 수준에서 활성화됩니다. 적정 규모 조정은 대부분의 경우 몇 주 동안 예약된 유지 관리 기간에 애플리케이션 소유자가 정확하게 수행하는 파괴적 프로세스입니다.
조직의 관리 계정 내에서 Compute Optimizer로 이동하는 경우(다음 단계에 표시됨) 조사하려는 계정을 선택할 수 있습니다. 이 예제에서는 us-east-1에서 과다 프로비저닝된 단일 계정에서 하나의 태스크가 실행되고 있습니다. Amazon ECS 서비스의 권장 크기로 크기를 조정하는 데 중점을 둡니다.
-
Compute Optimizer 콘솔
을 여세요. -
대시보드 페이지에서 조사 결과=과다 프로비저닝으로 필터링하여 Fargate의 모든 Amazon ECS 서비스를 확인하세요.
-
Fargate에서 과다 프로비저닝된 ECS 서비스에 대한 자세한 권장 사항을 검토하려면 아래로 스크롤한 다음 권장 사항 보기를 선택하세요.
-
내보내기를 선택하고 나중에 사용할 수 있도록 파일을 저장하세요.
참고
향후 검토를 위해 권장 사항을 저장하려면 Compute Optimizer가 각 리전에서 쓸 수 있는 S3 버킷이 있어야 합니다. 자세한 내용은 Compute Optimizer 설명서의 Amazon S3 bucket policy for AWS Compute Optimizer를 참조하세요.
Compute Optimizer의 권장 사항을 보려면 다음을 수행합니다.
-
Compute Optimizer 콘솔
에서 권장 사항 내보내기 페이지로 이동하세요. -
S3 버킷 대상에서 S3 버킷을 선택하세요.
-
필터 내보내기 섹션의 리소스 유형에서 Fargate의 ECS 서비스를 선택하세요.
-
Fargate의 ECS 서비스에 대한 권장 사항 페이지에서 Fargate의 ECS 서비스 중 하나를 자세히 살펴보고 Compute Optimizer의 CPU 및 메모리 권장 사항을 확인하세요. 예를 들어 현재 설정과 권장 작업 크기 비교 및 현재 설정과 권장 컨테이너 크기 비교 섹션의 권장 사항을 검토하세요.
적정 규모로 조정해야 하는 Fargate용 ECS 서비스 목록을 가져오려면 다음을 수행합니다.
-
Amazon S3 콘솔
을 엽니다. -
탐색 창에서 버킷을 선택한 다음 결과를 내보낸 버킷을 선택하세요.
-
객체 탭에서 객체를 선택하고 다운로드를 선택하세요.
-
다운로드한 결과에서 조사 결과 열을 필터링하여 Fargate에서 OVER_PROVISIONED Amazon ECS 서비스만 표시하세요. 적정 규모 조정의 대상으로 지정하려는 Amazon ECS 서비스를 보여줍니다.
-
나중에 사용할 수 있도록 텍스트 편집기에 작업 정의를 저장하세요.
적정 규모 조정 태그 태스크
워크로드에 태그를 지정하는 방식은 AWS에서 리소스를 구성하기 위한 강력한 도구입니다. 태그를 사용하여 비용을 세부적으로 파악하고 차지백을 지원할 수 있습니다. 차지백 및 자동화를 처리하기 위해 AWS
리소스에 태그를 추가하는 여러 방법과 전략이 있습니다. 자세한 내용은 리소스 태그 지정을 위한 AWS 백서 모범 사례를 참조하세요. AWS 다음 예제에서는 AWS CloudShell
#!/bin/bash # Set variables TAG_KEY="rightsizing" TAG_VALUE="enabled" # Get a list of ECS Clusters ClustersArns=$( aws ecs list-clusters –query 'clusterArns' –output text) for ClustersArn in $ClustersArns; do ServiceArns=$( aws ecs list-services –cluster $ClustersArn –query 'serviceArns' –output text) for ServiceArn in $ServiceArns; do TasksArns=$( aws ecs list-tasks –cluster $ClustersArn –service-name $ServiceArn –query 'taskArns' –output text) for TasksArn in $TasksArns; do aws ecs tag-resource –resource-arn $TasksArn –tags key=$TAG_KEY,value=$TAG_VALUE done done done
다음 코드 예제에서는 모든 Amazon ECS 서비스에 대한 태그 전파를 활성화하는 방법을 보여줍니다.
#!/bin/bash # Set variables TAG_KEY="rightsizing" TAG_VALUE="enabled" # Get a list of ECS Clusters ClustersArns=$(aws ecs list-clusters --query 'clusterArns' --output text) for ClustersArn in $ClustersArns; do ServiceArns=$(aws ecs list-services --cluster $ClustersArn --query 'serviceArns' --output text) for ServiceArn in $ServiceArns; do aws ecs update-service --cluster $ClustersArn --service $ServiceArn --propagate-tags SERVICE &>/dev/null aws ecs tag-resource --resource-arn $ServiceArn --tags key=$TAG_KEY,value=$TAG_VALUE done done
비용 할당 태그가 AWS 결제 도구에서 작동하도록 활성화
사용자 정의 비용 할당 태그를 활성화하는 것이 좋습니다. 이렇게 하면 AWS 결제 도구(예: AWS Cost Explorer )에서 적정 크기 조정 태그를 인식하고 필터링할 수 있습니다 AWS Cost and Usage Report. 이를 활성화하지 않으면 태그 필터링 옵션과 데이터를 사용할 수 없습니다. 비용 할당 태그 사용에 대한 자세한 내용은 AWS 결제 및 비용 관리 설명서의 Activating user-defined cost allocation tags를 참조하세요.
24시간을 기다린 후 다음 섹션에서 적정 규모 조정 권장 사항을 구현하기 전에 Cost Explorer에서 태그를 볼 수 있습니다. 이를 위해 Cost Explorer에서 적정 규모 조정 태그를 검색합니다.
적정 규모 권장 사항 구현
Compute Optimizer는 태스크 또는 컨테이너 크기 권장 사항을 제공합니다. 적정 규모 조정 권장 사항을 구현하려면 다음을 수행합니다.
-
Amazon ECS 콘솔
을 엽니다. -
탐색 모음에서 태스크 정의가 들어 있는 리전을 선택합니다.
-
탐색 창에서 태스크 정의(Task definitions)를 선택합니다.
-
태스크 정의(Task definitions) 페이지에서 태스크를 선택한 다음 새 개정 생성(Create new revision)을 선택합니다.
-
새 태스크 정의 개정 생성(Create new task definition revision) 페이지에서 변경합니다. 컨테이너 크기 권장 사항을 업데이트하려면 ECS 태스크 정의의 containerDefinitions 블록에서
cpu및memory를 업데이트하세요. 예제:"containerDefinitions": [ { "name": "your-container-name", "image": "your-image", "cpu": 1024, "memory": 2048, } ], -
정보를 확인하고 생성(Create)을 선택합니다.
Amazon ECS 서비스를 업데이트하려면 다음을 수행합니다.
-
Amazon ECS 콘솔
을 엽니다. -
클러스터(Clusters) 페이지에서 클러스터를 선택합니다.
-
Cluster overview(클러스터 개요) 페이지에서 서비스를 선택한 다음 Update(업데이트)를 선택합니다.
-
태스크 정의(Task definition)에서 사용할 태스크 정의 패밀리 및 개정을 선택합니다.
고급 운영자의 경우 CloudShell을 사용하여 Amazon ECS 서비스를 업데이트할 수 있습니다. 예제:
bash #!/bin/bash # Set variables ClustersName="workshop-cluster" ServiceName="lab7-fargate-service" TaskDefinition="lab7-fargate-demo:3" # update the service aws ecs update-service --cluster $ClustersName --service $ServiceName --task-definition $TaskDefinition
전후 비용 검토
리소스를 적정 규모로 조정한 후에 Cost Explorer를 사용하여 적정 규모 조정 태그를 사용하여 전후 비용을 표시할 수 있습니다. 리소스 태그를 사용하여 비용을 추적할 수도 있습니다. 여러 계층의 태그를 사용하면 비용을 세부적으로 파악할 수 있습니다. 이 가이드에서 다루는 예제에서 적정 규모 조정 태그는 모든 대상 인스턴스에 일반 태그를 적용하는 데 사용됩니다. 그런 다음 팀 태그를 사용하여 리소스를 추가로 구성합니다. 다음 단계에서는 애플리케이션 태그를 도입하여 특정 애플리케이션 운영에 따른 비용 영향을 추가로 보여줍니다.
단일 계정 수준에서 적정 규모 조정 태그를 사용하여 달성할 수 있는 비용 절감 예제를 고려합니다. 이 예제에서 운영 비용은 일별 30.26 USD에서 일별 7.56 USD로 줄었습니다. 매월 744시간을 가정하면 적정 규모 조정 전 연간 비용은 11,044.9 USD입니다. 적정 규모 조정 후 연간 비용은 2,759.4 USD로 떨어집니다. 따라서 이 계정의 컴퓨팅 비용이 75% 감소합니다. 대규모 조직 전체에 미치는 영향을 고려합니다.
적정 규모 조정 여정을 시작하기 전에 다음 사항을 고려합니다.
다음 단계
다음 단계를 수행하는 것이 좋습니다.
-
기존 환경을 검토하고 Amazon EBS gp2 볼륨을 gp3 볼륨으로 전환하는 방법을 고려하세요.
-
절감형 플랜
을 검토하세요.
추가 리소스
-
Compute Optimizer 시작하기
(AWS 문서) -
AWS 리소스 태그 지정 모범 사례(AWS 백서)
-
의 Windows 컨테이너 AWS
(AWS Workshop Studio)