AWS リージョン 選択 - AWS SDK for Java 1.x

( AWS SDK for Java v1) end-of-support の今後の を発表しましたAWS SDK for Java v2 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

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

AWS リージョン 選択

リージョンを使用すると、特定の地理的地域に物理的に存在する AWS サービスにアクセスできます。これは、冗長性と、ユーザーがアクセスする場所の近くでのデータとアプリケーションの実行を維持するために有効です。

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

特定の AWS のサービス がリージョンで利用可能かどうかを確認するには、使用するリージョンで isServiceSupportedメソッドを使用します。

Region.getRegion(Regions.US_WEST_2) .isServiceSupported(AmazonDynamoDB.ENDPOINT_PREFIX);

指定できるリージョンに関しては、「Regions」クラスのドキュメントを参照して、サービスのエンドポイントプレフィックスを使用してクエリを実行します。各サービスのエンドポイントプレフィックスはサービスインターフェイスで定義されています。例えば、 DynamoDB エンドポイントプレフィックスは AmazonDynamoDB で定義されています。

リージョンを選択する

のバージョン 1.4 以降では AWS SDK for Java、リージョン名を指定でき、SDK は自動的に適切なエンドポイントを選択します。自分でエンドポイントを選択する場合は、「特定のエンドポイントの選択」を参照してください。

リージョンを明示的に設定するには、「Regions」列挙型を使用することをお勧めします。これは、公開されている利用可能なすべてのリージョンを列挙したものです。その列挙型からリージョンを使用してクライアントを作成するには、以下のコードを使用します。

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion(Regions.US_WEST_2) .build();

使用するリージョンが Regions 列挙型にない場合は、リージョンの名前を示す string を使用してリージョンを設定できます。

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion("{region_api_default}") .build();
注記

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

特定のエンドポイントの選択

各 AWS クライアントは、クライアントの作成時に withEndpointConfigurationメソッドを呼び出すことで、リージョン内の特定のエンドポイントを使用するように設定できます。

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

AmazonS3 s3 = AmazonS3ClientBuilder.standard() .withEndpointConfiguration(new EndpointConfiguration( "https://s3.eu-west-1.amazonaws.com", "eu-west-1")) .withCredentials(CREDENTIALS_PROVIDER) .build();

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

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

重要

このセクションは、クライアントコンストラクタを使用して作成された services.clients にクライアントビルダーを使用してアクセスする場合にのみ適用されます。クライアントコンストラクタを使用して環境からリージョンが自動的に決定されず、代わりにデフォルトの SDK リージョン (USEast1) が使用されます。 AWS AWS

Amazon EC2 または Lambda で実行する場合、コードが実行されているのと同じリージョンを使用するようにクライアントを設定することをお勧めします。そうすることによって、コードとそれが実行される環境が分離され、レイテンシーの低減や冗長化のために複数のリージョンにデプロイすることが容易になります。

コードが実行されているリージョンを SDK で自動的に検出するには、クライアントビルダーを使用する必要があります。

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

AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient();

これは、standard に続けて build を使用するのと同じです。

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .build();

withRegion メソッドを使用してリージョンを明示的に設定しない場合は、SDK がリージョンのデフォルトプロバイダーチェーンに問い合わせて、使用するリージョンを決定しようとします。

デフォルトリージョンプロバイダーチェーン

リージョンルックアップ手順は以下のとおりです。

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

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

    注記

    この環境変数は Lambda コンテナによって設定されます。

  3. SDK は、 AWS 共有設定ファイル (通常は にあります~/.aws/config) をチェックします。リージョンプロパティがあると、SDK はこのプロパティを使用します。

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

    • AWS_PROFILE 環境変数または aws.profile システムプロパティを使用すると、SDK によってロードされるプロファイルをカスタマイズできます。

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

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

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