AWS で Web サイトを公開するまでの全体像
「作ったものをインターネットに出す」ために必要な知識を、AWS を例に整理します。サービスの種類、無料枠、最小構成での公開手順、料金で失敗しないための設定まで。
更新日:2026-09-25
この記事で分かること
- 「公開する」とは技術的に何をすることか
- AWS のよく使うサービスと、それぞれの役割
- お金をほとんどかけずに公開する構成
- 静的サイト(HTML/CSS/JS)を実際に公開する手順
- 料金で失敗しないための、最初にやる設定
所要時間は読むだけなら 40 分、手を動かすなら 90 分です。
「公開する」とは
ここまで作ったページは、あなたのパソコンの中にあります。他の人が見るには、インターネットにつながっていて、24 時間動いているコンピュータ にファイルを置く必要があります。そのコンピュータを貸してくれるのが、AWS(Amazon Web Services)のようなクラウドサービスです。
公開に必要なものは、大きく3つです。
- ファイルを置く場所(サーバー、またはストレージ)
- 住所(ドメイン:
example.comのような名前) - 鍵(HTTPS の証明書:ブラウザの鍵マーク)
AWS のよく使うサービス
AWS には 200 以上のサービスがありますが、最初に知っておくべきものは少数です。
| サービス | 役割 | たとえると |
|---|---|---|
| S3 | ファイル置き場。HTML や画像をそのまま公開できる | 倉庫 |
| CloudFront | 世界中の拠点からファイルを高速配信。HTTPS もここで | 配送センター |
| Lambda | プログラムを「必要なときだけ」実行。サーバーの管理不要 | 呼んだら来るアルバイト |
| EC2 | 仮想のパソコンを借りる。何でも入れられる | 一室を借りる |
| RDS | データベース(MySQL など)を管理してくれる | 金庫つきの帳簿係 |
| Route 53 | ドメインの管理(住所録) | 郵便局 |
| ACM | HTTPS の証明書を無料で発行 | 鍵屋 |
| IAM | 誰が何をしていいかの権限管理 | 警備室 |
お金をかけない構成
AWS は「使った分だけ支払う」しくみで、無料枠 があります。
- 静的サイト(HTML/CSS/JS だけ):S3 + CloudFront。月に数十万アクセスあっても、ほぼ0円。
- 簡単なサーバー処理(フォームの受信など):Lambda。月 100 万回の実行まで無料。
- Laravel のようなアプリ:EC2 か、コンテナ(ECS)。EC2 は 12 か月の無料枠のあと、最小サイズで月 1,000〜2,000 円程度。
最初は 静的サイト + Lambda の構成をおすすめします。管理するサーバーがなく、料金もほぼかかりません。実はこのスクールのサイト自体も、この構成で動いています。
手を動かす:静的サイトを S3 + CloudFront で公開する
前提:AWS アカウントを作成済み(クレジットカードの登録が必要です)。
1. S3 にバケットを作る
- AWS コンソールで「S3」を開き、「バケットを作成」
- 名前は世界で一意(例:
mysite-yamada-2026)。リージョンは「東京」 - 「パブリックアクセスをすべてブロック」は オンのまま(CloudFront 経由で公開するので、S3 自体は非公開でよい)
- 作成したら、
index.htmlやstyle.cssをアップロード
2. CloudFront でディストリビューションを作る
- 「CloudFront」→「ディストリビューションを作成」
- オリジン:先ほどの S3 バケットを選択
- 「オリジンアクセス」→「Origin access control settings(OAC)」を選び、新規作成。表示されるバケットポリシーを S3 に貼る
- 「デフォルトルートオブジェクト」に
index.html - 作成。10 分ほど待つと
xxxx.cloudfront.netの URL で見られます
これで、世界中から HTTPS で見られる状態になりました。
3. 独自ドメインをつける(任意)
- ドメインを取得(Route 53、またはお名前.com などの業者。年 1,000〜2,000 円)
- 「ACM」(必ずバージニア北部リージョン)で証明書を発行。DNS 検証で表示されるレコードをドメインの設定に追加
- CloudFront の設定で「代替ドメイン名」に取得したドメイン、証明書に発行したものを指定
- ドメインの DNS で、CNAME を
xxxx.cloudfront.netに向ける
「ACM はバージニア北部で」は、CloudFront を使うときの決まりです。東京で発行すると CloudFront で選べないので注意してください。
Lambda でフォームを受け取る(概要)
「お問い合わせフォームの内容をメールで受け取りたい」のような処理は、Lambda で書きます。
- Lambda 関数を作成(ランタイムは Node.js か Python)
- 「関数 URL」を有効にすると、
https://xxxx.lambda-url.ap-northeast-1.on.aws/のような URL で呼べる - ページの JavaScript から
fetchでその URL に POST - Lambda の中で内容を確認し、SNS(メール通知)や DynamoDB(保存)に渡す
サーバーを立てず、使ったときだけ数ミリ秒ぶんの料金がかかる、という考え方です。この構成に慣れると、月 0 円でかなりのことができます。
料金で失敗しないために、最初にやること
AWS で一番多い失敗は「気づかないうちに課金されていた」です。アカウントを作ったら、サイトを公開する前に 次の3つを設定してください。
- 予算アラート:「Billing」→「Budgets」で、月 500 円を超えたらメールが来るように設定
- MFA(二段階認証):ルートユーザーに必ず設定。乗っ取られると高額請求につながります
- ルートユーザーを日常で使わない:IAM で作業用ユーザーを作り、普段はそちらでログイン
また、練習で作ったもの(特に EC2、RDS、NAT ゲートウェイ)は、使い終わったら 必ず削除 します。「停止」ではなく「削除(終了)」です。
AI と一緒に進めるコツ
AWS の設定は画面が多く、手順が変わることもあります。AI に頼むなら、次のように やりたいことと制約 を伝えます。
静的サイト(index.html と style.css)を AWS で公開したい。
S3 + CloudFront、OAC で S3 は非公開のまま。独自ドメインはまだ使わない。
AWS CLI でのコマンド手順を、順番に説明して。各コマンドが何をするかも一言ずつ。
さらに慣れてきたら、CDK や Terraform といった「設定をコードで書く」道具を使うと、AI との相性が抜群によくなります。設定画面をクリックする代わりに、コードを書いて deploy するだけで環境ができます。
やってみよう
- 予算アラートと MFA を設定する(これだけは必ず)。
- 自己紹介ページを S3 + CloudFront で公開し、スマホから開いてみる。
- 公開した URL を友人に送って、感想をもらう。
3つ目は技術ではありませんが、「人に見せる」経験が次の学習の原動力になります。
つまずきやすいところ
- CloudFront の URL で Access Denied → OAC のバケットポリシーが S3 に貼られていない、または
index.htmlの名前違い。 - 更新したのに古いまま → CloudFront のキャッシュ。「キャッシュ削除(Invalidation)」で
/*を指定。 - 証明書が CloudFront で選べない → バージニア北部で発行していない。
- 請求が来た → EC2 や RDS の消し忘れが大半。「Billing」で内訳を確認。
まとめ
- 公開に必要なのは「置き場所・住所・鍵」。
- 静的サイトは S3 + CloudFront でほぼ0円。処理は Lambda。
- ACM はバージニア北部。キャッシュは Invalidation。
- 公開する前に、予算アラートと MFA。
次は「つまずいたときの調べ方・質問のしかた」です。ここまでの学習で必ず出てくる「わからない」を、自力で突破する方法をまとめます。