AWS CLI를 사용한 Amazon RDS Performance Insights 예시
다음 코드 예시는 Amazon RDS Performance Insights와 함께 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.
각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.
주제
작업
다음 코드 예시는 create-performance-analysis-report의 사용 방법을 보여 줍니다.
- AWS CLI
-
성능 분석 보고서를 생성하는 방법
다음
create-performance-analysis-report예시에서는 데이터베이스db-abcdefg123456789에 대해 시작 시간1682969503과 종료 시간1682979503을 사용하여 성능 분석 보고서를 생성합니다.aws pi create-performance-analysis-report \ --service-typeRDS\ --identifierdb-abcdefg123456789\ --start-time1682969503\ --end-time1682979503출력:
{ "AnalysisReportId": "report-0234d3ed98e28fb17" }성능 분석 보고서 생성에 대한 자세한 내용은 Amazon RDS 사용 설명서의 성능 개선 도우미에서 성능 분석 보고서 생성 및 Amazon Aurora 사용 설명서의 성능 개선 도우미에서 성능 분석 보고서 생성을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreatePerformanceAnalysisReport
를 참조하세요.
-
다음 코드 예시는 delete-performance-analysis-report의 사용 방법을 보여 줍니다.
- AWS CLI
-
성능 분석 보고서를 삭제하는 방법
다음
delete-performance-analysis-report예시에서는 보고서 ID가report-0d99cc91c4422ee61인 성능 분석 보고서를 삭제합니다.aws pi delete-performance-analysis-report \ --service-typeRDS\ --identifierdb-abcdefg123456789\ --analysis-report-idreport-0d99cc91c4422ee61이 명령은 출력을 생성하지 않습니다.
성능 분석 보고서 삭제에 대한 자세한 내용은 Amazon RDS 사용 설명서의 성능 개선 도우미에서 성능 분석 보고서 삭제 및 Amazon Aurora 사용 설명서의 성능 개선 도우미에서 성능 분석 보고서 삭제를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeletePerformanceAnalysisReport
를 참조하세요.
-
다음 코드 예시는 describe-dimension-keys의 사용 방법을 보여 줍니다.
- AWS CLI
-
예시 1: 차원 키를 설명하는 방법
이 예시에서는 모든 대기 이벤트의 이름을 요청합니다. 데이터는 이벤트 이름 및 지정된 기간 동안의 해당 이벤트의 집계 값으로 요약됩니다.
명령:
aws pi describe-dimension-keys --service-typeRDS--identifierdb-LKCGOBK26374TPTDFXOIWVCPPM--start-time1527026400--end-time1527080400--metricdb.load.avg--group-by '{"Group":"db.wait_event"}'출력:
{ "AlignedEndTime": 1.5270804E9, "AlignedStartTime": 1.5270264E9, "Keys": [ { "Dimensions": {"db.wait_event.name": "wait/synch/mutex/innodb/aurora_lock_thread_slot_futex"}, "Total": 0.05906906851195666 }, { "Dimensions": {"db.wait_event.name": "wait/io/aurora_redo_log_flush"}, "Total": 0.015824722186149193 }, { "Dimensions": {"db.wait_event.name": "CPU"}, "Total": 0.008014396230265477 }, { "Dimensions": {"db.wait_event.name": "wait/io/aurora_respond_to_client"}, "Total": 0.0036361612526204477 }, { "Dimensions": {"db.wait_event.name": "wait/io/table/sql/handler"}, "Total": 0.0019108398419382965 }, { "Dimensions": {"db.wait_event.name": "wait/synch/cond/mysys/my_thread_var::suspend"}, "Total": 8.533847837782684E-4 }, { "Dimensions": {"db.wait_event.name": "wait/io/file/csv/data"}, "Total": 6.864181956477376E-4 }, { "Dimensions": {"db.wait_event.name": "Unknown"}, "Total": 3.895887056379051E-4 }, { "Dimensions": {"db.wait_event.name": "wait/synch/mutex/sql/FILE_AS_TABLE::LOCK_shim_lists"}, "Total": 3.710368625122906E-5 }, { "Dimensions": {"db.wait_event.name": "wait/lock/table/sql/handler"}, "Total": 0 } ] }예시 2: DB 로드에 가장 큰 영향을 미치는 명령문의 SQL ID를 찾는 방법
다음
describe-dimension-keys에서는 DB 로드에 가장 큰 영향을 미친 10개 명령문의 SQL 문과 SQL ID를 요청합니다.aws pi describe-dimension-keys \ --service-typeRDS\ --identifierdb-abcdefg123456789\ --start-time2023-05-01T00:00:00Z\ --end-time2023-05-01T01:00:00Z\ --metricdb.load.avg\ --group-by '{"Group": "db.sql", "Dimensions": ["db.sql.id", "db.sql.statement"],"Limit": 10}'출력:
{ "AlignedEndTime": 1.5270804E9, "AlignedStartTime": 1.5270264E9, "Identifier": "db-abcdefg123456789", "MetricList": [ { "Keys": [ { "Dimensions": {"db.sql.id": "AKIAIOSFODNN7EXAMPLE", "db.sql.statement": "SELECT * FROM customers WHERE customer_id = 123"}, "Total": 25.5,"Partitions": [12.3, 13.2] } ] } ] }Performance Insights의 차원에 대한 자세한 내용은 Amazon RDS 사용 설명서의 데이터베이스 로드 및 Amazon Aurora 사용 설명서의 데이터베이스 로드를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeDimensionKeys
를 참조하세요.
-
다음 코드 예시는 get-dimension-key-details의 사용 방법을 보여 줍니다.
- AWS CLI
-
DB 인스턴스의 지정된 차원 그룹에 대한 세부 정보를 가져오는 방법
다음
get-dimension-key-details예시에서는 DB 인스턴스db-10BCD2EFGHIJ3KL4M5NO6PQRS5에 대한 SQL 문의 전체 텍스트를 검색합니다.--group은db.sql이고--group-identifier는db.sql.id입니다. 이 예시에서example-sql-id는get-resource-metrics또는describe-dimension-keys작업을 사용하여 검색된 SQL ID를 나타냅니다. 이 예제에서는 차원 세부 정보를 사용할 수 있습니다. 따라서 성능 개선 도우미는 잘리지 않은 SQL 문의 전체 텍스트를 검색합니다.aws pi get-dimension-key-details \ --service-typeRDS\ --identifierdb-10BCD2EFGHIJ3KL4M5NO6PQRS5\ --groupdb.sql\ --group-identifierexample-sql-id\ --requested-dimensionsstatement출력:
{ "Dimensions":[ { "Value": "SELECT e.last_name, d.department_name FROM employees e, departments d WHERE e.department_id=d.department_id", "Dimension": "db.sql.statement", "Status": "AVAILABLE" }, ... ] }Performance Insights의 차원에 대한 자세한 내용은 Amazon RDS 사용 설명서의 데이터베이스 로드 및 Amazon Aurora 사용 설명서의 데이터베이스 로드를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetDimensionKeyDetails
를 참조하세요.
-
다음 코드 예시는 get-performance-analysis-report의 사용 방법을 보여 줍니다.
- AWS CLI
-
성능 분석 보고서를 가져오는 방법
다음
get-performance-analysis-report예시에서는 보고서 ID가report-0d99cc91c4422ee61인 데이터베이스db-abcdefg123456789에 대한 성능 분석 보고서를 가져옵니다. 응답은 보고서 상태, ID, 시간 세부 정보, 인사이트를 제공합니다.aws pi get-performance-analysis-report \ --service-typeRDS\ --identifierdb-abcdefg123456789\ --analysis-report-idreport-0d99cc91c4422ee61출력:
{ "AnalysisReport": { "Status": "Succeeded", "ServiceType": "RDS", "Identifier": "db-abcdefg123456789", "StartTime": 1680583486.584, "AnalysisReportId": "report-0d99cc91c4422ee61", "EndTime": 1680587086.584, "CreateTime": 1680587087.139, "Insights": [ ... (Condensed for space) ] } }성능 분석 보고서에 대한 자세한 내용은 Amazon RDS 사용 설명서의 일정 기간 동안의 데이터베이스 성능 분석 및 Amazon Aurora 사용 설명서의 일정 기간 동안의 데이터베이스 성능 분석을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetPerformanceAnalysisReport
를 참조하세요.
-
다음 코드 예시는 get-resource-metadata의 사용 방법을 보여 줍니다.
- AWS CLI
-
데이터베이스의 리소스 메타데이터를 가져오는 방법
다음
get-resource-metadata예시에서는 데이터베이스db-abcdefg123456789에 대한 리소스 메타데이터를 가져옵니다. 이 응답은 SQL 다이제스트 통계가 활성화되었음을 보여줍니다.aws pi get-resource-metadata \ --service-typeRDS\ --identifierdb-abcdefg123456789출력:
{ "Identifier": "db-abcdefg123456789", "Features":{ "SQL_DIGEST_STATISTICS":{ "Status": "ENABLED" } } }Performance Insights의 SQL 통계에 대한 자세한 내용은 Amazon RDS 사용 설명서의 성능 개선 도우미에 대한 SQL 통계 및 Amazon Aurora 사용 설명서의 성능 개선 도우미에 대한 SQL 통계를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetResourceMetadata
를 참조하세요.
-
다음 코드 예시는 get-resource-metrics의 사용 방법을 보여 줍니다.
- AWS CLI
-
리소스 지표 가져오기
이 예시에서는 db.wait_event 차원 그룹과 해당 그룹 내의 db.wait_event.name 차원에 대한 데이터 포인트를 요청합니다. 응답에서 관련 데이터 포인트는 요청된 차원(db.wait_event.name)별로 그룹화됩니다.
명령:
aws pi get-resource-metrics --service-typeRDS--identifierdb-LKCGOBK26374TPTDFXOIWVCPPM--start-time1527026400--end-time1527080400--period-in-seconds300--metricdb.load.avg--metric-queriesfile://metric-queries.json--metric-queries의 인수는metric-queries.jsonJSON 파일에 저장됩니다. 해당 파일의 내용은 다음과 같습니다.[ { "Metric": "db.load.avg", "GroupBy": { "Group":"db.wait_event" } } ]출력:
{ "AlignedEndTime": 1.5270804E9, "AlignedStartTime": 1.5270264E9, "Identifier": "db-LKCGOBK26374TPTDFXOIWVCPPM", "MetricList": [ { "Key": { "Metric": "db.load.avg" }, "DataPoints": [ { "Timestamp": 1527026700.0, "Value": 1.3533333333333333 }, { "Timestamp": 1527027000.0, "Value": 0.88 }, <...remaining output omitted...> ] }, { "Key": { "Metric": "db.load.avg", "Dimensions": { "db.wait_event.name": "wait/synch/mutex/innodb/aurora_lock_thread_slot_futex" } }, "DataPoints": [ { "Timestamp": 1527026700.0, "Value": 0.8566666666666667 }, { "Timestamp": 1527027000.0, "Value": 0.8633333333333333 }, <...remaining output omitted...> ], }, <...remaining output omitted...> ] }-
API 세부 정보는 AWS CLI 명령 참조의 GetResourceMetrics
를 참조하세요.
-
다음 코드 예시는 list-available-resource-dimensions의 사용 방법을 보여 줍니다.
- AWS CLI
-
DB 인스턴스에서 지표 유형에 대해 쿼리할 수 있는 차원을 나열하는 방법
다음
list-available-resource-dimensions예시에서는 데이터베이스db-abcdefg123456789에 대해 쿼리할 수 있는db.load지표를 나열합니다.aws pi list-available-resource-dimensions \ --service-typeRDS\ --identifierdb-abcdefg123456789\ --metricsdb.load출력:
{ "MetricDimensions": [ { "Metric": "db.load", "Groups": [ { "Group": "db.user", "Dimensions": [ { "Identifier": "db.user.id" }, { "Identifier": "db.user.name" } ] }, { "Group": "db.sql_tokenized", "Dimensions": [ { "Identifier": "db.sql_tokenized.id" }, { "Identifier": "db.sql_tokenized.db_id" }, { "Identifier": "db.sql_tokenized.statement" } ] }, ... ] } ] }Performance Insights의 차원에 대한 자세한 내용은 Amazon RDS 사용 설명서의 데이터베이스 로드 및 Amazon Aurora 사용 설명서의 데이터베이스 로드를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListAvailableResourceDimensions
를 참조하세요.
-
다음 코드 예시는 list-available-resource-metrics의 사용 방법을 보여 줍니다.
- AWS CLI
-
DB 인스턴스에서 지표 유형에 대해 쿼리할 수 있는 지표를 나열하는 방법
다음
list-available-resource-metrics예시에서는 데이터베이스db-abcdefg123456789에 대해 쿼리할 수 있는db.load지표를 나열합니다.aws pi list-available-resource-metrics \ --service-typeRDS\ --identifierdb-abcdefg123456789\ --metric-types"os""db"출력:
{ "Metrics": [ { "Description": "The number of virtual CPUs for the DB instance", "Metric": "os.general.numVCPUs", "Unit": "vCPUs" }, ......, { "Description": "Time spent reading data file blocks by backends in this instance", "Metric": "db.IO.read_latency", "Unit": "Milliseconds per block" }, ...... ] }Performance Insights의 지표에 대한 자세한 내용은 Amazon RDS 사용 설명서의 데이터베이스 로드 및 Amazon Aurora 사용 설명서의 데이터베이스 로드를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListAvailableResourceMetrics
를 참조하세요.
-
다음 코드 예시는 list-performance-analysis-reports의 사용 방법을 보여 줍니다.
- AWS CLI
-
데이터베이스에 대한 성능 분석 보고서를 나열하는 방법
다음
list-performance-analysis-reports예시에서는 데이터베이스db-abcdefg123456789에 대한 성능 분석 보고서를 나열합니다. 응답에는 보고서 ID, 상태 및 기간 세부 정보와 함께 모든 보고서가 나열됩니다.aws pi list-performance-analysis-reports \ --service-typeRDS\ --identifierdb-abcdefg123456789출력:
{ "AnalysisReports": [ { "Status": "Succeeded", "EndTime": 1680587086.584, "CreateTime": 1680587087.139, "StartTime": 1680583486.584, "AnalysisReportId": "report-0d99cc91c4422ee61" }, { "Status": "Succeeded", "EndTime": 1681491137.914, "CreateTime": 1681491145.973, "StartTime": 1681487537.914, "AnalysisReportId": "report-002633115cc002233" }, { "Status": "Succeeded", "EndTime": 1681493499.849, "CreateTime": 1681493507.762, "StartTime": 1681489899.849, "AnalysisReportId": "report-043b1e006b47246f9" }, { "Status": "InProgress", "EndTime": 1682979503.0, "CreateTime": 1682979618.994, "StartTime": 1682969503.0, "AnalysisReportId": "report-01ad15f9b88bcbd56" } ] }성능 분석 보고서에 대한 자세한 내용은 Amazon RDS 사용 설명서의 일정 기간 동안의 데이터베이스 성능 분석 및 Amazon Aurora 사용 설명서의 일정 기간 동안의 데이터베이스 성능 분석을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListPerformanceAnalysisReports
를 참조하세요.
-
다음 코드 예시는 list-tags-for-resource의 사용 방법을 보여 줍니다.
- AWS CLI
-
성능 분석 보고서의 태그를 나열하는 방법
다음
list-tags-for-resource예시에서는 보고서 ID가report-0d99cc91c4422ee61인 성능 분석 보고서의 태그를 나열합니다.aws pi list-tags-for-resource \ --service-typeRDS\ --resource-arnarn:aws:pi:us-west-2:123456789012:perf-reports/RDS/db-abcdefg123456789/report-0d99cc91c4422ee61출력:
{ "Tags": [ { "Value": "test-tag", "Key": "name" } ] }성능 분석 보고서 태그 지정에 대한 자세한 내용은 Amazon RDS 사용 설명서의 성능 개선 도우미에서 성능 분석 보고서에 태그 추가 및 Amazon Aurora 사용 설명서의 성능 개선 도우미에서 성능 분석 보고서에 태그 추가를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListTagsForResource
를 참조하세요.
-
다음 코드 예시는 tag-resource의 사용 방법을 보여 줍니다.
- AWS CLI
-
성능 분석 보고서에 태그를 추가하는 방법
다음
tag-resource예시에서는 태그 값이test-tag인 태그 키name을 보고서 ID가report-0d99cc91c4422ee61인 성능 분석 보고서에 추가합니다.aws pi tag-resource \ --service-typeRDS\ --resource-arnarn:aws:pi:us-west-2:123456789012:perf-reports/RDS/db-abcdefg123456789/report-0d99cc91c4422ee61\ --tagsKey=name,Value=test-tag이 명령은 출력을 생성하지 않습니다.
성능 분석 보고서 태그 지정에 대한 자세한 내용은 Amazon RDS 사용 설명서의 성능 개선 도우미에서 성능 분석 보고서에 태그 추가 및 Amazon Aurora 사용 설명서의 성능 개선 도우미에서 성능 분석 보고서에 태그 추가를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 TagResource
를 참조하세요.
-
다음 코드 예시는 untag-resource의 사용 방법을 보여 줍니다.
- AWS CLI
-
성능 분석 보고서의 태그를 삭제하는 방법
다음
untag-resource예시에서는 보고서 ID가report-0d99cc91c4422ee61인 성능 분석 보고서의 태그name을 삭제합니다.aws pi untag-resource \ --service-typeRDS\ --resource-arnarn:aws:pi:us-west-2:123456789012:perf-reports/RDS/db-abcdefg123456789/report-0d99cc91c4422ee61\ --tag-keysname이 명령은 출력을 생성하지 않습니다.
성능 분석 보고서 태그 지정에 대한 자세한 내용은 Amazon RDS 사용 설명서의 성능 개선 도우미에서 성능 분석 보고서에 태그 추가 및 Amazon Aurora 사용 설명서의 성능 개선 도우미에서 성능 분석 보고서에 태그 추가를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UntagResource
를 참조하세요.
-