今回は、このWebサイトを AWS Amplify を利用して実装したことについてお話しします。
結論から言うと、「個人開発や小規模な静的サイトなら、Amplify一択」と言えるほど、簡単かつセキュアに公開できました。
AWSでのWebサイト構築を検討している方の参考になれば幸いです。
主な利用サービス: AWS Amplify, Amazon Cognito
① なぜAmplifyを選んだのか?
AWSでWebサイトを公開しようとした場合、通常は以下のような選択肢が挙がるかと思います。
- EC2(Webサーバを自分で立てる)
- S3 + CloudFront(S3で静的ホスティングし、CDNで配信)
- S3のみ(静的ウェブサイトホスティング)
etc.
しかし、私の今回の要件は以下の通りでした。
- 低コストで運用したい
- インフラの維持・管理を楽にしたい
- 独自ドメインをSSL/TLS(https)で配信したい
- セキュリティは高く保ちたい
これらを最もシンプルに満たすのが AWS Amplify でした。
「S3静的ホスティング」はもう古い?
実は最近、AWSのマネジメントコンソールでS3の「静的ウェブサイトホスティング」設定画面を見ると、以下のような推奨メッセージが表示されるようになっています。

「静的ウェブサイトホスティングには AWS Amplify を使用することをお勧めします」
S3単体ではHTTPS化が手間だったり、CI/CD(自動デプロイ)の構築が必要だったりしますが、Amplifyならそれらが標準装備されています。
「AWSのベストプラクティスは、シンプル・イズ・ベスト」。不用意に複雑な構成にせず、推奨されているAmplifyを利用するのが最適解だと判断しました。
② AWS Amplifyについて
Amplifyをご存じない方のために、少し解説します。
▼公式サイト
https://aws.amazon.com/jp/amplify/
サービス概要
AWS Amplifyは、Webアプリケーションやモバイルアプリを「開発・構築・デプロイ・ホスティング」するための統合ツールセットです。
特に「Amplify Hosting」という機能を使えば、GitHubなどのリポジトリと連携するだけで、コードの変更を検知して自動的にビルド・公開(CI/CD)まで行ってくれます。
コスト
Amplify Hosting(静的サイト)の料金体系は非常にシンプルで安価です。
- ビルド料金: 1分あたり $0.01
- ストレージ料金: 1GBあたり $0.023 / 月
- データ転送量: 1GBあたり $0.15
個人サイト程度であれば、アクセスが爆発しない限り、月額数十円〜数百円、あるいはAWSの無料利用枠(最初の12ヶ月)の範囲内で収まることがほとんどです。
セキュリティ
マネージドサービスであるため、OSのパッチ当てなどのサーバー管理は不要です。
また、標準でSSL/TLS証明書が発行・更新されるため、何もしなくてもサイトはHTTPS化されます。さらに、AWS WAF(Web Application Firewall)との統合もワンクリックで可能で、SQLインジェクションなどの攻撃からサイトを守ることができます。
③ 実装の流れ
実装は驚くほど簡単です。画面ポチポチで進めるだけで、インフラ構築が完了します。
- ソースコードを管理: GitHubのリポジトリにWebサイトのコードをアップロード。
- Amplifyと接続: AWSコンソールで対象のリポジトリ(ブランチ)を選択。
- ビルド設定: 自動生成される設定を確認して「保存してデプロイ」。
- カスタムドメイン設定: 取得した独自ドメインを入力。
- DNS設定: 提示されたCNAMEレコードをDNSサーバに登録。
ある程度知識がある方なら、1時間もかからずに公開まで辿り着けると思います。(DNSの反映待ち時間を除けば実作業は数分です)
Gitにプッシュしたら勝手にサイトが更新されるので、個人サイトの運用としては助かります。
まとめ
いかがでしたでしょうか?
今回は触れませんでしたが、このサイトの管理者ページへのログイン認証には Amazon Cognito を使用しており、Amplifyと連携させることで簡単に実装できました。
Amplifyは便利ですが、従量課金のため「DDoS攻撃などでアクセスが急増したら料金が怖い」という懸念があります。
また、Amplifyには「一時停止」ボタンがなく、アプリを「削除」するか動かし続けるかの二択になりがちです。
そこで私は、「予算を超えそうになったら自動でサイトを非公開にする」仕組みを導入しようかなと思っていました。
- AWS Budgets で予算超過を監視
- アラートが出たら Amazon SNS へ通知
- SNSをトリガーに AWS Lambda が起動
- LambdaがAmplifyの設定を書き換え、サイト全体にBasic認証(パスワード制限)をかける
これにより、万が一の攻撃時でも、サイトを削除することなく、自動的に外部からのアクセス(データ転送)を遮断して課金を止めることができます。
当初は「CloudFront + S3 + API Gateway + Lambdaで最強の構成を作るぞ!」と意気込んでいましたが、個人サイトにはAmplifyが機能・コスト・手軽さのバランスにおいて最適解でした。
これからWebサイトを作る方は、ぜひAmplifyを選択肢に入れてみてください!
▼もしよろしければSNSのフォローもお願いします!
- X (旧Twitter): https://x.com/kit_engineer71
- LinkedIn: https://www.linkedin.com/in/kit_engineer/