AWS App Runner触ってみる(ハンズオン) + ハンズオン後片付け前に色々触ったメモ

[AWSの基礎を学ぼう 特別編　最新サービスをみんなで触ってみる AWS App Runner](https://awsbasics.connpass.com/event/213933/)に参加して、App Runnerを触ってみたのと、ハンズオンのあと残った環境をいろいろ見てみたので、そのメモ

# ハンズオン

https://github.com/harunobukameda/AWS-App-Runner

ここに手順書(Word,PDF)があがっています。
Commands.txtにハンズオン中に利用するコードやjsonが記載されているのでコピペして使えます。

## このハンズオンでやること

① AppRunnerサービスの立ち上げ(GitHubリポジトリをソースにする)
② AppRunnerサービスの立ち上げ(ECRレジストリのイメージをソースにする※)

※イメージのビルドとプッシュをするのにサンプルではCloud9を使います。

> 本ワークショップシナリオのオリジナル版は以下の URL になります。
> https://www.apprunnerworkshop.com/
> 本シナリオはオリジナル版を短縮し、App Runner の基本機能にフォーカスしています。余裕がある方は是非オリジナル版もお試しください。

とある通り、シンプルなハンズオンでした。
僕はtypoして１回詰まっちゃいましたが(後述)それ以外はスムーズにいきました。
1時間あればできると思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43631/e0b8f3eb-12df-a06a-abb4-cc398a5ae949.png)

こんな感じ

## 前提条件

### 必要なもの
 - GitHubアカウント
 - AWSアカウント

### ハンズオンの中で作ることになるもの
 - GitHubリポジトリ
 - AppRunner
    - サービス
    - GitHub接続
 - ECRレジストリ
 - Cloud9環境

# 注意点/留意点

 - ソースのコピペミス/漏れに注意
 - AppRunnerで「Service status is set to RUNNING.」とログが出ても実際にページが見えるようになるまで少しタイムラグありました(２分くらい？)

# ハンズオン後

お掃除する前に、もうちょっと触ったり見たりしてみました。

## コードの変更

### 手動デプロイ

「① AppRunnerサービスの立ち上げ(GitHubリポジトリをソースにする)」でソースにしたリポジトリに変更をプッシュし、AppRunnerの画面で「デプロイ」ボタンを押します。

![スクリーンショット 2021-07-03 15.14.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43631/97e6449d-bbf4-5fd6-c70d-635bec36063d.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43631/021a9ebc-8b59-ce88-fa8c-19e8bee547bd.png)

ちゃんと反映され、世紀末になりました。

![Qiita_と_https___sqh9dczncz_us-east-1_awsapprunner_com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43631/40e52e00-8fa0-7446-a0e4-54bf7235bba0.png)


### 自動デプロイ
Pushしたら自動でデプロイされるように設定を変更します。

![スクリーンショット 2021-07-03 17.29.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43631/055a47dd-ee14-88c9-36ee-ad999a871e33.png)

変更をPushします。

![スクリーンショット 2021-07-03 17.44.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43631/5c56a61c-9922-fa50-b58a-1b5456483bae.png)


自動でデプロイが走ります。
![AWS_App_Runner.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43631/bb37a86e-27a2-e24e-e6a0-e94b992d4fa7.png)

ちゃんと反映され、スクワットしたくなってきました。

![https___sqh9dczncz_us-east-1_awsapprunner_com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43631/360308e8-bcad-129d-ac2e-bef01b1ce47e.png)


## ログの確認
Cloud Watch Logsにログが出力されています。

[ドキュメント:AppRunnerのログ](https://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/monitor-cwl.html)
サービスログとアプリケーションログがCloudWatch Logsに吐かれます。

最初、自分はAppRunnerのCreate serviceに失敗しちゃいましたが、ログが出てたのでわりとすぐ解決できました。
「構築コマンド」に `npm install` とすべきところを `npm instal` とtypoしてました。

```
2021-07-03T13:37:01.708+09:00	[Build] Step 4/5 : RUN npm instal
2021-07-03T13:37:01.708+09:00	[Build] ---> Running in c3694f9f35bb
2021-07-03T13:37:01.708+09:00	[Build] Usage: npm <command>
2021-07-03T13:37:01.708+09:00	[Build] where <command> is one of:
2021-07-03T13:37:01.708+09:00	[Build] access, adduser, audit, bin, bugs, c, cache, ci, cit,
〜
2021-07-03T13:37:14.469+09:00	[AppRunner] Failed to deploy your application source code.
```

## メトリクスの確認

[ドキュメント:AppRunnerのメトリクス](https://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/monitor-cw.html)

こんな感じ
![スクリーンショット 2021-07-03 17.20.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43631/f630c543-7f22-80d4-448a-a8379ee0ad7b.png)


![スクリーンショット 2021-07-03 17.20.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43631/39afdc84-edef-9c73-3a0a-c4810c1a51cd.png)

# 所感

Fargateよりも更にマネージドで手軽に感じました。話をきいていると制約はいろいろあるようなので確認は必要。今日ハンズオンで初めて触ったぐらいで、ドキュメントも詳しく見れていないですが、バッチ処理などより常時起動しておくサーバーやサイトに使うのがよさそうですかねぇ。(一時停止は可能だけど）

AppRunnerの今後のロードマップは[こちら](https://github.com/aws/apprunner-roadmap/projects)