웹 Trusted Advisor 서비스로 사용 - AWS Support

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

웹 Trusted Advisor 서비스로 사용

참고

Trusted Advisor 2024년에는 AWS Trusted Advisor Support API에서 작업을 지원하지 않을 예정입니다. 새 AWS Trusted Advisor API를 사용하여 모범 사례 검사 및 권장 사항에 프로그래밍 방식으로 액세스하세요.

이 AWS Support 서비스를 사용하면 상호 작용하는 AWS Trusted Advisor애플리케이션을 작성할 수 있습니다. 이 항목에서는 검사 목록을 가져와 Trusted Advisor 검사 중 하나를 새로 고친 다음 검사의 세부 결과를 가져오는 방법을 보여 줍니다. 이러한 작업은 Java로 설명되어 있습니다. 다른 언어 지원에 대한 정보는 Amazon Web Services용 도구를 참조하십시오.

사용 가능한 Trusted Advisor 검사 목록 가져오기

다음 Java 코드 스니펫은 모든 Trusted Advisor API 작업을 호출하는 데 사용할 수 있는 AWS Support 클라이언트 인스턴스를 만듭니다. 그런 다음 코드는 DescribeTrustedAdvisorChecksAPI 작업을 호출하여 Trusted Advisor 검사 목록과 해당 CheckId 값을 가져옵니다. 이 정보를 사용하여 사용자가 실행하거나 새로 고치려는 검사를 선택할 수 있게 허용하는 사용자 인터페이스를 구축할 수 있습니다.

private static AWSSupport createClient() { return AWSSupportClientBuilder.defaultClient(); } // Get the List of Available Trusted Advisor Checks public static void getTAChecks() { // Possible language parameters: "en" (English), "ja" (Japanese), "fr" (French), "zh" (Chinese) DescribeTrustedAdvisorChecksRequest request = new DescribeTrustedAdvisorChecksRequest().withLanguage("en"); DescribeTrustedAdvisorChecksResult result = createClient().describeTrustedAdvisorChecks(request); for (TrustedAdvisorCheckDescription description : result.getChecks()) { // Do something with check description. System.out.println(description.getId()); System.out.println(description.getName()); } }

사용 가능한 Trusted Advisor 검사 목록을 새로 고치세요.

다음 Java 코드 스니펫은 데이터를 새로 고치는 Trusted Advisor 데 사용할 수 있는 AWS Support 클라이언트 인스턴스를 만듭니다.

// Refresh a Trusted Advisor Check // Note: Some checks are refreshed automatically, and they cannot be refreshed by using this operation. // Specifying the check ID of a check that is automatically refreshed causes an InvalidParameterValue error. public static void refreshTACheck(final String checkId) { RefreshTrustedAdvisorCheckRequest request = new RefreshTrustedAdvisorCheckRequest().withCheckId(checkId); RefreshTrustedAdvisorCheckResult result = createClient().refreshTrustedAdvisorCheck(request); System.out.println("CheckId: " + result.getStatus().getCheckId()); System.out.println("Milliseconds until refreshable: " + result.getStatus().getMillisUntilNextRefreshable()); System.out.println("Refresh Status: " + result.getStatus().getStatus()); }

상태 변경 Trusted Advisor 여부를 확인하기 위해 검사를 폴링합니다.

최신 상태 데이터를 생성하는 Trusted Advisor 검사 실행 요청을 제출한 후 DescribeTrustedAdvisorCheckRefreshStatusesAPI 작업을 사용하여 검사 실행 진행 상황과 검사에 사용할 새 데이터가 준비되면 이를 요청합니다.

다음 Java 코드 조각은 CheckId 변수에 해당하는 값을 사용하여 다음 단원에서 요청된 검사 상태를 가져옵니다. 또한 코드는 이 Trusted Advisor 서비스를 여러 가지 다른 용도로 사용하는 방법을 보여줍니다.

  1. DescribeTrustedAdvisorCheckRefreshStatusesResult 인스턴스에 포함된 객체를 통과하여 getMillisUntilNextRefreshable을 호출할 수 있습니다. 반환된 값을 사용하여 코드로 점검 항목을 새로 고칠 것인지 여부를 테스트할 수 있습니다.

  2. timeUntilRefreshable이 0이라면 검사 항목의 새로 고침을 요청할 수 있습니다.

  3. 반환된 상태를 사용하여 상태 변경 사항을 계속 폴링할 수 있습니다. 코드 조각은 폴링 간격을 권장하는 값인 10초로 설정합니다. 상태가 enqueued 또는 in_progress인 경우 반복 작업을 반환하며 다른 상태를 요청합니다. 호출이 successful을 반환하면 반복 작업이 종료됩니다.

  4. 마지막으로, 코드는 검사를 통해 생성된 정보를 통과하는 데 사용할 수 있는 DescribeTrustedAdvisorCheckResultResult 데이터 형식의 인스턴스를 반환합니다.

참고: 요청 상태를 폴링하기 전에 단일 새로 고침 요청을 사용하십시오.

