𝕏 f B! L
案件・求人数 12,345
案件を探す(準備中) エージェントを探す(準備中) お役立ち情報 ログイン
案件・求人数 12,345
AWS Amplifyフルスタック開発ガイド【SES案件対応】

AWS Amplifyフルスタック開発ガイド【SES案件対応】

AWSAmplifyフルスタック開発SESサーバーレス
目次

「AWSを使ったフルスタック開発をやってみたいが、バックエンドの設定が複雑で手が出せない」——そんな悩みを持つフロントエンドエンジニアは少なくありません。また、SES案件でAWS経験を積みたいけれど、何から始めれば良いかわからないという声もよく聞きます。

AWS Amplify Gen2なら、TypeScriptでバックエンドを定義し、認証・API・ストレージをフロントエンドエンジニアが主導で構築できます。 この記事では、Gen2の実践的な使い方と、SES案件での活かし方を解説します。

この記事を3秒でまとめると

  • AWS Amplify Gen2はTypeScript-firstでバックエンドをコード定義できる次世代フレームワーク
  • 認証・GraphQL API・S3ストレージを最小限のコードで実装可能
  • フルスタックAmplifyスキルはSES案件での単価アップに直結する

AWS Amplify Gen2とは

AWS Amplifyは、AWSのバックエンドサービス(Cognito・AppSync・S3・Lambda等)をフロントエンドから簡単に使えるようにするフルスタック開発フレームワークです。2024年にリリースされた**Gen2(第2世代)**では、開発体験が大きく刷新されました。

AWS Amplify Gen2のアーキテクチャ全体像

Gen1からの進化ポイント

Gen1では amplify init から始まるCLI主導の設定が中心でしたが、Gen2ではすべてTypeScriptのコードとして定義します。

比較項目Gen1Gen2
バックエンド定義CLIウィザード + JSONTypeScriptコード
型安全性△ 弱い◎ 完全な型推論
ローカル開発△ クラウド依存◎ Sandboxで高速
カスタマイズ△ 複雑なオーバーライド◎ CDKと直接統合
デプロイ管理amplify pushGit連携で自動

AWS公式ブログでも「Gen2はコードファーストアプローチにより、チームコラボレーションとCI/CDの親和性が大幅に向上した」と説明されています(AWS Amplify Gen2 公式ドキュメント)。

TypeScript-firstなバックエンド定義

Gen2のバックエンド定義は amplify/ ディレクトリ配下に置きます。例えば認証の設定はこのように書けます。

バックエンド定義の例(amplify/auth/resource.ts):

認証リソースをTypeScriptオブジェクトとして定義し、defineAuth() 関数でCognitoの設定を記述します。IDEの補完が効くため、設定ミスを事前に防げます。バックエンドの変更も通常のTypeScriptコードのようにgit管理できるのが大きなメリットです。


プロジェクトセットアップ

Next.js / React / Vueとの初期連携

Amplify Gen2は主要なフレームワークに対応しています。

  1. Next.js: create-next-app 後に npm create amplify@latest を実行
  2. React (Vite): npm create vite@latest 後に同様にAmplify初期化
  3. Vue: npm create vue@latest 後に create amplify でセットアップ

初期化後に生成される amplify/ ディレクトリ構造:

  • amplify/auth/resource.ts — Cognito認証の定義
  • amplify/data/resource.ts — AppSync GraphQL APIの定義
  • amplify/storage/resource.ts — S3ストレージの定義
  • amplify/backend.ts — 全リソースのエントリポイント

Amplify Sandboxによるローカル開発

Gen2最大の改善点の一つがAmplify Sandboxです。npx ampx sandbox を実行すると、開発者専用のAWSリソースがクラウドに自動作成され、コード変更が即座にリアルタイムで反映されます。

Sandboxのメリット:

  • チームメンバーそれぞれが独立した開発環境を持てる
  • amplify.ts の変更を検知して自動デプロイ
  • ローカル開発でも本番同等のAWSサービスをテスト可能
  • 開発終了時に npx ampx sandbox delete でリソースを一括削除

