TWBMT

技術的な記事や覚書について書いていきます。その内、自作サイトとかに技術記事をまとめたい。

【AWS Amplify】AWS Amplify を推したい。(2021年以降の気になるアップデートのまとめ)

先日のはじめてのIT勉強会のLTで発表した内容をブログにしたものです。

この記事で書きたいこと

  • AWS Amplify は小規模・プロトタイプ開発向けではなくなってきている。
  • かなり強力なアップデートがされており、今後も要チェックのサービス。
  • AWS Amplify の様なサービスが普及した時、一人のエンジニアが持てる役割はより大きくなりそう。

以前の AWS Amplify

僕が最初に触れた 2018年頃はプロトタイプ・小規模開発向けという位置づけだったと記憶しています。
(トップページも更新されてしまい、当時のソースは見つけられませんでした。。)

ただ、実際に当時は Amplify の管理するリソースをカスタマイズ出来ない、データベースは DynamoDB しか選べない、などの制限が多くプロダクトとして利用するの際の拡張性・柔軟性に欠けるという印象でした。

最近のアップデートが激アツ

そんな Amplify ですが、2021年あたりのアップデートから非常に機能が強化されていました。
細かいことも含めつつ、いくつかのアップデートをピックアップしてご紹介していきます。

CI/CD のサポート

GitHub と連携したCI/CDをサポートがされました。
元々CLI ベースのデプロイ機能はありましたが、GitHub Acitons などを自身で設定せずに CI / CD 環境を構築出来る様になっています。
AWS Amplify がフルスタック CI/CD 機能を新たにローンチ

AWS CDK によるカスタマイズに対応

Amplify のネックだった Amplify CLI 未対応のリソースを管理することが出来ます。これは激アツ。
Extend Amplify backend with custom AWS resources using AWS CDK or CloudFormation | Front-End Web & Mobile

AWS CDK によるオーバーライドに一部対応

Amplify CLI で作成したCognitoなどをカスタマイズすることが出来るようになりました。
AWS Amplify が CDK を使用して Amplify で生成されたリソースをオーバーライドする機能を発表

Amplify Studio + Figma によるコンポーネント生成

個人的に可能性を感じるアップデートだと思っています。後述します。
AWS Amplify Studio – 最小限のプログラミングでFigmaからフルスタックのReactアプリを実現 | Amazon Web Services ブログ

拡張性を得た AWS Amplify

以前の Amplify は DB が DynamoDB 以外選べないことや他のサービスと併用する時に結局 CloudFormation を二重管理する必要があるなど拡張性の面で限界が存在していました。
AWS CDK 対応のアップデートでこれを打ち破ることができる様になり、ある程度の小・中規模のプロダクトなら十分使えるレベルになったと思います。

また、FIgma から React Component を生成する機能も超強力になる可能性があると思います。
自動生成したコードは融通が効かない・使えない・読めないという事は往々にしてよくあることですが、「ロジックとビューの分離」は昨今のフロントエンドのトレンドです。
Container / Presentational にコンポーネントを設計し、自動生成したコードをUIコンポーネントとして Presentational 側で使用する事は決して難しくはありません。

まだ public preview 版ですし、props の型が無いなどのツラミもあると思いますが、今後の動向をチェックして損のない機能だと思います。

まとめ

最近のアップデートにより AWS Amplify は実践的にかなり使えるサービスになってきています。
少なくとも以前のプロトタイプ開発や学生向けといった様な範疇には収まらない水準まで来ており、新規開発の際の選択肢の一つに入れても良いのではないでしょうか。

興味持って頂けた方は上記で列挙した以上のアップデートもあるので是非チェックしてみてください。
僕自身も今後もチェックして触っていきたいと思います。

余談: AWS Amplify を通して個人的に思ったこと

一連のアップデートは単純に便利サービスに進化しただけではなく
「フロントエンド・バックエンド・デザイナーの垣根を薄くしている」
「一人のエンジニアがカバーできる領域が広がりつつある」
ということでもあると解釈しています。
(もしくは元々は一つだったはずなので、昔に戻っているのかもしれませんね。)

Amplify に限らずとも XD で Android の UI を自動生成するなどもありますし、デザインツールで実際の UI をそのまま作る将来は近いのかなぁと。

この先もプログラマーデベロッパーを続けていくには、
デザインやネットワークなどより上もしくは下のレイヤーの知識を身に着けていかないといけないのかもしれませんね。
この先はそのつもりで色々とキャッチアップしていこうと思います。