// Retrieves TA refresh statuses. Multiple checkId's can be submitted. public static List<TrustedAdvisorCheckRefreshStatus> getTARefreshStatus(final String... checkIds) { DescribeTrustedAdvisorCheckRefreshStatusesRequest request = new DescribeTrustedAdvisorCheckRefreshStatusesRequest().withCheckIds(checkIds); DescribeTrustedAdvisorCheckRefreshStatusesResult result = createClient().describeTrustedAdvisorCheckRefreshStatuses(request); return result.getStatuses(); } // Retrieves a TA check status, and checks to see if it has finished processing. public static boolean isTACheckStatusInTerminalState(final String checkId) { // Since we only submitted one checkId to getTARefreshStatus, just retrieve the only element in the list. TrustedAdvisorCheckRefreshStatus status = getTARefreshStatus(checkId).get(0); // Valid statuses are: // 1. "none", the check has never been refreshed before. // 2. "enqueued", the check is waiting to be processed. // 3. "processing", the check is in the midst of being processed. // 4. "success", the check has succeeded and finished processing - refresh data is available. // 5. "abandoned", the check has failed to process. return status.getStatus().equals("abandoned") || status.getStatus().equals("success"); } // Enqueues a Trusted Advisor check refresh. Periodically polls the check refresh status for completion. public static TrustedAdvisorCheckResult getFreshTACheckResult(final String checkId) throws InterruptedException { refreshTACheck(checkId); while(!isTACheckStatusInTerminalState(checkId)) { Thread.sleep(10000); } return getTACheckResult(checkId); } // Retrieves fresh TA check data whenever possible. // Note: Some checks are refreshed automatically, and they cannot be refreshed by using this operation. This method // is only functional for checks that can be refreshed using the RefreshTrustedAdvisorCheck operation. public static void pollForTACheckResultChanges(final String checkId) throws InterruptedException { String checkResultStatus = null; do { TrustedAdvisorCheckResult result = getFreshTACheckResult(checkId); if (checkResultStatus != null && !checkResultStatus.equals(result.getStatus())) { break; } checkResultStatus = result.getStatus(); // The rule refresh has completed, but due to throttling rules the checks may not be refreshed again // for a short period of time. // Since we only submitted one checkId to getTARefreshStatus, just retrieve the only element in the list. TrustedAdvisorCheckRefreshStatus refreshStatus = getTARefreshStatus(checkId).get(0); Thread.sleep(refreshStatus.getMillisUntilNextRefreshable()); } while(true); // Signal that a TA check has changed check result status here. }

Trusted Advisor 검사 결과 요청

원하는 세부 결과에 대한 검사를 선택한 후 DescribeTrustedAdvisorCheckResult API 작업을 사용하여 요청을 제출합니다.

작은 정보

Trusted Advisor 검사의 이름과 설명은 변경될 수 있습니다. 검사를 고유하게 식별하려면 코드에 검사 ID를 지정하는 것이 좋습니다. DescribeTrustedAdvisorChecksAPI 작업을 사용하여 검사 ID를 가져올 수 있습니다.

다음 Java 코드 조각은 이전의 코드 조각에서 얻은 result 변수가 참조하는 DescribeTrustedAdvisorChecksResult 인스턴스를 사용합니다. 사용자 인터페이스를 통해 대화식으로 검사 항목을 정의하는 대신 해당 조각의 실행 요청을 제출한 후 각 result.getChecks().get(0) 호출에서 인덱스 값 0을 지정하여 실행할 목록의 첫 번째 검사 요청을 제출합니다. 그 다음, 해당 코드는 checkResult라는 DescribeTrustedAdvisorCheckResultResult 인스턴스로 전달되는 DescribeTrustedAdvisorCheckResultRequest 인스턴스를 정의합니다. 이 데이터 유형의 멤버 구조를 사용하여 검사 결과를 볼 수 있습니다.

// Request a Trusted Advisor Check Result public static TrustedAdvisorCheckResult getTACheckResult(final String checkId) { DescribeTrustedAdvisorCheckResultRequest request = new DescribeTrustedAdvisorCheckResultRequest() // Possible language parameters: "en" (English), "ja" (Japanese), "fr" (French), "zh" (Chinese) .withLanguage("en") .withCheckId(checkId); DescribeTrustedAdvisorCheckResultResult requestResult = createClient().describeTrustedAdvisorCheckResult(request); return requestResult.getResult(); }

참고: Trusted Advisor 검사 결과를 요청해도 업데이트된 결과 데이터는 생성되지 않습니다.

Trusted Advisor 수표 세부 정보 보기

다음 Java 코드 스니펫은 이전 섹션에서 반환된 DescribeTrustedAdvisorCheckResultResult 인스턴스를 반복하여 검사에서 플래그가 지정된 리소스 목록을 가져옵니다. Trusted Advisor

// Show ResourceIds for flagged resources. for (TrustedAdvisorResourceDetail flaggedResource : result1.getResult().getFlaggedResources()) { System.out.println( "The resource for this ResourceID has been flagged: " + flaggedResource.getResourceId()); }