보고서 생성 - Application Cost Profiler

AWS 애플리케이션 비용 프로파일러는 2024년 9월 30일에 단종되며 더 이상 신규 고객을 받지 않습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

보고서 생성

사전 조건을 충족하면 AWS 계정 보고서를 구성하여 AWS Application Cost Profiler로 사용 데이터를 전송할 수 있습니다. 이 섹션에서는 보고서를 구성하는 방법과 사용 데이터를 Application Cost Profiler로 보내는 방법을 설명합니다.

Application Cost Profiler 보고서 구성

다음은 생성하려는 보고서를 사용 날짜에 따라 구성하는 방법입니다. 보고서 생성 빈도와 같은 세부 정보를 구성합니다.

참고

AWS 계정이(가) AWS 조직에 속하면 관리 계정 또는 개별 구성원 계정을 이용해 보고서를 구성할 수 있습니다. 개별 계정에 대해 구성된 보고서에는 해당 계정에 대한 데이터만 포함됩니다. 관리 계정을 사용하여 구성된 보고서에는 전체 조직에 대한 데이터가 포함될 수 있습니다.

보고서 출력에 사용되는 Amazon S3 버킷은 보고서 구성을 생성하는 계정에 속해야 합니다.

Application Cost Profiler 보고서 구성 방법
  1. 웹 브라우저를 열고 Application Cost Profiler 콘솔에 로그인합니다.

  2. 보고서를 구성하거나 수정하려면 지금 시작하기를 선택하세요.

  3. 보고서 이름보고서 설명을 입력합니다.

  4. S3 버킷 이름 입력 필드에 S3 버킷 이름을 입력하고 S3 접두사 입력 필드에 S3 접두사를 입력합니다. S3 버킷 생성 및 Application Cost Profiler 권한 부여에 대한 자세한 내용은 Application Cost Profiler용 Amazon S3 버킷 설정의 내용을 참조하세요.

  5. 보고서에 포함하려는 옵션을 선택합니다.

    • 시간 빈도 — 보고서를 일별 또는 월별로 생성할지 또는 둘 다를 기준으로 생성할지 선택합니다.

    • 보고서 출력 형식 — Amazon S3 버킷 내에 생성할 파일 유형을 선택합니다. CSV를 선택하면 Application Cost Profiler가 보고서에 대해 gzip으로 압축된 쉼표로 구분된 값 텍스트 파일을 생성합니다. Parquet를 선택하면 보고서의 Parquet 파일이 생성됩니다.

  6. 계속을 선택하여 구성을 저장합니다.

참고

AWSApplication Cost Profiler API를 사용하여 보고서를 구성할 수도 있습니다.

현재 보고서 구성을 보려면 지금 시작하기를 선택하여 보고서 설정을 확인하세요.

참고

보고서를 하나만 구성할 수 있습니다. 구성 페이지로 돌아가면 기존 보고서가 편집됩니다.

보고서를 구성한 후에는 데이터 모으기가 활성화됩니다. 서비스를 Application Cost Profiler와 통합하여 리소스에 대한 사용 데이터를 제공할 수 있습니다.

서비스의 테넌트 사용 데이터 보고

보고서를 구성했으면 계정의 리소스 또는 서비스에서 테넌트 사용 데이터를 전송할 수 있습니다. 리소스가 특정 테넌트에 사용되면 이를 Application Cost Profiler에 알려야 합니다. 예를 들어 서비스가 다른 테넌트의 API 직접 호출을 수락하는 경우 해당 테넌트에서 API 직접 호출을 시작하고 종료할 때 각 테넌트의 시작 및 종료 시간을 기록합니다. Application Cost Profiler는 이 데이터를 사용하여 각 테넌트의 작업에 소요된 시간을 기준으로 서비스 비용에 대한 보고서를 생성합니다.

Application Cost Profiler에 사용 데이터를 제공하려면 다음과 같이 하세요.

  • 리소스 사용 데이터 준비 - 특정 테넌트에 리소스가 사용되는 시기를 설명하는 테이블을 생성합니다.

  • 사용 데이터 업로드 – Application Cost Profiler에 액세스 권한을 부여한 Amazon S3 버킷에 테이블을 업로드합니다.

  • 사용 데이터 가져오기ImportApplicationUsage API 작업을 직접적으로 호출하여 Application Cost Profiler에 데이터를 처리할 준비가 되었음을 알립니다.

다음 단원에서는 이러한 단계에 대해 자세히 설명합니다.

1단계: 리소스 사용 데이터 준비