認証(Cognito)の実装

ソーシャルログインとMFA設定

Amplify Gen2では、Cognitoのソーシャルログインをコード数行で実装できます。

対応ソーシャルプロバイダー:

  • Google
  • Facebook
  • Apple(Apple Sign In)
  • Amazon

defineAuth()loginWith オプションに各プロバイダーの設定を追加するだけで、OAuthフローが自動で構成されます。MFA(多要素認証)もSMS・TOTPアプリの両方に対応しており、セキュリティ要件に応じて選択できます。

カスタム認証フローの構築

標準フローでは対応できない要件には、Lambdaトリガーを使ったカスタム認証フローを構築します。

よくあるカスタムフローの例:

  • メールアドレス確認後に追加情報入力: 初回ログイン時にプロフィール設定画面を強制表示
  • IPアドレス制限: 特定のCIDRからのみログインを許可
  • 社内SSO連携: SAML/OIDCプロバイダーとのフェデレーション
  • パスキー認証: WebAuthn/FIDOを使った生体認証対応

詳しい認証設計パターンについては AWS Cognito認証ガイド もあわせてご覧ください。


APIの構築(AppSync / REST)

GraphQL APIのスキーマ定義と自動生成

Amplify Gen2のData機能では、defineData() でGraphQLスキーマをTypeScriptのモデル定義として記述します。スキーマからフロントエンド向けの型定義・クエリ関数が自動生成されるため、型安全なデータアクセスが実現します。

自動生成されるもの:

  • TypeScript型定義(モデルの型、クエリ・ミューテーションの引数/戻り値)
  • CRUD操作のクライアント関数(list / get / create / update / delete)
  • リアルタイムサブスクリプションのフック(React向け)

モデル定義に authorization を追加するだけで、所有者ベース・グループベース・パブリックなどのアクセス制御を細かく設定できます。

Lambda関数との連携パターン

GraphQLだけでは対応できない複雑なビジネスロジックはLambda関数と連携します。

  1. AppSync Resolver from Lambda: GraphQLクエリのリゾルバーにLambda関数を指定
  2. Event-driven処理: DynamoDB StreamsとLambdaを組み合わせた非同期処理
  3. REST API: API GatewayとLambdaによるREST APIをAmplify配下で管理
  4. バッチ処理: SQSとLambdaを使ったキューイング処理

詳しいLambda連携パターンは AWS Lambdaサーバーレスガイド で解説しています。


ストレージとファイル管理(S3)

ファイルアップロードUIの実装

Amplify StorageはS3をバックエンドとしたファイル管理機能を提供します。@aws-amplify/ui-react-storage パッケージを使えば、ドラッグ&ドロップ対応のファイルアップローダーをコンポーネント一つで実装できます。

StorageManagerコンポーネントの主な機能:

  • マルチファイルアップロード(並列処理対応)
  • アップロード進捗のリアルタイム表示
  • ファイルタイプ・サイズのバリデーション
  • アップロード前のファイルプレビュー表示
  • 画像のリサイズ・圧縮処理(オプション)

アクセス制御と署名付きURL

S3ファイルへのアクセスは、3段階のアクセスレベルで細かく制御できます。

アクセスレベル用途URL有効期限
guest公開コンテンツ(画像・PDF等)無期限
protected他のユーザーも参照可能なファイル署名付きURL
privateアップロードしたユーザーのみ署名付きURL(デフォルト15分)

機密ファイルの共有には署名付きURLを生成し、有効期限を設定することでセキュアなファイル共有が実現します。詳細は AWS S3ストレージガイド をご参照ください。


ホスティングとCI/CD

Amplify Hostingの設定

Amplify Hostingは、フロントエンドアプリのビルド・デプロイ・CDN配信を一元管理するサービスです。

