AWS AppRunnerとは
-
AWS App Runner
はフルマネージド型のコンテナアプリケーションサービスでECRまたはGitHubのソースコードから簡単にデプロイ、実行できるサービスです - 近年アップデートが進み、VPC内のリソースにもアクセスできるようになったりとより実用性が高まっています
- 以前はVPC内のリソースにはアクセスできなかったのでRDSをPublicに配置しなければならなかったりとセキュリティ的に運用するのは難しかったのです。。。
本題
- 今回の記事では、構築設定に
apprunner.yaml
を利用する場合に環境変数にSSM Parameter Storeの値を設定する方法を記載します - AppRunnerにSSM ParameterStoreへのアクセス許可用ロールを付与している前提です
arn形式で指定する場合
- arn形式でも設定できますが、ソースにAWSアカウントを含めることになるので基本的には後述のパラメーター名で指定するやり方を使うことが多いかと思います
version: 1.0
runtime: nodejs16
build:
commands:
build:
- npm install
run:
runtime-version: 16.19.0
command: npm start
network:
port: 3000
secrets:
# envではなくsecretsにて設定する
- name: my-parameter
value-from: "arn:aws:ssm:{ap-northeast-1}:{aws-account-id}:parameter/{parameter-name}"
パラメーター名で指定する場合
version: 1.0
runtime: nodejs16
build:
commands:
build:
- npm install
run:
runtime-version: 16.19.0
command: npm start
network:
port: 3000
secrets:
# envではなくsecretsにて設定する
- name: my-parameter-only-name
value-from: "parameter-name"
まとめ
- 個人的には
apprunner.yaml
で管理するのがいいのかなと思います、環境変数を追加する際やruntime等をいじるときに各AWS環境でポチポチするのもツライので - 今回紹介した内容ですが2023年4月時点では日本語版AppRunnerの開発者ガイドには記載されていないです
- 英語版だと書いてあります
- AppRunnerに限らずですが、AWSのドキュメントは英語版を正としてマルチランゲージにて公開されていて、ローカライズのため更新時刻に差異が発生することがあるので気をつけましょう!