AWS リージョンとリソースのアイデンティティを理解する

AWSBeginner
オンラインで実践に進む

はじめに

レポート作成チームは二つの場所でアプリケーションを実行しています。設定名が同じでも、それぞれの場所には独自のサービスラベルが必要です。二つの設定を作成して比較し、一方の値を変更して、自分の練習用リソースだけを削除します。

最初に LabEx で AWS を使い始める を完了してください。そこで学んだ Terminal、AWS CLI、アイデンティティ、パラメーター、AWS View の基礎を使います。この実験は独立して始まります。ツールと接続は準備済みで、前の実験のファイル、リソース、認証情報は再利用しません。

Parameter Store は名前付き設定を保存します。作成する /labex/onboarding/service-label は秘密情報ではなく、通常の String です。各リージョンには、この作業とは無関係な /labex/reference/team パラメーターが既にあります。変更せずに残してください。AWS View は CLI で問い合わせるものと同じリソースを表示します。

認定試験との関連

このラボでは、次の試験トピックに関連する実践的な演習を行います。

最初のリージョン別リソースを作成する

このステップでは、東部リージョンにアプリケーション設定を作成し、AWS View に表示されることを確認します。

Terminal をクリックし、準備済みの作業ディレクトリに移動します。

cd /home/labex/project

前の実験では、すべてのリクエストが一つの場所を使いました。チームは世界各地のユーザーに近い場所でアプリケーションを実行する場合があるため、コマンドがどの場所に作用するかを選ぶ必要があります。AWS のリージョン(Region)は、サービスが稼働する地理的な区域です。us-east-1 は US East (N. Virginia)、us-west-2 は US West (Oregon) のコードです。--region オプションは、このリクエストが作用する場所を選びます。最初の設定は us-east-1 に作成します。

一つのアカウントに、同じ名前を持つ独立した二つのリージョン別設定がある

概念図:設定は異なるリージョンに属します。一方を作成しても、もう一方にはコピーされません。

設定を作成します。

aws ssm put-parameter --name /labex/onboarding/service-label --type String --value finance-east --region us-east-1

ssm は Systems Manager を選び、put-parameter は設定を書き込みます。--name はリソース名を指定し、--type String は通常のテキストを意味し、--value はそのテキストを指定します。スラッシュは AWS の名前を整理するもので、ローカルフォルダーを作成するものではありません。

応答には "Version": 1 が含まれます。最初のバージョンを作成できました。保存した設定を読み取ります。

aws ssm get-parameter --name /labex/onboarding/service-label --region us-east-1

Parameter の Name、Value、Version を確認します。名前の末尾は service-label、値は finance-east、バージョンは 1 です。

Terminal の隣の AWS View をクリックします。Terminal → Parameter Store → リージョンのカードの順にたどります。us-east-1 の下で新しいパラメーターを見つけ、CLI の応答と値を比較します。us-west-2 のカードには参照用パラメーターだけがあります。このリソースは一つのリージョンに作成され、もう一方にはコピーされていません。

完了チェックは、東部の設定を読み取ります。参照用パラメーターは変更せずに残してください。

別のリージョンに同じ名前で作成する

このステップでは、二つ目のリージョンに同じ名前のパラメーターを作成し、二つのリソースが独立したままであることを観察します。

公式 Console では、Region メニューで表示する場所を選びます。名前とコードは CLI の --region オプションに対応します。

N. Virginia us-east-1 と Oregon us-west-2 を示す公式 Console の Region メニュー

出典:AWS Console ガイド。

次に、西部のアプリケーション用ラベルを作成します。名前は前と同じですが、--region と値が異なります。

aws ssm put-parameter --name /labex/onboarding/service-label --type String --value finance-west --region us-west-2

応答には再び "Version": 1 が含まれます。これは西部の新しいリソースであり、東部のリソースのバージョン 2 ではありません。

それぞれの保存済みの値を読み取ります。get-parameter は、名前を指定してリソースをサービスに問い合わせます。

aws ssm get-parameter --name /labex/onboarding/service-label --region us-east-1
aws ssm get-parameter --name /labex/onboarding/service-label --region us-west-2

どちらの応答にも、Name、Type、Value、Version、ARN を持つ Parameter オブジェクトが含まれます。値を比較してください。東部は finance-east、西部は finance-west を返します。名前は同じです。ARN はリソースを完全に識別する情報です。今は一方に us-east-1、もう一方に us-west-2 があることに注目してください。残りの部分は次のステップで説明します。AWS View は二つの独立したリージョンのカードを表示します。一つのリージョンにリソースが表示されても、別のリージョンに存在するとは限りません。

