の使用 AWS リージョン - AWS SDK for Java 2.x

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

の使用 AWS リージョン

AWS リージョン を使用すると、サービスクライアント AWS のサービス は、特定の地理的領域に物理的に存在する にアクセスできます。

AWS リージョンを明示的に設定する

リージョンを明示的に設定するには、Region クラスで定義されている定数を使用することをお勧めします。これは、公開されている利用可能なすべてのリージョンを列挙したものです。

そのクラスで列挙されたリージョンが設定されたクライアントを作成するには、クライアントビルダーの region メソッドを使用します。

Ec2Client ec2 = Ec2Client.builder() .region(Region.US_WEST_2) .build();

使用するリージョンが Region クラスの列挙でない場合は、静的な of メソッドを使用して新しいリージョンを作成することができます。このメソッドを使用することで、SDK をアップグレードせずに、新しいリージョンにアクセスすることができます。

Region newRegion = Region.of("us-east-42"); Ec2Client ec2 = Ec2Client.builder() .region(newRegion) .build();
注記

ビルダーを使用してクライアントを構築した後は、そのクライアントはイミュータブルであり、 AWS リージョン を変更することはできません。同じサービス AWS リージョン で複数の を使用する必要がある場合は、リージョンごとに 1 つずつ、複数のクライアントを作成する必要があります。

SDK による環境に基づくリージョンの自動的な決定

コードが Amazon EC2 または で実行されている場合 AWS Lambda、コードが実行されている AWS リージョン のと同じ を使用するようにクライアントを設定することもできます。これにより、実行中の環境からコードが切り離され、アプリケーションを複数の にデプロイしてレイテンシーや冗長性 AWS リージョン を低く抑えることができます。

認証情報/リージョンのデフォルトプロバイダーチェーンを使用して環境からリージョンを決定するには、クライアントビルダーの create メソッドを使用します。

Ec2Client ec2 = Ec2Client.create();

region メソッド AWS リージョン を使用して を明示的に設定しない場合、SDK はデフォルトのリージョンプロバイダーチェーンを参照して、使用するリージョンを決定します。

デフォルトリージョンプロバイダーチェーンを理解する

SDK は次の手順で AWS リージョン を検索します。

  1. ビルダー自体で region を使用して設定されている明示的なリージョンは、その他の設定より優先されます。

  2. AWS_REGION 環境変数が確認されます。設定されている場合は、そのリージョンを使用してクライアントが設定されます。

    注記

    Lambda コンテナはこの環境変数を設定します。

  3. SDK は、 AWS 共有設定ファイルと共有認証情報ファイル (通常は ~/.aws/configと にあります~/.aws/credentials) をチェックします。region プロパティが存在する場合、SDK はそれを使用します。

    • SDK が同じプロファイル (プロファイルを含むdefault) の両方のファイルで regionプロパティを見つけた場合、SDK は共有認証情報ファイル内の 値を使用します。

    • AWS_CONFIG_FILE 環境変数を使用すると、共有設定ファイルの場所をカスタマイズできます。

    • AWS_PROFILE 環境変数または aws.profile システムプロパティを使用して、どのプロファイルが SDK によってロードされるかを指定できます。

  4. SDK は、 Amazon EC2 インスタンスメタデータサービス (IMDS) を使用して、現在実行中 Amazon EC2 のインスタンスのリージョンを特定しようとします。

    • セキュリティを強化するには、SDK が IMDS のバージョン 1 を使用しようとしないようにする必要があります。IAM ロール認証情報を安全に取得する セクションで説明されているのと同じ設定を使用して、バージョン 1 を無効にします。

  5. この時点で SDK によってリージョンがまだ見つかっていない場合は、クライアント作成が失敗し、例外が発生します。

AWS アプリケーションを開発する場合、一般的なアプローチは、共有設定ファイル (認証情報の取得順序 で説明) を使用してローカル開発用のリージョンを設定し、アプリケーションが AWS インフラストラクチャで実行されるときに、デフォルトのリージョンプロバイダーチェーンを使用してリージョンを決定することです。これによって、クライアントの作成が大幅に簡略化され、アプリケーションの性が維持されます。

リージョンでのサービス可用性を確認する

特定の AWS のサービス がリージョンで使用できるかどうかを確認するには、サービスクライアントの serviceMetadataおよび regionメソッドを使用します。

DynamoDbClient.serviceMetadata().regions().forEach(System.out::println);

指定 AWS リージョン できる のリージョンクラスのドキュメントを参照し、サービスのエンドポイントプレフィックスを使用してクエリを実行します。

特定のエンドポイントを選択する

サービスのプレビュー機能を一般公開前にテストする場合など、特定の状況では、リージョン内の特定のエンドポイントを指定する必要がある場合があります。このような状況では、endpointOverride メソッドを呼び出してサービスクライアントを設定できます。

例えば、特定のエンドポイントで欧州 (アイルランド) リージョンを使用するように Amazon EC2 クライアントを設定するには、次のコードを使用します。

Ec2Client ec2 = Ec2Client.builder() .region(Region.EU_WEST_1) .endpointOverride(URI.create("https://ec2.eu-west-1.amazonaws.com")) .build();

リージョンの現在のリストと、すべてのサービスに対応するエンドポイントについては、「リージョンとエンドポイント」を参照してください。 AWS