Terraformを使えるならAmplifyを使わずにS3+CloudFrontでよさそう

この比較記事をたまたま見ていたのでメモ。

結論、現段階では、Terraformを使っているならS3+CloudFrontでよいという印象。

Amplifyは、手軽さとのバーターなのである意味当然なのだが、カスタマイズ性が弱い。たとえばDevelop環境のCloudFrontにWAFをセットしてアクセスを固定IPで制限したい、と思っても、現時点(20221108)まだできない。

この例については今後できるようになるかもしれないが、問題はそこではない。柔軟なカスタマイズがしたくても対応できないデメリットがもったいない、ということだ。

Terraformをすでに使っており、かつAWSの学習コストをサンクコスト扱いできるなら(できる人は多いはずだ。むしろ、それができない状況でAWSを使うべきだろうか)、というかなり重い前提がつくのだが、無理にAmplifyを使えるよう頑張るくらいなら、素直にS3+CloudFrontをTerraformで構築するほうが、かえって工数も短縮できるように思う。過去のコードを流用できれば――ちなみに自分のコードはここで公開する予定―――リソースを用意する程度はそう難しくない。

ただ一方で、カスタマイズが必要ない軽い用途で、お手軽にマネジメントコンソールからポチポチやるだけで自動デプロイまで用意できるのは、Amplifyの素晴らしい点である。Terraform他のIaCを使っておらず、かつ要件的にも問題なければ、Amplifyに検討の価値があるのは間違いない。