AWS Amplify Gen2 を使ってみた感想


My Redmine

吉岡です。Amplify Gen2のサンプルコードを使用してみたのでその感想をまとめました。長年Amplify Gen1を利用してきた自分にとって、Gen2の新しい機能や改善点には期待と不安がありました。今回は、その初歩的な使用感について紹介します。

概要

弊社ではAmplify Gen1をプロダクション環境で5年以上使用してきました。Amplify Gen2がGA(General Availability)されてから数ヶ月が経過し、本格的にGen2への移行を検討するにあたり、まずは公式ドキュメントのサンプルコードを基に概要を掴むことにしました。ここではその体験と感じた点について書きたいと思います。

今回は公式ドキュメントに掲載されているQuickstart(React)に従い、アプリケーションをデプロイしました。
公式ドキュメント: Quickstart

やったこと

  1. アプリケーションのデプロイ
    GitHubからサンプルコードをフォークし、Amplifyのコンソールからアプリケーションを作成・デプロイしました。待つだけでアプリが自動的に構築される点に驚きました。
  2. 実際の動作確認
    生成されたURLにアクセスし、アプリケーションの動作を確認。数クリックでアプリが稼働し、すぐに動作確認できる手軽さに感動しました。
  3. 開発環境の検証
    ローカルにコードをgit cloneでダウンロードし、コードを修正。Amplifyのサンドボックス機能を使って開発し、本番環境へのデプロイもスムーズに行えました。

感想

良いと感じた点

  1. Sandboxとリアルタイム更新の活用
    Gen2ではサンドボックス機能を使い、バックエンドの変更がリアルタイムで反映されます。ローカル開発環境でも本番に近い作業が可能で、ディレクトリ内の変更が即座に反映されるため、開発スピードが向上しました。不要な環境を簡単に削除できる点も非常に便利です。
  2. バックエンドがCDKで構築可能
    Amplify Gen2では、バックエンドをAWS Cloud Development Kit(CDK)で定義でき、認証やアクセス権限の設定が簡単になりました。AWSリソースを柔軟に管理できるため、構築や運用の効率化が図れます。
  3. デプロイプロセスの安定性
    Gen1ではAmplify CLIのアップデートに伴いデプロイが失敗することが頻繁にありましたが、Gen2ではバックエンドがCDKベースに移行したことで、デプロイの安定性が向上し、アップデート時のトラブルが軽減されることが期待できます。
  4. 管理の簡素化
    Gen2では、バックエンドの構成をCDKを使ってコードベースで管理できるようになり、特に認証やアクセス権限の設定が直感的に行えるようになりました。これにより、AmplifyとAWSリソースの統合がスムーズになり、複雑なバックエンド管理がシンプルになりました。

Gen1 との比較

参考として、Gen1とGen2の機能比較についても触れたいと思います。公式ドキュメントによると、基本的にGen1でできることはGen2でも対応していますが、いくつか注意が必要な点があります。

  1. ローカルでのテスト
    Gen2ではローカルテストがサンドボックス環境に依存しており、従来のamplify mockに代わる新しいアプローチが採用されています。これも今後試してみたいと考えています。
  2. CDKの活用
    Gen2では、多くの機能がCDKを前提に実装されており、「Yes with CDK」という表現が頻出します。Amplifyを使いこなすには、従来以上にAWSサービスやCDKの知識が重要になってくるでしょう。柔軟性は向上していますが、その分技術的な理解が求められる場面が増えると感じています。

参考情報: Gen 2 for Gen 1 customers

気になる点

Amplifyの設定ファイル(amplify_outputs.json)は、AWSにデプロイされた環境にアクセスするために必要ですが、サンドボックスを利用するとこのファイルが上書きされてしまいます。サンドボックス利用後に元の状態に戻ることを期待しましたが、ファイルが削除されてしまい少し残念な気持ちになりました。

まとめ

今回はAmplify Gen2のサンプルコードを動かし、初歩的な検証を行いました。細かい機能のテストはまだこれからですが、バックエンドがCDKベースになったことで運用の安定性が向上する可能性を感じています。引き続き検証を進め、今後も積極的に利用していきたいと考えています。

【スタッフ募集中】
弊社ではAWSを活用したソリューションの企画・設計・構築・運用や、Ruby on Rails・JavaScriptフレームワークなどを使用したアプリケーション開発を行うスタッフを募集しています。採用情報の詳細
弊社での勤務に関心をお持ちの方は、知り合いの弊社社員・関係者を通じてご連絡ください。

My Redmine

こちらの記事もオススメです!
AWS Amplify のサンドボックスを試してみた
AWS Amplifyのサンドボックスを利用するとAWSアカウント無しでAmplifyの一部機能を試せます。
RedmineプラグインのシステムテストをPlaywrightで動かす
Playwrightは環境構築が簡単なのが魅力的です。GitHub Actionsでの自動テストも簡単に設定できます。
グアムで使ったeSIM Airalo と配車サービス Stroll
スマートフォンでの操作のみでインターネットに接続できるeSIMと配車サービス Strollをグアムで利用しました。
Intel MacからM3 Macへデータを移行しました
パソコンをIntel MacからM3 Macへ新しくしました。移行アシスタントとTime Machineのバックアップを使って、楽にデータ移行ができます。
Redmineとプラグインの開発を支える自作のツール
Redmineやプラグインの開発を行う中で、開発をしやすくするために自作したツールを二つご紹介します。
ファーエンドテクノロジーからのお知らせ(2024/09/11更新)
2024年9月14日 オライリー本の全冊公開日のお知らせ(もくもく勉強会も同時開催)
ファーエンドテクノロジーが所蔵するオライリー本(全冊)公開日のご案内です。公開日には「もくもく勉強会」も同時開催します。
RubyWorld Conference 2024 (12/5・6開催) にPlatinumスポンサーとして協賛
ファーエンドテクノロジー株式会社は、2024年12月5日(木)〜6日(金)に島根県松江市で開催される「RubyWorld Conference 2024」にPlatinumスポンサーとして協賛しています。
プロジェクト管理ツールRedmineのクラウドサービス「My Redmine」の海外向けサービス「My Redmine Global Edition」の提供を開始
「My Redmine」の海外向けサービスとして、新たに「My Redmine Global Edition」の提供を開始しました。
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け