アプリケーションのデプロイ

Cloud9 を使用してワークショップをセットアップし、操作することを強くお勧めします。独自のターミナルを使用できますが、ワークショップのステップは Cloud9 で動作するようにテストされており、Cloud9 を使用しない場合は同等の代替環境を使用することを前提としています。

Cloud9 IAM 権限の設定 (Cloud9 を利用しない場合はスキップしてください)

Cloud9 は通常、IAM 認証情報を動的に管理します。これは現在 aws-iam-authenticator プラグインと互換性がないため無効にし、代わりに IAM ロールを使用します。

  • ワークスペースに戻り、歯車アイコンをクリックするか、新しいタブを起動して Preferences タブを開きます。

  • AWS SETTINGS を選択

  • AWS managed temporary credentials のチェックをはずす

  • Preferences タブを閉じる c9disableiam

  • 一時的な認証情報がまだ配置されていないことを確認するために、既存の認証情報ファイルを削除します。

rm -vf ${HOME}/.aws/credentials

ツールのインストール と コードリポジトリからのクローン

以下の手順で、必要なツール、必要なユーティリティをすべてインストールし、ワークショップに必要なソースコードもダウンロードします。

curl -sSL https://raw.githubusercontent.com/aws-samples/one-observability-demo/main/PetAdoptions/envsetup.sh | bash -s stable

AWS CLI に現在の AWS リージョンをデフォルトとして設定する

export ACCOUNT_ID=$(aws sts get-caller-identity --output text --query Account)
export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region')
echo "export ACCOUNT_ID=${ACCOUNT_ID}" | tee -a ~/.bash_profile
echo "export AWS_REGION=${AWS_REGION}" | tee -a ~/.bash_profile
aws configure set default.region ${AWS_REGION}
aws configure get default.region

IAM ロールの検証 (Cloud9 を利用しない場合はスキップしてください)

Cloud9 を使用していない場合は、Cloud9 の IAM ロール検証結果を無視して、 CDK パッケージのインストール ステップに進みます。

test -n "$AWS_REGION" && echo AWS_REGION is "$AWS_REGION" || echo AWS_REGION is not set

aws sts get-caller-identity --query Arn | grep observabilityworkshop-admin -q && echo "You're good. IAM role IS valid." || echo "IAM role NOT valid. DO NOT PROCEED."

Cloud9 を利用している場合、IAM ロールが正しくない(IAM role NOT valid)ときは、続行しないでください。ページの先頭に戻って、手順を再確認してください。

CDK パッケージのインストール

正常にクローンされたら、次のコマンドを使用して pet_stack フォルダに移動します

cd workshopfiles/one-observability-demo/PetAdoptions/cdk/pet_stack

全ての npm パッケージをインストールします

npm install

Bootstrap CDK

pet_stack フォルダにいない場合は、 cd workshopfiles/one-observability-demo/PetAdoptions/cdk/pet_stack このコマンドを実行します

cdk bootstrap

スタックの Deploy

EKS_ADMIN_ARN=$(../../getrole.sh)

echo "Role ${EKS_ADMIN_ARN} will be part of system:masters group" 

cdk deploy --context admin_role=$EKS_ADMIN_ARN Services --require-approval never

cdk deploy Applications --require-approval never

スタックがデプロイされるまでに数分かかりますので、その間に ☕️

kubeconfig の更新

デプロイが完了したら、次のコマンドを実行して kubeconfig を更新し、EKS クラスターと対話できるようにします。

aws eks update-kubeconfig --name PetSite --region $AWS_REGION                                            

実行後、以下のスクリーンショットのような出力がされます Kubeconfig

アプリを使ってみる (任意)

ターミナルで次のコマンドを実行します。

aws ssm get-parameter --name '/petstore/petsiteurl'  | jq -r .Parameter.Value

結果として返された URL に移動します。以下のように、アプリのホーム画面を見ることができるはずです

トラブルシューティング

ごくまれに、サイトにペットの画像が表示されない動作が発生することがあります。その場合は、 PetSite ホームページの右上隅にある Perform Housekeeping をクリックします。

App Home

以下のように、アプリケーションを操作することができます。

App Home