同じパラメーター名でも、リージョンごとの値と ARN が異なる

この例では、東部と西部のリソースを一緒に表示しています。アカウント識別子と値は例です。自分の問い合わせで返された実際のフィールドを使ってください。

リソースの識別情報を読み、値だけを変更する

このステップでは、リソースの ARN を読み解き、識別情報や西部の値を変更せずに東部の設定を更新します。

Amazon Resource Name(ARN)はリソースを識別します。AWS View で東部の設定の下にある ARN を見つけてください。このパラメーターでは、次のような形式です。

arn:aws:ssm:us-east-1:ACCOUNT_ID:parameter/labex/onboarding/service-label

ARN はサービス、リージョン、アカウント、リソース名を識別する

このパラメーターの識別に必要な部分だけを読み取ってください。形式を暗記する必要はありません。

今はサービス(ssm)、リージョン(us-east-1)、アカウント ID、パラメーター名を確認します。西部の ARN と比較すると、名前が同じでもリージョンは異なります。準備実験で見た呼び出し元の ARN はユーザーを識別しますが、この ARN は設定リソースを識別します。ARN の形式を暗記する必要はありません。

変更する前に、東部の設定を読み取ります。

aws ssm get-parameter --name /labex/onboarding/service-label --region us-east-1

名前は /labex/onboarding/service-label、値は finance-east です。それぞれ、どの設定を読み取るか、どのデータが保存されているか、という異なる問いに答えます。データの変更だけで、リソースの名前や場所が変わるわけではありません。put-parameter は通常、既存のパラメーターを誤って置き換えることを拒否します。--overwrite を追加すると、値の更新を明示的に許可します。東部だけを更新します。

aws ssm put-parameter --name /labex/onboarding/service-label --type String --value finance-east-reviewed --overwrite --region us-east-1

応答には "Version": 2 が含まれます。両方のリソースを読み取ります。

aws ssm get-parameter --name /labex/onboarding/service-label --region us-east-1
aws ssm get-parameter --name /labex/onboarding/service-label --region us-west-2

東部の値は finance-east-reviewed、Version は 2 になりましたが、ARN は変わっていません。西部は引き続き Version 1 の finance-west を返します。両方の JSON 応答と AWS View でこれらのフィールドを確認してください。この区別は、後で間違いの原因を調べる際に役立ちます。名前が正しくてもリージョンが違えば別のリソースを識別し、値を更新しても同じリソースに属したままである場合があります。

東部の値とバージョンだけが変更された

東部のラベルは更新されて Version 2 になり、西部のラベルは Version 1 のままです。両方の参照用パラメーターも残っています。

オンボーディング用リソースだけを削除する

このステップでは、自分が作成した二つのパラメーターを削除し、参照用のリソース一覧がそのまま残っていることを確認します。

削除には、自分のリソースの名前とリージョンを指定してください。delete-parameter は指定した名前のパラメーターを削除します。呼び出しが成功しても何も表示されない場合があります。出力がないことだけでは、その後に正しいリージョンを問い合わせた証拠にはなりません。

aws ssm delete-parameter --name /labex/onboarding/service-label --region us-east-1
aws ssm delete-parameter --name /labex/onboarding/service-label --region us-west-2

describe-parameters は、選択したリージョンのパラメーターのメタデータを、名前やバージョンを含めて一覧表示します。値は返しません。両方のリージョンに正常に問い合わせます。

aws ssm describe-parameters --region us-east-1
aws ssm describe-parameters --region us-west-2

自分の /labex/onboarding/service-label は両方の一覧からなくなっています。準備済みの /labex/reference/team は引き続き表示されます。両方のリージョンで参照用設定を読み取り、値が変わっていないことを確認します。

aws ssm get-parameter --name /labex/reference/team --region us-east-1
aws ssm get-parameter --name /labex/reference/team --region us-west-2

どちらも platform を返します。AWS View には各リージョンの参照用パラメーターだけが表示されます。参照用リソースは削除しないでください。接続エラーや認証エラーでは削除を証明できません。完了チェックには、正常に完了するサービスへの問い合わせと、参照用データの保持が必要です。

まとめ

二つのリージョンに同じ名前のパラメーターを作成し、異なる値と ARN を読み取り、東部の値だけを変更しました。また、参照用設定を残しながら自分の二つのリソースを削除しました。AWS View によって、CLI の結果とともにサービスの変化を確認できました。次は CLI のクエリを使って、より大きなリソース一覧から必要なリソースを見つけます。