0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWSアウトプット記録 #1】手軽にWebサイトを公開する方法! S3静的ウェブサイトホスティング

Posted at

挨拶

はじめまして! クラウドエンジニアを目指しているShowです!

前回はAWSアカウントの作成、IAMユーザーの作成、AWS Budgetsによる予算アラートの設定を行いました。

今回はS3の静的ウェブサイトホスティング機能を使ってWebサイトを公開します。

想定するお客さんからの要望

・簡単な企業の紹介ページを低コストで公開したい
・サイトはHTMLと画像だけのシンプルなもの
・サーバー管理などの面倒なことはしたくない

そんなときはS3の静的ウェブサイトホスティングが最適です。

なぜS3静的ウェブサイトホスティングなのか?

この要望を整理すると「低コスト・シンプル・サーバーレス」がキーワードになります。
そこで最適解となるのが S3の静的ウェブサイトホスティング です。

S3を選ぶメリットは以下の通りです。

  • 低コスト
    サーバーを常時稼働させる必要がなく、料金はストレージ代と転送料のみ。小規模サイトなら月数円〜数十円で運用可能。
     
  • サーバーレスで管理が不要
    EC2のようにOSのインストールなどをする必要がない。
    HTMLや画像をS3にアップロードするだけでサイトを公開できる。
     
  • 高可用性とスケーラビリティ
    S3はAWSが自動的に冗長化しており、障害に強い。急なアクセス増にも対応できる。
     
  • 公開がシンプル
    管理者がやることは「ファイルをアップロードして公開設定する」だけ。

事前準備1(index.htmlとstyles.cssの作成)

Chat GPTに企業のサイトの index.html と styles.css を書いてもらいました。
思った以上に良いものができて驚きました。

企業サイト.png

このサイトをS3にアップしていきます!

事前準備2(デフォルトのリージョンを東京(ap-northeast-1)に変更)

リージョンという単位で世界中にAWSは存在しています
これがデフォルトだと、東京になっていないので変更していきます
コンソール画面右上のから、東京を選択してください
2_S3.png

右上の表示が「アジアパシフィック(東京)」になっていることを確認してください
3_S3.png

S3の設定

  1. S3サービスにアクセス
    検索バーに「S3」と入力。検索結果が表示されたら、「S3」をクリック
    4_S3.png
     
  2. バケットを作成
    「バケットを作成」をクリック
    5_S3.png
     
  3. 各種設定

バケット作成時の設定例

今回、S3バケットを作成するときに私は以下のように設定しました。
6_S3.png
7_S3.png

一般的な設定

  • バケットタイプ:汎用
  • バケット名:sample-static-site(わかりやすいものでOK。ただしほかの人と名前が被っていると登録できない)

オブジェクト所有者

  • バケットタイプ:ACL 無効 (推奨)

ブロックパブリックアクセス

  • 「パブリックアクセスをすべてブロック」を選択

バケットのバージョニング

  • 「有効にする」にチェック

タグ(オプション)

  • 未設定

デフォルトの暗号化

  • Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE-S3)
  • 「バケットキー」は「有効にする」にチェック

各種設定が終わったら「バケットを作成」をクリック
作成されたことが通知される
8_S3.png


設定内容の評価

一般的な設定

  • 汎用:標準的なユースケースではこれで
  • バケット名:一意でわかりやすい命名を推奨

オブジェクト所有者

  • ACL 無効 (推奨):ACLは複雑化しやすいので無効化

ブロックパブリックアクセス

  • すべてブロック:CloudFront経由で公開するので、この設定

バージョニング

  • 有効化:ファイル更新時に過去バージョンを残せるので安心

タグ

  • 未設定:実務では「プロジェクト名」「担当者」「環境(dev/prod)」などタグ管理を行う

暗号化

  • SSE-S3(Amazon管理キー)+バケットキー有効:最小の手間でセキュリティを高める

S3にアップロードを開始

  1. S3コンソールで作成したバケットを選択
    8_S3.png
     
  2. オブジェクトをアップロード
    「アップロード」をクリック
    9_S3.png
     
  3. オブジェクトをアップロード
    • ローカルで作成した index.htmlstyles.css が入っているフォルダ website をアップロード
      10_S3.png

静的ウェブサイトホスティングを有効化

S3バケットを「静的ウェブサイト」として公開できるように設定します。

  1. バケットの詳細画面を開く
    S3の画面に戻り、「汎用バケット」をクリック
    11_S3.png

先ほど作成したバケットをクリック
12_S3.png

上部のタブから「プロパティ」を選択
13_S3.png
 
2. 「静的ウェブサイトホスティング」を探す
ページをスクロールして下の方にある「静的ウェブサイトホスティング」まで進み「編集」をクリック
14_S3.png
 
3. ホスティングを有効化

  • 「有効化」を選択

  • 「ホスティングタイプ」では 「静的ウェブサイトをホストする」 を選択

  • 「インデックスドキュメント」の欄に index.html を入力(このファイルが「トップページ」として表示される)

  • error.html を入力すると、存在しないページにアクセスされたときにそのHTMLが表示されます

    15_S3.png
    例:http://バケット名.s3-website-ap-northeast-1.amazonaws.com にアクセスすると、この index.html が返される)
     

  1. 「変更を保存」をクリックして設定完了
    16_S3.png

これでS3バケットが「Webサーバー」として動作し始めます。


料金

バケット作成・アップロードは無料(保存と通信でわずかな課金あり)


まとめと次回予告

今回は

  • バケット作成
  • ファイルアップロード
  • 静的ウェブサイトホスティングの有効化

をやっていきました!

しかしまだ外部からサイトを見られません
パブリックアクセスがブロック されているためです

パブリックアクセスを許可するとサイトを見られるようになりますが、セキュリティが危険です

次回は CloudFront を使用して、webサイトの安全に公開をしていきます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?