🚀 Serverless Portfolio Lab
このサイトは AWS サーバレス + IaC + CI/CD で運用される、フリーランス・インフラエンジニアのポートフォリオ基盤です。
📖 このサイトの構築解説書(AWS 初心者向け詳細ガイド)
構成
- 静的ホスティング:
S3 (private bucket)
- CDN + TLS 終端:
CloudFront + ACM
- S3 アクセス制御:
OAC (Origin Access Control)
- API:
API Gateway HTTP API + Lambda (Node.js 20 / arm64)
- データ:
DynamoDB (On-demand)
- メール:
SES
- DNS:
Squarespace + CNAME 委譲
- IaC:
Terraform with S3 backend + DynamoDB Lock
- CI/CD:
GitHub Actions + OIDC AssumeRole(静的キーレス)
採用されている設計判断
- OIDC でアクセスキーを排除 → Secrets 漏洩リスクが構造的に存在しない
- IAM Role の Trust Policy で
iigtn/iigtn-platform の main ブランチのみ AssumeRole 許可
- Permissions Policy はデプロイ先バケット 1 個 + Distribution 1 個に限定
- S3 は Public Access Block 全 ON、暗号化 (AES256)、バージョニング ON
- CloudFront は HTTP→HTTPS 強制、TLS 1.2 以上、SecurityHeaders 自動付与
- DynamoDB の PK は UUID、PII (email) を主キーにしない
- Lambda は arm64 + 256MB + ハンドラ外でクライアント初期化 (cold start 短縮)
Contact
問い合わせフォームのテストです。送信内容は DynamoDB に保存され、SES でメール通知されます。
Built with Terraform & GitHub Actions — github.com/iigtn/iigtn-platform