
✏️ Learn & Dev: AWS Amplify Studioの長所、短所を考えてみよう。
AWS Amplifyは、AWSにフルスタック開発ツールキットとしてますます人気が高まっているようです。
AWS Amplify は、開発者がクラウドと直接統合するフルスタック・アプリケーションを構築するために使用する強力なツールキットです。これを使用すると、開発チームは、詳細に集中する時間を最小限に抑えて、本番対応のアプリケーションを迅速にセットアップ、テスト、起動、およびスケーリングできます。
今回は、 Amplifyについて、デザイナーが使用してみた感想と、Amplifyが提供する機能について、さらに詳しく説明します。 さらに、アプリケーションを迅速に構築およびデプロイするために使用する方法についても調べてみました。 最後に、Amplifyのプロコン(長所と短所)、その理由について触れます。
「Pros & Cons」とは、日本では「プロコン」と略称される思考法です。ビジネスシーンで使う際は「メリットとデメリット」「賛成意見と反対意見」など、ロジカルに議論を戦わせるための2つの比較検討材料をさし、議論そのものを「プロコン」と表現することも多いです。
🗒メモ
AWS Amplify is powerful toolkit developers use to build full-stack applications that directly integrate with the cloud.
AWS Amplify は、開発者がクラウドと直接統合するフルスタック アプリケーションを構築するために使用する強力なツールキットです。
Using it, developers can rapidly set up, test, launch, and scale production-ready applications with minimal time spent focusing on the details.
これを使用すると、開発者は、詳細に集中する時間を最小限に抑えて、本番対応のアプリケーションを迅速にセットアップ、テスト、起動、およびスケーリングできます。
AWS Amplifyとは?
AWS Amplify Studioは、フルスタックのウェブおよびモバイルアプリを構築するためのビジュアル開発環境です。
AWS Amplifyは2017年11月に正式に発表され、すぐにフルスタック開発者の間で人気を博しました。 AmplifyはGoogle FirebaseやNetlifyなどの他の高速開発のフルスタック ホスティング製品と競合することを目指して、これらの他の製品にないものを提供しました。それは、AWSの強力なバックエンド サービスとの機能の直接統合です。
Studio は、AWS Amplify の既存のバックエンド構築機能に基づいて構築されているため、UI 開発も加速できます。
Studioを使用すると、コードを使用してアプリのデザインと動作を完全に制御しながら、最小限のコーディングで Webアプリ全体を最初から最後まですばやく構築できます。 より迅速に出荷し、簡単に拡張することができます。
こちらの記事に詳しく書かせていただきました。
プロジェクトをセットアップするときは、下の画像に示すように、さまざまな構成から選択できます。

Amplify はどのように機能するのか?
AWS Amplify は次の3つの主要部分で構成されています。
ライブラリ
2.ユーザーインターフェース(UI)
コマンド ライン インターフェイス (CLI) ツールチェーン
現在、これらすべての要素が連携してアプリケーション開発ライフサイクルを管理しています。 各コンポーネントの概要は次のとおりです。
1.ライブラリ
AWS Amplify を使用すると、コンポーネントを介して AWSクラウド・
サービスを追加、統合、および操作できます。 このライブラリは、安全な認証、ファイルの保存、データの保管、サーバーレス API、分析、プッシュ通知、AR/VR、およびその他の複数のアプリケーションの機能も促進します。
2.ユーザーインターフェース(UI)
Amplifyでは、認証要件コンポーネントを含む事前構築済みの UI コンポーネントが、アプリケーションのクラウド・ワークフローを中心に開発されています。
3.コマンド・ライン・インターフェイス (CLI) ツールチェーン
コンポーネントのコマンド ライン インターフェイス (CLI) ツールチェーンは、アプリケーションのスケーリングに役立ちます。 また、追加のクラウド サービスや機能を追加する必要がある場合は、CLI コマンドを使用して、AWS が管理するバックエンドを効率的に変更できます。

