0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS App Runner が AWS Secrets Manager と AWS Systems Manager をサポート

Posted at

概要

App Runner 環境変数のソースとして AWS Secrets Manager と AWS SSM Parameter Store を指定することが出来るようになったよ。

やってみた

下記のブログを参考に動作を確認してみました。

サンプルコードのクローン

git clone https://github.com/aws-samples/apprunner-hotel-app

必要なリソースのデプロイ

先程クローンしてきたファイルの中にある infra.yaml を使って CloudFormation スタックを作成してください。

CloudFormation の [出力] タブで、
DBSecret (Secrets Manager に保存)
HotelName (SSM Parameter Store に保存)
を控えておきましょう。(後で使う)
infra.yaml の以下が該当する箇所です。

Outputs:
  DBSecret:
    Description: AWS Secrets Manager secret containing DB credentials
    Value: !Ref AuroraDBSecret
  HotelName:
    Description: AWS Paramter Store value containing Hotel's name
    Value: !Sub arn:${AWS::Partition}:ssm:${AWS::Region}:${AWS::AccountId}:parameter/${HotelNameParam}

DB のシークレット情報を AWS Secrets Manager に保存します。
Web アプリケーションは、構成パラメーターを AWS SSM Parameter Store に保存します。

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

ソースおよびデプロイ

「ソース」では、次の通りご自分の GitHub の接続先を指定します。「デプロイ設定」では今回、手動で実施していきます。
スクリーンショット 2023-02-10 16.22.02.png

構築を設定

ビルドコマンドと起動コマンドを設定などを次のように設定していきます。
スクリーンショット 2023-02-10 16.29.17.png

サービスを設定

[サービス設定] セクションで環境変数を設定します。

ここが今回の本題です。

Source : Secrets Manager
Environment variable name : MYSQL_SECRET
Environment variable value : CloudFromation で出力された DBSecret の 値

→ 環境変数名は、アプリケーションのソース コードで定義されており、rds.js で取得されます。

Source : Secrets Manager
Environment variable name : HOTEL_NAME
Environment variable value : CloudFromation で出力された HotelName の 値

→ 環境変数名は、アプリケーションのソース コードで定義されており、config.js で取得されます。

スクリーンショット 2023-02-10 16.37.58.png

[セキュリティ] セクションで、ドロップダウンから AppRunnerHotelAppRole を選択します。
スクリーンショット 2023-02-10 16.45.05.png

[ネットワーキング] セクションで、Custom VPC を選択し、CloudFormation でデプロイ済の AppRunnerHotelApp-RDS-Connector を選択します。

※カスタムVPCの詳細については、下記が参考になると思います。 

スクリーンショット 2023-02-10 16.48.22.png

[可観測性] セクションでは、AWS X-Ray を有効にしておきます。
スクリーンショット 2023-02-10 16.49.27.png

動作確認

App Runner > サービス > apprunner-demo から、デフォルトドメインにアクセスし、/params パスに移動します。
Web アプリケーションが環境変数から読み取った構成パラメーターとシークレット情報が一覧表示されるはず です。
スクリーンショット 2023-02-10 17.53.33.png

ついでに、パラメータを変更し、動的に追従するか確認してみましょう。

CloudFormation でパラメータを AWS App Runner Hotel2 に変更します。
スクリーンショット 2023-02-10 18.19.09.png

App Runner > サービス > apprunner-demo で「デプロイ」します。
スクリーンショット 2023-02-10 18.22.26.png

動的に変更されていることが確認できました。
スクリーンショット 2023-02-10 18.32.31.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?