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

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

はじめに

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

サイト、ツール、接続は準備済みです。 Terminal で AWS CLI コマンドを入力し、AWS View で結果を確認できることが前提です。初めての場合は、初心者のための AWS 基礎 から学ぶことをお勧めします。 各ラボは新しい環境で独立して開始します。個人の 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 リファレンスを参照してください。