Created: 2023/12/09

個人ブログの仕組みをAWSのサーバーレスのサービスで再構築してみました

自分のサービスを今後サーバーレスで作るために、自分のブログを構築してみました。
今回、やってみて苦労した点や技術構成などを書き出してみようと思います。
スキルアップになったのと、夢中で楽しめて本当によかったです。

苦労したこと

  • CDKでインフラ構築した際にLambda@Edgeは「us-east-1」で構築する必要があったが、「DynamoDB」「AppSync」などは「ap-northeast-1」で構築する必要があったため、リージョン間でリソースを参照する必要があった
  • AWS CDK公式の機能でACMとCloudFrontのクロスリージョン参照を実装するでちょうどその機能が仕様できるようなったため、こちらの機能を使うことで解決できました
  • Lambda@Edgeは画像のリサイズに使用していますが自分の使っているマシンがarm64 Macだったため、Linuxのamd64仕様にpackage.json.lockを更新できなかったため、Dockerでエミュレートして追記した
  • SEOを意識するため、Next.jsでSSR対応させてみました

バックエンドAPIの構成

  • 管理者アカウントをCognitoで管理
  • ブログ記事はDynamoDBに保存
  • ブログ記事のCRUDはAppSyncで作成
  • アップした記事画像はCloudFrontからLambda@Edge経由で参照
  • 上記のインフラはCDKで構築

フロントエンドの構成

  • Next.js13で構築
  • 元々はVercelだったのですがAmplifyに変更してみました

感想

サーバーレスで構築したおかげでランニングコストがほとんどかからず運用できることに感動しました。
今回、CDKで仕組みを構築したので他の技術にも応用しやすくてとても気に入っています。
CDKは本当に楽しくて大好きです!