AppRunner から割り当てられるドメインと DNS rebinding atttacks
AppRunner にアプリをデプロイした場合、アプリに割り当てられるドメインは ランダム文字列.リージョン.awsapprunner.com
になります。このドメインは Rails の DNS rebinding attacks を防ぐためのガードレールにひっかかってしまうため、設定で解除する必要があります。
config/environments/your_environment.rb
AppRunner はお手軽さとコストの面で優秀
以下の記事の比較で「AppRunner はスケールをゼロにできる(Scaling down to 0
)」が評価されているのは Action: Pause がメニューにあるからです。Pause 中は課金はされないので、動かす場面が限られている場合、この点で ECS よりも費用を抑えられます。
コンテナベースにしておいたほうがいろいろと楽
元となるレポジトリに ECR(コンテナレジストリ) ではなく Github(ソースコードレポジトリ) も指定できますが、その場合は AppRunner がサポートしているランタイムのバージョンに合わせる必要があります。Ruby だと現在サポートされているのは 3.1.2 です。コンテナベースで運用するほうが、ランタイムのバージョンを気にする必要がなく fly.io や ECS/EKS にも移行しやすいです。
他の SaaS とどう使い分けていくべきか
個人開発アプリを完全無料で公開したいのであれば fly.io ですが、社内用にアクセスをパブリックではなく VPC 内に制限して 公開する場合などは AppRunner のほうがよさそうです。また RDS など既存の AWS のデータストア/リソースを活用できる点も利点となります。CloudWatch を使えるところも嬉しいかも (^_^;
参考情報
- What Is DNS Rebinding? - Palo Alto Networks
- Create App Runner service :: AWS App Runner Workshop
- Fargate vs. App Runner | cloudonaut
- Pushing a Docker image - Amazon ECR
- Can I SSH into my container running on AppRunner? | AWS re:Post
- AWS App Runner now supports privately accessible services within Amazon VPC
- Using the Ruby platform - AWS App Runner