개발을 위한 AWS 자격 증명 및 리전 설정 - Java용 AWS SDK

개발을 위한 AWS 자격 증명 및 리전 설정

지원되는 서비스를 AWS SDK for Java와 연결하려면 AWS 자격 증명을 제공해야 합니다. AWS SDK 및 CLI는 공급자 체인을 사용하여 시스템/사용자 환경 변수 및 로컬 AWS 구성 파일 등 다양한 위치에서 AWS 자격 증명을 찾습니다.

이 주제에서는 AWS SDK for Java를 사용한 로컬 애플리케이션 개발을 위한 AWS 자격 증명 설정에 대한 기본 정보를 제공합니다. EC2 인스턴스 내에서 사용할 자격 증명을 설정해야 하거나 개발용으로 Eclipse IDE를 사용하고 있는 경우에는 다음 주제를 참조하십시오.

AWS 자격 증명 설정

AWS SDK for Java에 사용할 자격 증명은 여러 가지 방법으로 설정할 수 있지만, 권장 방법은 다음과 같습니다.

  • 로컬 시스템의 다음 위치에 있는 AWS 자격 증명 프로필 파일에서 자격 증명을 설정합니다.

    • Linux, macOS, or Unix의 ~/.aws/credentials

    • Windows의 경우 C:\Users\USERNAME\.aws\credentials

    이 파일에는 다음 형식의 행이 포함되어야 합니다.

    [default] aws_access_key_id = your_access_key_id aws_secret_access_key = your_secret_access_key

    your_access_key_idyour_secret_access_key 값을 자신의 고유 AWS 자격 증명 값으로 대체합니다.

  • AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 환경 변수를 설정합니다.

    Linux, macOS, or Unix에서 이러한 변수를 설정하려면 export를 사용합니다.

    export AWS_ACCESS_KEY_ID=your_access_key_id export AWS_SECRET_ACCESS_KEY=your_secret_access_key

    Windows에서 이러한 변수를 설정하려면 set을 사용합니다.

    set AWS_ACCESS_KEY_ID=your_access_key_id set AWS_SECRET_ACCESS_KEY=your_secret_access_key
  • EC2 인스턴스의 경우 IAM 역할을 지정하고 나서 해당 역할에 EC2 인스턴스 액세스 권한을 부여합니다. 이 작업이 이루어지는 과정에 대한 자세한 내용은 Amazon EC2 User Guide for Linux Instances의 Amazon EC2의 IAM 역할 을 참조하십시오.

이러한 방법 중 하나를 사용하여 AWS 자격 증명을 설정하고 나면 기본 자격 증명 공급자 체인을 사용하여 이러한 자격 증명이 AWS SDK for Java에서 자동으로 로드됩니다. Java 애플리케이션에서 AWS 자격 증명으로 작업하는 방법에 대한 자세한 내용은 Working with AWS Credentials 단원을 참조하십시오.

IMDS 자격 증명 갱신

AWS SDK for Java는 자격 증명 만료 시간에 관계없이 백그라운드에서 1분마다 IMDS 자격 증명을 옵트인 갱신합니다. 이렇게 하면 자격 증명을 더 자주 갱신할 수 있으며 그렇지 않은 IMDS가 인식된 AWS 가용성에 영향을 미칠 가능성을 줄일 수 있습니다.

1. // Refresh credentials using a background thread, automatically every minute. This will log an error if IMDS is down during 2. // a refresh, but your service calls will continue using the cached credentials until the credentials are refreshed 3. // again one minute later. 4. 5. InstanceProfileCredentialsProvider credentials = 6. InstanceProfileCredentialsProvider.createAsyncRefreshingProvider(true); 7. 8. AmazonS3Client.builder() 9. .withCredentials(credentials) 10. .build(); 11. 12. // This is new: When you are done with the credentials provider, you must close it to release the background thread. 13. credentials.close();

AWS 리전 설정

Java용 AWS SDK에서 AWS 서비스에 액세스하는 데 사용될 기본 AWS 리전을 설정해야 합니다. 네트워크 성능을 최대화하려면 본인(또는 본인의 고객)과 지리적으로 가까운 리전을 선택해야 합니다. 서비스별 리전 목록은 Amazon Web Services General Reference에서 리전 및 엔드포인트를 참조하십시오.

참고

리전을 선택하지 않으면 기본적으로 us-east-1이 사용됩니다.

자격 증명 설정과 비슷한 기술을 사용하여 가본 AWS 리전을 설정할 수 있습니다.

  • 로컬 시스템의 다음 위치에 있는 AWS 구성 파일에서 AWS 리전을 설정합니다.

    • Linux, macOS, or Unix의 ~/.aws/config

    • Windows의 경우 C:\Users\USERNAME\.aws\config

    이 파일에는 다음 형식의 행이 포함되어야 합니다.

    [default] region = your_aws_region

    your_aws_region을 원하는 AWS 리전(예를 들면 "us-west-2")으로 대체합니다.

  • AWS_REGION 환경 변수를 설정합니다.

    Linux, macOS, or Unix에서는 export를 사용합니다.

    export AWS_REGION=your_aws_region

    Windows에서는 set을 사용합니다.

    set AWS_REGION=your_aws_region

    여기서 your_aws_region은 원하는 AWS 리전 이름입니다.

주제