先日リリースのあったAWS App Runnerがこれだよこれという感じの内容だったのでやってみました。
使い方
1.コンテナイメージの準備
ソースとしてコンテナかリポジトリを選べます。
リポジトリだとruntimeがpythonとnodeの2つのみ対応されています。(21.05.29時点)
ここではLaravel実行環境のイメージをプッシュしてそれをソースとします。
FROM phppm/nginx:latest
COPY . /var/www
CMD ["--bootstrap=laravel","--static-directory=public/", "--app-env=prod" ,"--debug=0", "--logging=0"]
$ docker build -t ta9to:1.0 .
$ docker run -p 80:80 -d ta9to:1.0
$ curl 0.0.0.0/hello
hello!%
作成したイメージをecrへプッシュします。
$ export AWS_PROFILE=ta9to
$ aws ecr create-repository --repository-name ta9to
{
"repository": {
...
"repositoryUri": "****.dkr.ecr.ap-northeast-1.amazonaws.com/ta9to",
...
$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin ****.dkr.ecr.ap-northeast-1.amazonaws.com/ta9to
Login Succeeded
$ docker tag ta9to:1.0 ****.dkr.ecr.ap-northeast-1.amazonaws.com/ta9to:1.0
$ docker push ****.dkr.ecr.ap-northeast-1.amazonaws.com/ta9to:1.0
The push refers to repository [****.dkr.ecr.ap-northeast-1.amazonaws.com/ta9to]
$ aws ecr list-images --repository-name ta9to
{
"imageIds": [
{
"imageDigest": "sha256:ff374d71a2c7488c26928a6b6e2ad08d808f1c69d04cbb850c8f5dd879dc1080",
"imageTag": "1.0"
}
]
}
2.ソースおよびデプロイ
コンテナイメージのURI
を設定します。
参照ボタンから探せます。
デプロイトリガー
は自動
に設定し、プッシュしたらデプロイされるようにしました。
3.サービスを設定
サービス設定
Auto Scaling
ヘルスチェック
セキュリティ、タグ
確認および作成
$ curl https://zdggfapa7h.ap-northeast-1.awsapprunner.com/hello
hello!%
4.カスタムドメイン
指定されたレコードを追加する。
$ curl https://www.ta9to.com/hello
hello!%
完成!
コードを(コンテナイメージを)プッシュするだけでオートスケールとか一切設定を気にせず実行環境が出来上がりました。
これこれ。