

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

# AWS SDK for Java 1.x 클라이언트를 사용하여 애플리케이션 찾기
<a name="migration-find-apps-using-v1"></a>

로 마이그레이션하기 전에 환경에서 SDK for Java 1.x 클라이언트를 사용하는 애플리케이션을 식별 AWS SDK for Java 2.x해야 합니다. CloudTrail 로그를 사용하여 SDK 사용량을 추적하거나, 애플리케이션 로그에서 사용 중단 경고를 검색하거나, 소스 코드 및 빌드 구성을 검사하거나, 배포 가능한 Java 아티팩트를 검사할 수 있습니다. 환경에서 사용 가능한 메서드를 사용합니다.

## CloudTrail Lake를 사용하여 1.x 클라이언트가 있는 애플리케이션 찾기
<a name="migration-find-v1-apps-with-cloudtrail"></a>

AWS CloudTrail Lake를 사용하면 CloudTrail에서 기록한 이벤트를 쿼리할 수 있습니다. 다음 단계에 따라 애플리케이션에서 사용하는 SDK 버전을 식별하는 데이터 레이크를 만듭니다.

1. CloudTrail 데이터 레이크를 만듭니다. 이벤트 데이터 스토어를 만들려면 [사용 설명서](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store.html)를 참조하세요.

1. 데이터 스토어를 만든 후 레코드 콘텐츠를 검사합니다. 레코드 본문에는 요청된 작업, 타이밍 및 위치를 결정하는 필드가 포함되어 있습니다. 자세한 내용은 [CloudTrail 레코드 콘텐츠에 대한 사용 설명서](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html)를 참조하세요.

1. 데이터에 대해 쿼리를 실행합니다. [사용 설명서에 따라 쿼리하고 쿼리 결과를 저장](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-run-query.html)합니다.

각 레코드의 *userAgent* 필드에는 요청된 SDK 버전이 포함되어 있습니다. 이 필드를 사용하여 SDK for Java 1.x를 사용하는 애플리케이션을 식별합니다.

다음 샘플 쿼리는 EventDatastoreID에 대해 2025년 6월 17일부터 SDK for Java 1.x로 만든 사용자 애플리케이션 및 타사 도구의 모든 요청을 찾습니다. `sample-Data-Store-Id` 

```
select userIdentity, eventSource, awsRegion,
    eventName, eventType, eventTime, userAgent,
    requestParameters, sourceIPAddress
 from sample-Data-Store-Id
where eventTime > '2025-06-17 00:00:00'
and userAgent like '%aws-sdk-java/1.%'
and userAgent not like '%aws-internal/%'
order by eventTime desc
```

쿼리 결과의 이벤트 콘텐츠 예제는 다음과 같습니다.

```
{
    "userIdentity": "{
         "type": "IAMUser",
         "principalId": "AIDAJ45Q7YFFAREXAMPLE",
         "arn": "arn:aws:iam::123456789012:user/Alice",
         "accountId": "123456789012",
         "accessKeyId": "",
         "userName": "Alice"
    }",
    "eventSource": "dynamodb.amazonaws.com",
    "awsRegion": "us-west-2",
    "eventName": "ListTables",
    "eventType": "AwsApiCall",
    "eventTime": "2025-07-01 02:23:52.000",
    "userAgent": "aws-sdk-java/1.12.746 Linux/5.10.240 OpenJDK/11.0.25+9-LTS ...",
    "requestParameters": "",
    "sourceIPAddress": "12.345.6.78"
}
```

이 정보를 사용하여 요청이 이루어진 때와 위치를 확인할 수 있습니다.

이 예제에서 DynamoDB `ListTables` 요청은 Alice라는 이름의 IAM 사용자 자격 증명을 사용하여 IP 주소(`12.345.6.78`)에서 `2025-07-01 02:23:52 (UTC)`에 생성됐습니다. *userAgent* 필드의 값은 요청이 JDK 11`1.12.746`이 설치된 Linux 시스템의 AWS SDK for Java 버전을 사용하여 이루어졌음을 보여줍니다.

 AWS CloudTrail 이벤트 레코드의 필드에 대한 설명은 [관리, 데이터 및 네트워크 활동 이벤트에 대한 CloudTrail 레코드 콘텐츠를 ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html)참조하세요.

계정에서 CloudTrail이 활성화되지 않은 경우 조직의 AWS 계정 관리자에게 문의하여 활성화하거나 다음 섹션에 설명된 대체 방법 중 하나를 사용합니다.

