AWSブログリレー:AWS Amplify

この記事はアイレット25卒社員によるAWSブログリレーのAmplify Gen 2編です。この記事は、AWS Top Engineerであるアジャイル事業部小巻 玖美さんに監修を受けて作成した記事になっております。

この記事では、Amplify Gen 2の概要から、どんな機能があるのか、メリット、料金体系、ユースケース、ハンズオンまでわかりやすく解説していきます。

AWS Amplifyとは

AWS Amplify(以下、Amplify)にはGen 1とGen 2の2つのバージョンが存在します。今回の記事はAmplify Gen 2についてご紹介します。
Amplify Gen 2 とは、TypeScriptベースでフロントエンド/バックエンドのフルスタック開発を可能にするプラットフォームであり、アプリケーションではなく、デプロイ機能を提供するサービスです。

どんな機能があるのか

1. Amplify Hosting(ホスティング)

Webアプリケーションやモバイルアプリケーションを迅速かつ簡単にデプロイ・ホスティングできるAWSのサービスです。CI/CDパイプラインを通じてGitHubなどのGitリポジトリと連携するだけで、ソースコードをプッシュするたびに自動でビルド・デプロイが行われる環境を構築することができます。

2. バックエンド機能

アプリケーションの裏側で動く様々な機能をコードで定義・構築する機能です。Amplify Gen 2では、これらの機能をTypeScriptで記述します。

Authentication (認証)

Amazon Cognitoを使用した、安全なユーザー認証機能を簡単に実装できます。多要素認証(MFA)やパスワードレス認証などの高度なセキュリティ機能も利用できます。

データ・API

Amplify Gen 2の登場により、バックエンドの構築において柔軟にリソース作成ができるようになりました。具体的には、AWS AppSync (GraphQL) を利用してリアルタイム性のある高機能なAPIを構築できるほか、REST API (Amazon API Gateway)のサポートにより、従来のWebサービスに最適なAPIも簡単に構築できます。

関数

AWS Lambdaと連携され、アプリケーションに関数機能を追加できます。
特定の処理を実施する関数を簡単に作成し、アプリに容易に組み込めます。

3. サンドボックス

開発者一人ひとりに、クラウド上に隔離された専用のテスト環境を提供する機能です。複数メンバーで同じAWS環境を使用している場合でも、ローカル開発中にチームメンバーの環境に干渉することなく変更を検証できます。ターミナルでnpx ampx sandbox​というコマンドを実行するだけで起動します。

Amplify Gen 2 メリット

チーム開発の開発効率の向上

チーム開発では、AWSリソースの競合や環境破壊の懸念から、バックエンド環境の扱いに不安が生じがちです。Amplify Gen 2のsandboxは、開発者ごとに完全に分離された専用のバックエンド環境を提供することで、AWSリソースの競合を気にせず、安全かつ高速な並行開発することができます。先ほど紹介したバックエンド機能の中の、認証、API、ストレージ、関数などの機能を提供しているため、開発者はこれらの機能を素早く実装できます。

料金体系

Amplify Gen 2には、新規ユーザーは12ヶ月間の無料利用枠があります。実際に利用したAWSサービスの料金やAmplify Hostingの料金が従量課金されるモデルです。Amplify新規ユーザーは、12ヶ月間有効な無料利用枠があります。
実際に利用する際は必ずAmplify料金ページをご確認ください。

ユースケース AWS 無料利用枠付き AWS 無料利用枠なし
アプリケーションをデプロイ 12 か月間無料 使用した分の料金を支払います。プロジェクトごとの複数サイトとパブリック SSL 証明書を追加費用なしで含みます。
ビルドとデプロイ 1000 ビルド分/月分まで無料 0.01 USD/1 分あたり
データストレージ CDN への保存 5 GB/月分まで無料 0.023 USD/GB/月(アプリが削除されるまで継続課金されます)
データ転送(OUT) 15 GB/月分まで無料 0.15 USD/GBサービス
リクエスト数(SSR) 50 万件のリクエスト/月分まで無料 0.30 USD/100 万リクエスト
リクエスト期間(SSR) 100 GB-時間/月分まで無料 0.20 USD/時間(GB-時間)

「※2025/10/29時点」

Amplifyのユースケース

ユースケース1:【Hosting編】CI/CDとプレビュー機能で開発を効率化

Gitと連携した自動デプロイ
main​ブランチにコードがマージされると、自動的に本番環境へデプロイ。developブランチにプッシュされれば、ステージング環境(確認環境)へデプロイ、といったフローを簡単に構築できます。これにより、手作業によるデプロイミスを防ぎ、開発者はコードを書くことに集中できます。
プレビュー機能
プルリクエストごとにプレビュー用のURLを自動的に生成できます。このURLにアクセスするだけで、実際のブラウザ上でデザインの崩れや機能の動作を確認できます。これにより、「コードレビュー」と「見た目・動作のレビュー」を並行して行え、開発スピードが向上します

ユースケース2:【Sandbox編】開発者同士でAWSリソースの競合

開発者ごとの分離環境: 各開発者は、ローカル環境でコードを変更し保存するたびに、本番環境に忠実なAWSリソースがプロビジョニングされた独立したクラウドサンドボックスを利用できます。これにより、他の開発者の作業に影響を与えることなく、バックエンドの変更も含めて自分の機能開発をテスト・検証できます。そして、AWSリソースの競合において従来の環境共有では、開発者がデータベースのスキーマを変更すると、他の開発者のテストが失敗する可能性がありました。Sandbox環境では、環境が完全に隔離されているため、リソース定義の競合や予期せぬ変更のリスクがなくなり、複数人での並行開発がスムーズに行えます。

実際に簡易的メモアプリをAmplifyでデプロイしてみた!

今回はAWSマネジメントコンソールからAmplifyをデプロイするまでの手順を紹介します!
アプリケーションをデプロイをクリックします。

GitプロバイダーからGitHubを選択して、[次へ]をクリックします。AWSアカウントへのGitHubアクセス許可を求められた場合は、許可してください。

Githubへアクセスできるようになると、Amplifyコンソールから作成したリポジトリを選択できます。デプロイしたいリポジトリとブランチを追加し、[次へ]をクリックします。

デフォルト値のまま、[次へ]をクリックします。

設定値を確認し、[保存してデプロイ]をクリックします。

確認画面で保存してデプロイします。初回のデプロイは、完了まで10分ほどかかります。

デプロイが完了したら、Amplifyコンソールに表示されているドメインをクリックして、アプリケーションにアクセスしてみましょう。

簡易的なアプリケーションがデプロイされていることが確認できました。

実際に、メモを追加することもできました。

最後に

この記事では、AWS Amplify Gen 2の概要から、どんな機能があるのか、メリット、料金体系、ユースケース、ハンズオンまでをご紹介しました。

実際に簡易的なメモアプリをデプロイしてみて、GitHubと連携してリポジトリを選ぶだけで、わずか10分程度でWebアプリをデプロイできました。CI/CDパイプラインを自分で構築する手間も減ります。特にチーム開発において、sandboxによる開発者ごとの隔離された環境と、PRごとの自動プレビューURLのおかげで、簡単に並行開発ができると感じました。