AWS S3とCloudFrontで静的ウェブサイトを公開する手順

AWS

自分への備忘録です。AWSのS3(Simple Storage Service)とCloudFrontを利用して、HTML、CSS、JavaScriptで作成された静的ウェブサイトを公開する手順を紹介します。

はじめに

S3は、高い耐久性とスケーラビリティを持つオブジェクトストレージサービスです。ウェブサイトのファイルをここに保存します。
CloudFrontは、コンテンツデリバリーネットワーク(CDN)サービスです。世界中に配置されたエッジサーバーにウェブサイトのコンテンツをキャッシュし、ユーザーに最も近い場所から高速に配信します。

この構成には以下のメリットがあります。

  • 高速な表示: CloudFrontのCDNにより、世界中のどこからでも高速にアクセスできます。
  • 高い可用性: S3の高い耐久性により、ファイルが失われるリスクが非常に低いです。
  • スケーラブル: アクセスが急増しても、自動的にスケールして対応します。
  • コスト効率: サーバーを常時稼働させる必要がなく、従量課金制のため低コストで運用できます。

手順

ステップ1:サンプルファイルの準備

まず、S3に保存するサンプルサイトのファイルを準備します。

  • index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>S3/CloudFront Test</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <h1>S3とCloudFrontからの配信テスト</h1>
    <p>このページは、AWS S3に保存され、CloudFrontを経由して配信されています。</p>
    <button id="myButton">クリックしてね</button>
    <script src="script.js"></script>
</body>
</html>
  • style.css
body {
    font-family: sans-serif;
    text-align: center;
    margin-top: 50px;
}

h1 {
    color: #333;
}

button {
    padding: 10px 20px;
    font-size: 16px;
    cursor: pointer;
}
  • script.js
document.getElementById('myButton').addEventListener('click', function() {
    alert('ボタンがクリックされました!');
});

ステップ2:S3バケットの作成と設定

次に、ウェブサイトのファイルを保存するためのS3バケットを作成します。

  1. AWSマネジメントコンソールにサインインし、サービス一覧から「S3」を選択します。
  2. バケットを作成」をクリックします。
  3. バケット名を決定します。バケット名は世界で一意である必要があります(例: my-static-website-yyyymmdd
  4. ブロックパブリックアクセス設定」で、「パブリックアクセスをすべてブロック」のチェックが入っていることを確認します。
  5. その他の設定はデフォルトのままで、「バケットを作成」をクリックします。

ステップ3:ファイルのアップロード

作成したバケットに、用意したサンプルのファイルをアップロードします。

  1. 作成したバケットを選択し、「アップロード」をクリックします。
  2. ローカルの website-files フォルダの中にある index.htmlstyle.cssscript.js の3つのファイルをアップロードします。「ファイルを追加」ボタンでファイルを選択するか、ファイルをドラッグ&ドロップしてください。
  3. アップロード」をクリックします。

ステップ3:CloudFrontディストリビューションの作成

次に、S3のコンテンツを配信するためのCloudFrontディストリビューションを作成します。

  1. AWSマネジメントコンソールで「CloudFront」を選択します。
  2. ディストリビューションを作成」をクリックします。
  3. Distribution name(例: staticSite)を入力し、「Next」ボタンをクリックします。
  4. Origin typeで「S3」を選択します。
  5. Origin内にある「Browser S3」を選択し、先ほど作成したS3を指定し、「Next」ボタンをクリックします。
  6. 今回はWAFを使用しないので、「セキュリティ保護を有効にしないでください」を選択し、「Next」ボタンをクリックします。
  7. 確認画面が表示されるので、「Create distribution」ボタンをクリックします。
  8. 作成された「ディストリビューション」をクリックし、一般タブの「設定」をクリックします。
  9. 「Default root object – optional」に「index.html」と入力し、「変更を保存」をクリックします。
  10. その後、「ディストリビューションドメイン名」に記載されたURLにアクセスすることで、先程S3にアップロードしたサンプルページを表示することが可能です。

まとめ

これで、S3とCloudFrontを利用した静的ウェブサイトの配信設定は完了です。この構成により、安全で高速、かつスケーラブルなウェブサイトを低コストで運用できます。

コメント

タイトルとURLをコピーしました