CloudTrail Lake는 수집된 데이터와 쿼리당 스캔된 데이터에 대해 요금을 부과합니다. 비용을 최소화하려면 쿼리를 특정 시간 범위 및 리전으로 필터링합니다. 현재 요금은 [AWS CloudTrail 요금](https://aws.amazon.com/cloudtrail/pricing/)을 참조하십시오.

## SDK 사용 중단에 대한 애플리케이션 경고 수준 로그 검색
<a name="migration-find-v1-apps-log-warning"></a>

버전 1.12.767(2024년 7월 30일 릴리스됨)부터 AWS SDK for Java 1.x는 애플리케이션 시작 시 사용 중단 경고를 내보냅니다. 애플리케이션 로그에서이 경고를 검색하여 SDK for Java 1.x를 사용하는 애플리케이션과 호스트를 식별할 수 있습니다.

경고의 정확한 표현은 SDK 버전에 따라 다릅니다.
+ 버전 1.12.767\$11.12.796:

  `WARNING: The AWS SDK for Java 1.x entered maintenance mode starting July 31, 2024 and will reach end of support on December 31, 2025...`
+ 버전 1.12.797 이상:

  `WARNING: The AWS SDK for Java 1.x reached end of support on December 31, 2025...`

후행은 경고 메시지가 추가 텍스트로 계속됨을 `...` 나타냅니다. 공통 접두사를 검색`The AWS SDK for Java 1.x`하여 경고 버전을 찾을 수 있습니다.

다음 예제에서는를 사용하여이 경고를 검색하는 방법을 보여줍니다`grep`.

```
grep -r "The AWS SDK for Java 1.x" /path/to/your/application/logs/
```

경고가 발견되면 `grep` 명령은 일치하는 로그 줄을 인쇄합니다. 경고가 없으면 애플리케이션이 Java 1.x용 SDK를 사용하지 않거나 1.12.767 이전 버전을 사용합니다. 이 경우이 문서에 설명된 다른 방법 중 하나를 사용합니다.

## 소스 코드 및 종속성 검색
<a name="migration-find-v1-apps-source-code"></a>

코드베이스를 검색하고 구성 파일을 빌드하여 AWS SDK for Java 1.x에 대한 참조를 찾을 수 있습니다. 키 식별자는 모든 SDK for Java 1.x 아티팩트에서 사용하는 `com.amazonaws` 그룹 ID입니다.

다음 예제에서는를 사용하여 일반적인 Java 프로젝트 파일에서 `com.amazonaws` 참조를 검색`grep`하는 방법을 보여줍니다.

**예: Java 소스 파일에서 SDK for Java 1.x 가져오기 검색(프로젝트 루트 디렉터리에서 실행)**

```
grep -r "import com.amazonaws" --include="*.java" .
```

출력 예시:

```
src/main/java/com/example/App.java:import com.amazonaws.services.s3.AmazonS3;
```

**참고**  
`com.amazonaws` 패키지는와 같이 SDK for Java 1.x에 속하지 않는 라이브러리에서도 사용됩니다`aws-lambda-java-core`. Java 1.x용 SDK에서 가져오기를 확인하려면 , `pom.xml` `build.gradle`또는 종속성 관리 구성의 해당 아티팩트 ID가 로 시작하는지 확인합니다`aws-java-sdk-`.

**예: SDK for Java 1.x 종속성을 위한 Maven `pom.xml` 파일 검색(프로젝트 루트 디렉터리에서 실행)**

```
grep -r "com.amazonaws" --include="pom.xml" .
```

출력 예시:

```
pom.xml:    <groupId>com.amazonaws</groupId>
```

**예: SDK for Java 1.x 종속성을 위한 Gradle 빌드 파일 검색(프로젝트 루트 디렉터리에서 실행)**

```
grep -r "com.amazonaws:aws-java-sdk" --include="*.gradle" .
```

출력 예시:

```
build.gradle:    implementation 'com.amazonaws:aws-java-sdk-s3:1.12.xxx'
```

위의 `grep` 명령은 소스 및 빌드 파일에서 직접 선언된 Java 1.x용 SDK 참조를 식별합니다. 하지만 애플리케이션 자체가 SDK에 의존하는 타사 라이브러리를 통해 Java 1.x용 SDK에 전이적으로 의존할 수도 있습니다. 빌드 도구의 종속성 트리를 사용하여 Java 1.x용 직접 및 전이 SDK 종속성을 모두 찾을 수 있습니다. 빌드 시스템과 일치하는 예제를 선택합니다.

**예: Maven을 사용하여 Java 1.x용 전이적 SDK 종속성을 모두 찾습니다(프로젝트 루트 디렉터리에서 실행).**

```
mvn dependency:tree -Dincludes=com.amazonaws
```

출력 예시:

```
[INFO] com.example:my-application:jar:1.0-SNAPSHOT
[INFO] +- com.amazonaws:aws-java-sdk-s3:jar:1.12.746:compile
[INFO] |  \- com.amazonaws:aws-java-sdk-core:jar:1.12.746:compile
[INFO] \- some.thirdparty:library:jar:2.3.1:compile
[INFO]    \- com.amazonaws:aws-java-sdk-dynamodb:jar:1.12.600:compile
```

`-Dincludes=com.amazonaws` 플래그는 트리를 필터링하여 SDK for Java 1.x 아티팩트만 표시합니다. 이 예제에서 `aws-java-sdk-s3`는 직접 종속성이지만에서 가져오는 전이적 종속성`aws-java-sdk-dynamodb`입니다`some.thirdparty:library`.

**예: Gradle을 사용하여 Java 1.x용 전이적 SDK 종속성을 모두 찾습니다(프로젝트 루트 디렉터리에서 실행).**

```
gradle dependencies --configuration runtimeClasspath | grep "com.amazonaws"
```

출력 예시:

```
+--- com.amazonaws:aws-java-sdk-s3:1.12.746
|    \--- com.amazonaws:aws-java-sdk-core:1.12.746
\--- com.amazonaws:aws-java-sdk-dynamodb:1.12.600
```

Gradle에는 Maven의와 동일한 기본 제공 종속성 필터가 `-Dincludes`없으므로 파이프스루가 가장 간단한 접근 방식`grep`입니다.

## 배포 가능한 Java 아티팩트 검사
<a name="migration-find-v1-apps-inspect-artifacts"></a>

배포 가능한 Java 아티팩트(JARs, WARs 또는 EARs)를 검사하여 애플리케이션과 함께 AWS SDK for Java 1.x가 패키징되었는지 확인할 수 있습니다. Java 아카이브 파일은 ZIP 형식 파일입니다. SDK for Java 1.x가 있는지 확인하려면 아카이브 `com/amazonaws/sdk/versionInfo.properties` 내에서 파일을 찾습니다. 이 파일은 `aws-java-sdk-core` 모듈에 포함되어 있으며 SDK 버전 번호를 포함합니다.

### `jar` 명령을 사용한 빠른 확인
<a name="migration-find-v1-apps-jar-command"></a>

모든 종속성 클래스가 최상위 수준에서 병합되는 uber-jar의 경우 아카이브 콘텐츠를 나열하고 버전 파일을 검색합니다.

다음 예제에서를 애플리케이션의 JAR 파일 경로`myapp.jar`로 바꿉니다.

```
jar -tf myapp.jar | grep 'versionInfo.properties'
```

SDK가 있는 경우 출력은 다음과 같습니다.

```
com/amazonaws/sdk/versionInfo.properties
```

환경에서 `jar` 명령을 사용할 수 없는 경우(예: JRE 전용 또는 최소 컨테이너 이미지) `unzip -l` 대신를 사용할 수 있습니다.

```
unzip -l myapp.jar | grep 'versionInfo.properties'
```

버전을 인쇄하려면:

```
unzip -p myapp.jar com/amazonaws/sdk/versionInfo.properties
```

출력 예시:

```
platform=java
version=1.12.xxx
```

**참고**  
위의 명령은 uber-jars에서 최상위 항목만 검색합니다. SDK 클래스는 얇은 JARs(종속성이 외부인 경우) 또는 중첩된 JARs(예: `lib/` 또는 아래의 WARs, EARs 또는 Lambda 패키지의 클래스) 내에서 찾을 수 없습니다`WEB-INF/lib/`. 씬 JARs 경우 빌드 구성(`pom.xml`, `build.gradle`) 또는 종속성 트리를 대신 확인합니다. 중첩된 JARs 경우 디스크로 추출하지 않고 ZIP 아카이브를 재귀적으로 읽을 수 있는 도구를 사용하여 번들링된 JARs을 검색합니다.