クラウドインフラエンジニア
GitHub Pages × API Gateway × Lambda
このプロジェクトは、GitHub Pages でホストされたフロントエンドから、AWS API Gateway(HTTP API)を通じて Lambda 関数を呼び出す構成です。すべての通信はカスタムドメインを使用し、HTTPS証明書は ACM によって管理されています。
Lambda構成図

🧩 使用技術・サービス
| 種類 | サービス | 備考 |
|---|---|---|
| フロントエンド | GitHub Pages | カスタムドメイン設定済み |
| バックエンド | AWS API Gateway(HTTP API) | Lambda統合 |
| 実行処理 | AWS Lambda | IAMロールで権限管理 |
| ログ管理 | Amazon CloudWatch Logs | Lambdaの実行ログを出力・監視 |
| ドメイン管理 | Route53 | CNAMEレコードでドメイン紐づけ |
| 証明書管理 | AWS ACM(ap-northeast-1) | DNS検証で証明書発行 |
| 認証 | DNS検証(CNAME) | ACMが提示するレコードをRoute53に登録 |
| 通信 | HTTPS(Fetch) | CORS対応済み |
🛠️ 構築手順
- IAMロール作成
- Lambda用の実行ロールを作成
- CloudWatch Logs など必要な権限を付与
- Lambda関数作成
- 実行ロールを紐づけ
- API Gatewayから呼び出す処理を実装
- CloudWatch Logsへの出力を有効化(
console.log()などでログ記録)
- Route53ホストゾーン確認
example.comのホストゾーンが存在することを確認- なければ新規作成
- ACMで証明書リクエスト
- リージョン:
ap-northeast-1 - ドメイン名:
example.com,*.example.com - 検証方法:DNS検証(CNAME)
- リージョン:
- Route53にCNAMEレコード登録
- ACMが提示するCNAMEをRoute53に登録
- 検証成功後、証明書が有効化される
- API GatewayでHTTP API作成
- Lambda関数を統合
- 必要なルートとステージを設定
- CORS対応を設定
- API Gatewayでカスタムドメイン作成
- ドメイン名:
api.example.com - 証明書:ACMで発行したものを選択
- エンドポイントタイプ:REGIONAL
- APIマッピング:HTTP APIとステージを紐づけ
- ドメイン名:
- Route53にCNAMEレコード登録(API Gateway用)
api.example.com→ API Gatewayが提示する Regional ドメイン名をCNAMEで登録
- GitHub PagesからFetch通信
- 例:
fetch("https://api.example.com/endpoint") - CORSが正しく設定されていれば通信可能
- 例:
📌 補足
- ACM証明書は
ap-northeast-1で発行(HTTP APIに対応) - DNS検証は ACM → Route53 の順で登録
- API GatewayのカスタムドメインはRegional エンドポイントで直接提供される
- CORS設定は Lambda または API Gateway レベルで対応
- CI/CD構成は別途まとめています
🎯 ポートフォリオとしての意義
この構成は以下のスキルを示すことができます:
- 静的サイトとAPI連携の理解
- AWSサービスの連携(Lambda, API Gateway, ACM, Route53)
- HTTPS証明書とDNS検証の知識
- インフラ構成の設計力
- セキュリティ(IAMロール)への配慮
🔗 今後の拡張予定
- CI/CDパイプラインの構築(GitHub Actions × AWS)
- Lambdaの処理内容の拡張
- API Gatewayのステージ管理とバージョニング
🔗 この構成のGitHub Repositoryはこちら → lambda-ses