対応するホスティング形式:

  • SSG(静的サイト生成): Next.js / Gatsby / Astro等
  • SSR(サーバーサイドレンダリング): Next.js App Router対応
  • SPA(シングルページアプリ): React / Vue / Angular

CloudFront CDN経由で全世界に配信されるため、高いパフォーマンスと可用性を確保できます。カスタムドメイン・SSL証明書の自動発行も標準で対応しています。

ブランチ別環境の自動デプロイ

ブランチ戦略の推奨例:

  • main → 本番環境(production)
  • staging → ステージング環境(動作確認用)
  • develop → 開発環境(最新変更の確認)
  • feature/* → プレビュー環境(PRごとに自動生成)

GitHubリポジトリとAmplify Hostingを接続すると、ブランチへのプッシュをトリガーに自動でビルド・デプロイが走ります。PRごとにプレビュー環境URLが自動生成されるため、レビュアーがブランチをローカルに取り込まなくても動作確認できます。


SES案件でAmplifyスキルを活かすには

需要の高い案件パターン

AWS Amplifyのスキルは、以下のような案件で特に重宝されます。

  1. スタートアップのMVP開発: 短期間でフルスタックアプリを構築するニーズに最適
  2. 社内ツール開発: 認証付きの管理画面やダッシュボードを低コストで実装
  3. モバイルアプリのバックエンド: React Native + Amplifyによるクロスプラットフォーム開発
  4. メディア・コンテンツサービス: S3+CloudFrontを使った大容量コンテンツ配信
  5. EC・予約システム: Cognitoで認証、AppSyncでリアルタイム在庫管理

特に「フロントエンドエンジニアだがバックエンドも触れる」という人材は、Amplifyスキルを軸にフルスタックポジションへのシフトが狙いやすくなっています。

スキルシートへの記載例

SES案件の商談では、Amplifyの経験を具体的に記載することが重要です。

スキルシート記載例:

  • AWS Amplify Gen2を使用したフルスタックSaaS開発(6ヶ月)
    • Amazon Cognito(Google/Apple SSO、MFA対応)実装
    • AWS AppSync(GraphQL API)のスキーマ設計と自動型生成
    • Amazon S3を使ったマルチメディアファイル管理機能実装
    • Amplify Hosting + GitHub Actions によるCI/CD構築
    • 使用技術: TypeScript / Next.js / Amplify Gen2 / React

「AWS経験あり」と記載するより、具体的なサービス名・期間・実装内容を記載することで、案件マッチング率が大きく向上します。


まとめ

AWS Amplify Gen2によるフルスタック開発のポイントをまとめます。

  • TypeScript-first: バックエンドをコードで定義することで型安全性とgit管理を実現
  • Sandbox開発: クラウドリソースをローカル変更に連動させた高速な開発体験
  • 認証: Cognitoによるソーシャルログイン・MFA・カスタムフローを簡単実装
  • API: AppSync GraphQLで型安全なデータアクセスとリアルタイム通信
  • ストレージ: S3のアクセス制御と署名付きURLで安全なファイル管理
  • CI/CD: ブランチ連動デプロイとプレビュー環境で開発速度を向上

Amplifyはフロントエンドエンジニアがフルスタックに踏み出す最良の入り口です。SES案件でも需要が高く、スキルを持つことで案件の幅と単価を広げられます。

AWSスキルを持つエンジニアを探しているなら

AWS Amplify・Cognito・AppSync・Lambdaなどのスキルを持つフルスタックエンジニアをSES案件でお探しの方は、ぜひ SES BASE をご活用ください。AWSスキルシートを保有するエンジニアとのマッチングを迅速にサポートします。

SES案件をお探しですか?

SES記事をもっと読む →
🏗️

SES BASE 編集長

SES業界歴10年以上のメンバーが在籍する編集チーム。SES企業での営業・エンジニア経験、フリーランス独立経験を持つメンバーが、業界のリアルな情報をお届けします。

📊 業界データに基づく記事制作 🔍 IPA・経済産業省データ参照 💼 SES実務経験者が執筆・監修