서비스에서 리소스를 사용할 때 해당 리소스를 사용하는 테넌트를 추적할 수 있습니다. 이 데이터를 테이블에 기록해 두면 나중에 Application Cost Profiler가 가져올 수 있도록 업로드할 수 있습니다. 표의 각 행에는 리소스, 리소스를 사용하는 테넌트, 해당 사용의 시작 및 종료 시간에 대한 설명이 나와 있습니다. 예시 리소스는 사용 중인 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스입니다.

이 단계에서는 서비스에 코드를 통합하여 사용에 대한 올바른 정보를 출력해야 합니다.

리소스 사용 테이블에 있는 필드가 다음 테이블에 나와 있습니다.

필드 설명
ApplicationId 시스템에서 사용 중인 애플리케이션 또는 제품을 식별합니다. 테넌트 메타데이터의 범위를 정의합니다.
TenantId 시스템에서 지정된 리소스를 사용 중인 테넌트의 식별자입니다. Application Cost Profiler는 ApplicationId 내에서 이 수준으로 집계됩니다.
TenantDesc (선택 사항) 자체 추가 보고를 위한 테넌트 관련 추가 데이터
UsageAccountId 리소스가 실행되는 계정(조직에 속한 계정에 중요)
StartTime Epoch의 타임스탬프(밀리초 및 마이크로초 단위)(UTC) 지정된 테넌트가 사용한 기간의 시작 시간을 나타냅니다.
EndTime Epoch의 타임스탬프(밀리초 및 마이크로초 단위)(UTC) 지정된 테넌트가 사용한 기간의 종료 시간을 나타냅니다.
ResourceId 사용 중인 리소스의 Amazon 리소스 이름(ARN)
이름 (선택 사항) ResourceId를 지정하는 대신 Name 리소스 태그를 지정하여 비용을 리소스 세트에 할당할 수 있습니다(Name 태그에 사용할 값이 필드에 포함되어야 함). 비용 및 사용 보고서의 일부로 리소스 태그가 활성화됩니다. 리소스 태그에 대한 자세한 내용은 비용 및 사용 보고서 사용자 설명서리소스 태그 세부 정보를 참조하세요.

출력은 다음 예와 같이 제목 행을 포함하고 값이 쉼표로 구분된 파일(.csv)이어야 합니다.

ApplicationId,TenantId,TenantDesc,UsageAccountId,StartTime,EndTime,ResourceId MyApp,Tenant1,,123456789012,1613681437032.9001,1613681437041.5312,arn:aws:ec2:us-east-1:123456789012:instance/1234-abcd-example-1234 MyApp,Tenant2,,123456789012,1613681245531.4426,1613681245551.1323,arn:aws:ec2:us-east-1:123456789012:instance/1234-abcd-example-1234 MyApp,Tenant1,,123456789012,1613681904815.3381,1613681904930.0972,arn:aws:ec2:us-east-1:123456789012:instance/1234-abcd-example-1234 MyApp,Tenant2,,123456789012,1613681904765.1956,1613681904946.574,arn:aws:ec2:us-east-1:123456789012:instance/1234-abcd-example-1234

데이터를 확장명이.csv(또는 gzip으로 압축한 경우에는 .csv.gzip)인 파일로 저장합니다. 이 데이터를 Application Cost Profiler에 업로드하면 각 타임 슬라이스가 연결된 테넌트에 할당됩니다. 이 예시의 보고서에는 해당 테넌트에 대한 Amazon EC2 인스턴스 비용의 타임 슬라이스가 포함됩니다. Amazon EC2 인스턴스의 경우에만, 특정 테넌트와 연결되지 않은 슬라이스는 속성이 지정되지 않은 테넌트에 추가됩니다. 겹치는 타임 슬라이스는 여러 번 집계됩니다. 사용 테이블의 데이터가 정확한지 확인하는 것은 사용자의 책임입니다.

참고

파일은 1시간 분량이어야 합니다. 리소스가 여러 시간에 걸쳐 사용되면 해당 시간에 사용을 종료하고 같은 시간에 시작되는 다음 파일에 새 레코드를 생성하세요.

전체 시간의 데이터가 포함된 파일 하나를 제출해야 합니다. 같은 시간 데이터에 대해 여러 파일이 제출되는 경우 Application Cost Profiler에서는 최신 파일의 데이터만 고려합니다.

예를 들어, 다음 테이블에는 Application Cost Profiler가 제공된 시간 분할을 기반으로 하는 시간(3,600,000밀리초) 동안 세 테넌트에 대한 사용량을 계산하는 방법이 나와 있습니다.

테넌트 제공된 타임 슬라이스 시간당 비용의 계산된 비율
Tenant1 1,200,000 ms 33.34%
Tenant2 600,000 ms 16.66%
<unattributed> 50.00%

이 예에서 Tenant1에는 시간의 1/3이 할당되고, Tenant2에는 시간의 1/6이 할당됩니다. 나머지 30분(1,800,000 ms)은 어느 클라이언트에게도 할당되지 않으며, 이는 시간의 50%에 해당합니다.