それでは、次のセクションで AWS Amplify の主な利点を見ていきましょう。
Amplifyの長所
モバイルおよびインターネット アプライアンスの構築に AWS Amplify を使用すると、シンプルで高速な最新のユーザー インターフェイス アプローチが提供されます。 ここでは、すぐに使用できる UI コンポーネントによってすべてが提供されるため、コーディングする必要はありません。 同様に、CLI のデザインとワークフローもシームレスであり、アプリケーションの開発をスピードアップします。
1すぐに始めることができる
Amplifyを使用すると、デプロイして新しいプロジェクトをすばやく開始できます。 コマンドを実行してアプリケーション・コンポーネントをすばやく生成できます。
また、システム管理の詳細を心配する代わりに、解決しようとしているビジネス上の問題により多くの時間を費やすことができます。
2. プロトタイピング
同じように、プロトタイピングはもう 1 つの大きな利点です。 Amplify が作成するすべてのリソースを追跡する舞台裏でCloudFormationを使用しているため、これらすべてのコンポーネントを 1 つのコマンドで簡単に破棄できます。 これは、おもちゃのアプリケーションを構築して機能コンポーネントの経験を積むことが非常に簡単であることを意味し、それらをすばやく分解することもできます。
3.迅速な開発サイクル
AmplifyはCLIベースであるため、非常に高速な開発サイクルが可能です。 開発者はツールキットを利用して、新しい変更をすばやく試し、クラウドにデプロイできます。
4.複雑なAWSのことも心配しないで済む
AWSは、何百もの異なるサービスを備えた非常に巨大なエコシステムです。 多くの人がAWSの使用を開始したいと考えていますが、どこから始めればよいかわかりません。
Amplifyは、この問題をひっくり返します。 問題から始めて、その問題を解決するサービスを見つけようとするのではなく、Amplifyはソリューション指向の考え方を提供します。 Storage、Authentication、Analyticsなどのコンポーネントとして直接的な機能を提供することで、開発者はどのAWSサービスが舞台裏で使用されているかを気にする必要がなくなり、通常は最終製品だけを気にするようになります。
これにより、開発者は AWS の複雑さについて心配する必要がなくなります。
AWS Amplify の主な利点がわかったところで、次にその欠点について説明します。
Amplifyの短所
1.AWSを学ぶためのツールではない
使い始めた当時はAmplifyを使えば少しはAWSを学べるかと思いましたが、長所で述べましたAWSの複雑さについて心配する必要がないということは、AWSを実際に学んでいないということにつながります。
コンポーネントとそれらが相互運用する方法を理解することはできませんでした。最終的にはAmplifyの使い方を学んだだけとなってしまいました。
しかしながら、プロジェクトを急速に発展させたい方々にとっては、これは問題ではないかと思います。AWSのサービスを詳しく知りたいと考えている人や、本番アプリケーションを起動する方法を学びたい人は、CDKなどの他の選択肢を検討するをしてみてください。
2.コラボレーションが難しい
Amplifyを使った手見て、ソロ開発者向けの製品だと感じました。AWSはコラボ開発環境向けの便利なワークフローをいくつか提供していますが、別の開発者と協力して互いの変更を踏むのは多少難しいかと思いました。
3.リミットがある
Amplify の問題の1つは、AWS Amplifyを通じて提供される製品機能に翻弄されることです。Amplifyプロジェクトで使用したい特定のAWSサービスがあり、それがサポートされていない場合は、個別に管理する必要がある場合があります。
Cloud Development Kitを使用してカスタム・コンポーネントを追加する方法がありますが、初心者にとって理解するのが非常に難しい場合があります。
4.サプライズ請求の可能性
これは、Amplify を使用する上で注意したい部分です。 サービスはバックグラウンドでプロビジョニングされているため、コストに影響するサービスに依存する機能を追加できる可能性があります。 これは、AWSの無料利用枠外のアカウントを使用している場合に特に重要です。
アプリケーションで予期しないコストが発生し始めた場合に早期に警告を受け取れるように、課金アラートを少額のしきい値 ($5 or so should be fine) に設定し、リスクを低めてください。
AWS Amplifyの料金
AWS Amplify には、次の料金体系があります。
無料利用枠:12ヶ月のお試し期間とも言える、初めてのお支払い方法の一つです。
従量制モデル: 最初の12か月が経過すると、無料利用枠は従量制モデルに変換されます。つまり、使用した分だけ支払いが開始されます。
まとめ
Amplifyの主な強みは、ストレージ、認証、モニタリング、PubSub 機能などをすばやく追加できることです。ウェブおよびモバイル開発者にとって非常に便利です。
たとえば、ストレージのようなものを使用することにした場合、実際にはそれについて知らずに、多数のAWSサービスから1つまたは複数のコンポーネントをプロビジョニングしている可能性があります。これらの機能を追加するために、Amplifyが舞台裏で何をプロビジョニングしているかを知る必要はありません。
開発者はその機能を実現するためにどのAWS サービスを使用すればよいかを知らなくてもアプリケーション機能を追加でき、アプリケーション・インフラストラクチャの維持に時間を浪費するのではなく、顧客に最高の価値を提供することで、優先事項に集中することができます。
基盤となるインフラストラクチャ・マネージャーを使用せずに、安全で効率的なアプリをすばやくデプロイしたい方はぜひ一度しようしてみてください。
参考資料
私も色々勉強中なので、皆さまのご意見・ご感想をお聞かせください。
お読み頂きまして、ありがとうございました。

メルボルンを拠点にプロダクトデザイナーとして働いています。 主にデジタル・プロダクトの制作に携わっています。