典型的なWebアプリケーションをホスティングするにあたっては何も考えなくても良しなにやってくれるPaaS が好みで、AWS App Runnerはリリースされた前後から多少注目していた。
所感のまとめ記事を書いてからは積極的触れてはこなかったのだけれど、半年も経っているのでその間の出来事を含めて振り返って今後どのように付き合っていくのかを考えてみたい。
なお、その間も公開されているロードマップはなんとなく眺めていたり、仕事でAWSを扱っている関係上関連する情報は小耳に挟んでいた。
振り返る前の印象としては、まだおもちゃではあるものの継続して改善はされている。ただしリリース時に当然のようにあってしかるべきな機能も揃ってはいない。実用には厳しい。といった感じだ。
この記事は Calendar for AWS App Runner | Advent Calendar 2022 - Qiita の4日目です。
昨日は AWS App Runner を AWS CDK で構築する でした。
気になりどころはどうなったのか?
振り返るに当たっては、以前の記事で気にしていた要素がどうなったのか? を見ていきたい。
この辺りだ。
- 大きな不足要素
- アクセスを制限できない
- サイドカーがつけられない
- 安全簡単に認証情報をコンテナに渡せない
- 個別の気になり要素
- やっぱ自動デプロイに金取られるの納得いかねー
- 一時停止中は何もできないぞ気をつけろ
- WebSocketはサポートされていないぞ気を付けろ
- それでも使ってなんだか変な動きをしたら? サービス自体を再作成
主にロードマップやIssueを観察していく。
アクセスを制限できない
先日サポートされた。
Issue: Allow private endpoints for App Runner services · Issue #2 · aws/apprunner-roadmap · GitHub
リリース記事: AWS App Runner が Amazon VPC 内のプライベートにアクセス可能なサービスのサポートを開始
素朴に便利になった。
個人的にはCloudFrontからのアクセスに限定したいだけの場面が多いので、ちょっと不便な形態ではある。S3のようなアクセス制限を望んでいたのでその点は残念。
AWSのアクセス制限の仕組みに乗せるために、VPCエンドポイントを境界にしているのだろう。
サイドカーがつけられない
暫くの間サポートされることはさそう。
Support Worker Services · Issue #96 · aws/apprunner-roadmap · GitHub ともどもロードマップに載ってすらいない。
HTTPリクエスト受け付けるWebアプリケーション以外のホスティングは行えないものとして考えるべきだろう。
安全簡単に認証情報をコンテナに渡せない
ロードマップには載っていて、先日Coming soonになった。
Issue: External Configuration/Secret Sources · Issue #6 · aws/apprunner-roadmap · GitHub
対応見込みがあるのは素直に良いけれど、年単位で放置されるような問題ではないだろう。リリース当初から備えておくべき機能だ。というのが率直な感想。
やっぱ自動デプロイに金取られるの納得いかねー
引き続き納得いかねー。
納得いかないだけだけれど、納得いかねー。
AWS App Runner の料金 – フルマネージド型のコンテナアプリケーションサービス - Amazon Web Services
一時停止中は何もできないぞ気をつけろ
特に変化していない様子。
節約のために止めているとIaCの適用なんかも全滅するので不便なのだけれど、どうにもならないのだろう。
Pausing and resuming an App Runner service - AWS App Runner
Issueを立てるほどの需要もない。そもそも停止させるのが面倒くさすぎるので、停止とかいらないからゼロスケールサポートしてくれ。なお、こちらはロードマップにすら載っていない模様。
WebSocketはサポートされていないぞ気を付けろ
ロードマップには載っていて、先日リサーチ中になった。
Issue: Support web sockets · Issue #13 · aws/apprunner-roadmap · GitHub
他のロードマップ要素への対応状況を鑑みると、来年の今頃にはサポートされているかもしれない。
それでも使ってなんだか変な動きをしたら? サービス自体を再作成
ロードマップには載っていて、先日対応中になった。
他の致命的な要素もちょいちょい対応されている様子。
これは先の記事で自分が出くわしたのと同じ事象かもしれない。
Just Shipped なロードマップ要素
改めて眺めたけれど、これと言って目を引く要素はなかった。多分元々眺めていたから。
対応言語が増えているのが目につくけれど、ローカルでの開発でDockerを使っていると「ホスティングする際も自分でビルドすればいいじゃん」となって需要があまりない。どのみち動くときはコンテナなので、Lambdaのランタイムが増えてうれしいのようなものがない。対応を待っていたのなら嬉しいのだろうと思う。
振り返ってみて
元々ロードマップは眺めていたこともあって、振り返る前と特に印象は変わらなかった。
とはいえ、プライベートなホスティングがサポートされ、認証情報の受け渡しもサポート見込みとなったので、全く使い物にならない状態は脱して来ているのではないかと思う。
必要を充足する限りではECSと比べてALBを必要とせずにBrue/Greenデプロイが構成されるなど一定の利点もある。
サービスとしての堅牢性に欠ける*1ので、この一点のみで高いサービスレベルが要求される状況では採用しがたい。 ビジネス以上のサポートならなんとかしてもらえるのかも知れないが、リスクを抱えてまで選ぶ利点はない。
嫌いではないし、利点のみを得られる場面で細々と利用はしているので、引き続き観察していきたい。当面はWebアプリケーションをホスティングする第一選択肢は他のサービスとしつつ、また来年気が向いたら振り返ろうと思う。
観察という観点では、GitHubのリポジトリをWatchしていると公式な情報が流れてきて、こうして振り返るときも情報が集約されているのは非常に体験がよい。これはぜひ広まって欲しい運用だ。
最後に自分のツイートを振り返って見かけた今も変わらない気持ちのつぶやきを貼っておく。
ここしばらくApp Runnerをめちゃくちゃディスってるけれど、嫌悪感は全然ないんだよな。残念感はクソほど強いけれど。
— 光電/7474 (@koudenpa) 2022年6月11日
AWS App Runnerホント使いどころ分からん。
— 光電/7474 (@koudenpa) 2022年11月2日
手軽にコンテナを使ってWebサービスがコンテナPaaSのフォローする用途だと思う。
のだけれど、Webサービスにほぼ必須な要素を扱いたいとなると追加のリソースや構成をしなくてはならない。
それができるならECS使った方が良い場面が多いだろうと思う。
*1:それでも使ってなんだか変な動きをしたら? サービス自体を再作成 の部分