ウェブサイトの設定を管理する

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

はじめに

ウェブサイトは利用できますが、歓迎メッセージはまだ初期値です。AWS Systems Manager Parameter Store にメッセージを保存し、サイトのコードを編集せずに変更して、操作ごとに実際のページを確認します。

サイト、ツール、接続は準備済みです。Get Started with AWS on LabEx で学ぶ Terminal へのコマンド入力と AWS View の操作を理解していることが前提です。各ラボは新しい環境で独立して開始します。個人の AWS アカウントや以前のリソースは必要ありません。

認定試験との関連

認定試験 試験タスク 演習内容
Cloud Practitioner (CLF-C02) Task 3.1 AWS CLI でサービスのリソースを管理し、アプリケーションへの影響を観察します。

ラボの概要

概念図:CLI が挨拶のパラメータを書き込み、サイトはリクエストごとにその値を読み取ります。

サイトに歓迎メッセージを設定する

このステップでは、名前付きの設定値を作成し、サイトがその値を使う様子を確認します。

コマンドは AWS View の下にある Terminal に入力します。上部の AWS View で Open website を選択してください。準備済みの Field Notes ページには最初に Your website is ready と表示され、値の取得元は Default welcome message です。設定変更後に再読み込みできるよう、サイトのページを開いたままにします。

ウェブサイトは、ブラウザからのリクエストに応答するアプリケーションコードです。リソースは AWS サービスが管理する対象です。Systems Manager Parameter Store は、パラメータと呼ばれる名前付きの設定値を管理します。このサイトはリクエストごとに /labex/website/greeting を読み取り、その名前に保存された文字列を歓迎メッセージとして使います。スラッシュは名前を整理するためのもので、ローカルフォルダではありません。

サイトのコードは準備済みです。ここでは設定を作成します。まず作業ディレクトリへ移動します。cd は Terminal の現在のディレクトリを変更するコマンドです。

cd /home/labex/project

通常の文字列を作成します。aws ssm は Systems Manager を選択し、put-parameter は設定を書き込みます。--name は名前、--type String は通常の文字列、--value は保存する内容を指定します。引用符で囲むことで、空白を含むメッセージを一つの引数として渡せます。バックスラッシュは同じコマンドを次の行へ続けます。

aws ssm \
  put-parameter \
  --name /labex/website/greeting \
  --type String \
  --value 'Welcome to Field Notes'

初回作成の応答には "Version": 1 が含まれます。保存した値を読み取ります。get-parameter は名前を指定してリソースを取得します。

aws ssm \
  get-parameter \
  --name /labex/website/greeting

Name、Value、Version を確認してください。値は Welcome to Field Notes です。AWS View には、準備済みの /labex/reference/team と並んで新しいパラメータが表示されます。この参照用の設定は変更しません。

サイトを再読み込みします。見出しは Welcome to Field Notes、取得元は Parameter Store になっています。ページが変わったのは、アプリケーションが保存された値を読み取ったためです。Terminal 内のローカル文字列が変わったからではありません。リソースとサイトは異なる対象で、この読み取りによってつながっています。

挨拶を作成した後の実際のサイト例:保存されたメッセージと、取得元の Parameter Store が表示されています。

作成時に ParameterAlreadyExists が返された場合は、名前を指定してパラメータを読み、値を比較してください。無関係な設定を削除する必要はありません。

サイトのコードを編集せずにメッセージを更新する

このステップでは、既存の設定を変更し、サイトが新しい値を使うことを確認します。

パラメータの名前は変えないため、アプリケーションは引き続き同じ名前を読み取れます。--overwrite は既存パラメータの値を上書きする指定です。挨拶を変更します。

aws ssm \
  put-parameter \
  --name /labex/website/greeting \
  --type String \
  --value 'Hello from the AWS CLI' \
  --overwrite

現在の値を読み取ります。

aws ssm \
  get-parameter \
  --name /labex/website/greeting

Hello from the AWS CLI が表示されます。一度更新した場合、バージョンは通常 2 です。更新を繰り返した場合は、さらに大きくなることがあります。上書きは保存済みの新しいバージョンを作成し、別の名前のリソースを作成するわけではありません。

AWS View には同じ名前と新しい値が表示されます。サイトを再読み込みし、見出しが Hello from the AWS CLI になったことを確認してください。サイトのファイルは編集していません。

上書き後のサイト例:新しいリクエストで更新後の挨拶が表示され、サイトのコードは変更されていません。

このサイトはリクエストごとにパラメータを読み取ります。別のアプリケーションでは、起動時だけ設定を読む場合や、設定をキャッシュする場合があります。パラメータを変更しても、開いているすべてのページが自動的に更新されるわけではありません。ここでは、新しい HTTP リクエストが更新値を利用した証拠になります。

演習用の設定だけを安全に削除する

このステップでは、自分で作成した挨拶パラメータを削除し、設定がない場合のサイトの動作を確認します。

この任意の設定には、サイト側で初期メッセージが準備されています。そのため、演習の最後に挨拶を安全に削除できます。実際のアプリケーションでは、設定が任意か必須かを先に確認します。必須の依存先を削除すると、アプリケーションが停止することがあります。

delete-parameter は名前を指定して一つのリソースを削除します。自分で作成した挨拶だけを削除してください。

aws ssm \
  delete-parameter \
  --name /labex/website/greeting

削除が成功しても、何も出力されないことがあります。リソースのメタデータを一覧表示する describe-parameters で、残っている設定を確認します。

aws ssm \
  describe-parameters

挨拶は一覧からなくなっています。/labex/reference/team は残っています。その値を確認します。

aws ssm \
  get-parameter \
  --name /labex/reference/team

値は引き続き platform です。AWS View には参照用の設定が残り、挨拶は表示されません。サイトを再読み込みすると Your website is ready に戻り、取得元は Default welcome message になります。

ネットワークエラーは削除成功の証拠にはなりません。ここでは、成功したサービスへの問い合わせがリソースの不在を示し、成功したサイトへのリクエストがアプリケーションの継続動作を示します。無関係な設定を維持しながら、作成・読み取り・更新・削除というリソースのライフサイクルを完了しました。

まとめ

Parameter Store の挨拶を作成、取得、更新、削除しました。実際のサイトの応答によって、アプリケーションが保存された値を利用する場合と初期メッセージに戻る場合を確認しました。無関係な設定はすべての操作で維持しました。

次は Region とリソースの識別情報を比較します。名前は便利ですが、複数の環境を管理する際には、場所と完全な識別情報も重要です。

詳しくは Parameter Store によるアプリケーション設定と パラメータの作成・上書きに関する CLI リファレンスを参照してください。