AWSで個人ブログを立ち上げた話 〜Route53・ACM・CloudFront・S3・Terraform・GitHub Actionsまで〜
はじめに
AWSエンジニア(Jr)の備忘録として、個人ブログサイトをAWSのサービスだけで構築した。 ドメイン取得からインフラのコード化、CI/CDでの自動デプロイまで一通りやってみたので、詰まったポイントも含めて記録しておく。
全体構成
最終的に出来上がった構成はこうなった。
ユーザー
↓
Route 53(ドメイン管理・DNS)
↓
CloudFront(CDN配信・HTTPS終端)
↓
S3(静的サイトホスティング)デプロイの自動化は以下の流れ。
ローカルでMarkdown記事を書く
↓ git push
GitHub Actions が起動
↓ Hugoでビルド
↓ OIDCでAWS認証
S3にアップロード
↓
CloudFrontキャッシュクリア
↓
本番反映使用した主なAWSサービスは以下の5つ。
- Route 53 — ドメイン取得・DNS管理
- ACM — SSL/TLS証明書(無料)
- S3 — 静的サイトのファイル置き場
- CloudFront — CDN配信・HTTPS化
- IAM(OIDC) — GitHub ActionsからAWSへの安全な認証
ドメイン取得とRoute 53
ドメインは お名前.com で seiyoudako.com を取得した。Route 53には自分でドメインを取得する機能もあるが、今回は既に持っていたお名前.comのドメインを使う形にしたので、Route 53側にはホストゾーンだけを作成し、お名前.com側のネームサーバー(NS)をRoute 53のものに向ける設定(NS委任)を行った。
NSの伝搬には多少時間がかかるが、完了すればRoute 53がそのドメインのDNSを管理できるようになる。