현재 Application Cost Profiler에는 다음과 같은 리소스가 활성화되어 있습니다.

  • Amazon EC2 인스턴스(온디맨드 및 스팟 인스턴스만)

  • Lambda 함수(Lambda 함수에 대한 데이터를 전송하는 경우 Unqualified Resource ARN을 ResourceId로 전송해야 함)

  • Amazon Elastic Container Service(Amazon ECS) 인스턴스

  • Amazon Simple Queue Service(Amazon SQS) 대기열

  • Amazon Simple Notification Service(Amazon SNS) 주제

  • Amazon DynamoDB 읽기 및 쓰기

참고

Amazon SQS, Amazon SNS 및 DynamoDB 사용량에 대해서는 대부분의 리소스와 달리 시간 단위로 청구되지 않습니다. 이 경우 한 시간 동안의 사용량(예: DynamoDB의 읽기 및 쓰기 횟수)은 해당 시간 동안 읽기 또는 쓰기가 발생한 시점에 관계없이 다른 테넌트에 할당한 시간의 백분율로 분류됩니다.

2단계: 리소스 사용량 업로드

테넌트별 사용량 파일이 있으면 데이터 파일을 Amazon S3에 업로드하고 이에 대한 액세스 권한이 Application Cost Profiler에 있는지 확인하세요.

S3 버킷 생성에 대해 자세히 알아보려면 Application Cost Profiler 관련 사전 조건의 내용을 참조하세요.

Application Cost Profiler가 S3 버킷에 액세스할 수 있는지 확인해야 합니다. 이 작업은 S3 버킷당 한 번만 하면 됩니다(동일한 버킷을 재사용하여 여러 사용 파일을 업로드할 수 있음). 이 버킷에 대한 액세스 권한에 대해 알아보려면 Application Cost Profiler에 사용 데이터 S3 버킷에 대한 액세스 권한 부여의 내용을 참조하세요. 버킷이 암호화된 경우 Application Cost Profiler에 SSE-KMS로 암호화된 S3 버킷에 대한 액세스 권한 부여의 내용을 참조하세요.

참고

사용 데이터에 사용하는 S3 버킷은 암호화하지 않아도 됩니다.

1시간 간격으로 데이터를 확장명이.csv(또는 gzip으로 압축한 경우는.csv.gzip) 인 파일로 S3 버킷에 업로드합니다. 새 파일을 업로드한 후에는 파일을 보고서로 가져올 수 있도록 Application Cost Profiler에 업로드했음을 알려야 합니다.

참고

Application Cost Profiler에 사용 데이터에 대한 액세스 권한을 부여하면 보고서를 처리하는 동안 해당 사용 데이터 개체를 미국 동부(버지니아 북부) AWS 리전에 일시적으로 복사할 수 있다는 데 동의한 것으로 간주됩니다. 이러한 데이터 객체는 월별 보고서 생성이 완료될 때까지 미국 동부(버지니아 북부) 리전에 있습니다.

3단계: Application Cost Profiler로 사용 데이터 가져오기

Application Cost Profiler가 액세스할 수 있는 Amazon S3 버킷에 사용 데이터를 업로드한 후, Application Cost Profiler에 데이터가 있음을 알리고 이를 최종 보고서로 가져오세요. Application Cost Profiler API의 ImportApplicationUsage 작업을 이용해 이 작업을 처리할 수 있습니다.

ImportApplicationUsage 작업을 포함하여 AWS Application Cost Profiler API에 대해 자세히 알아보려면 AWS Application Cost Profiler API 참조를 참조하세요.

다음 예에는 ImportApplicationUsage를 직접적으로 호출하는 방법이 나와 있습니다. 대괄호 안의 입력 텍스트를 S3 버킷과 업로드된 객체의 값으로 대체하세요.

POST /ImportApplicationUsage HTTP/1.1 Content-type: application/json { "sourceS3Location" : { "bucket": "<bucket-name>", "key": "<object-key>", "region": "<region-id>" } }
참고

region 파라미터는 버킷이 기본적으로 비활성화된 AWS 리전 상태인 경우에만 필요합니다. 자세한 내용은 AWS 일반 참조관리 AWS 리전를 참조하세요.

Application Cost Profiler는 ImportApplicationUsage로 가져온 데이터를 이용해 보고서를 구성할 때 요청한 빈도에 따라 새 보고서를 생성합니다.

보고서를 구성하고 사용 데이터를 Application Cost Profiler로 자동으로 가져오면 생성된 보고서를 볼 수 있습니다. 보고서에 대한 자세한 내용은 Application Profiler 보고서 사용의 내용을 참조하세요.