見出し画像

【AWS】 Amazon S3 でWebサイト公開してみた|1日1ハンズオン Day 29

こんにちは、ぽめら です。
本記事は1日1ハンズオン企画、第29回です!
今回は、静的Webサイトの公開方法を学ぶハンズオンをおこないます💻



1.はじめに

前回までは、AWSのコアなクラウドサービスからは少し外れて、AI搭載IDE(統合開発環境)のKiroチュートリアルを体験していました👻
AWSサービスにも触れられる内容となっているので、AIを活用したコーディングに興味のある方はぜひチャレンジしてみてください。

今回は、またAWSのクラウドコアサービスに触れていきたいと思います。
題材は「AWS Hands-on for Beginners - AWS 上で静的な Web サイトを公開しよう!」から「S3 の静的ホスティング機能を使ってみる」を選択。

え、なんでこれを選んだか?

…AIコーディングを学んだからには、開発してみたいじゃない?!せっかくクラウド練習するなら、公開も興味あるじゃない?!・:*+.\(( °ω° ))/.:+

という気持ちが芽生え、クラウドでの公開方法を学びたくなったからです😎

今日はその一歩目として、S3の静的ウェブホスティング機能(単純なWebサイトの公開方法)について学びます。

では、さっそく進めていきたいと思います。レッツハンズオン!


2.Amazon S3 でWebサイト公開してみた

一般的に Web サイトを公開するには、サーバーやWebサーバーソフト(Apache, Nginxなど)の設定が必要です。特に データベースとの連携ログイン機能 といった動的処理を持つリッチなWebサイトでは、これらの仕組みが必須になります。

しかし、「静的Webサイト」と呼ばれる HTML・CSS・JavaScript などのファイルをそのままブラウザに配信するだけのサイト なら、もっとシンプルな公開方法もあります(たとえば GitHub Pages を使うなど)。

その静的Webサイトを公開するための機能を提供しているのが、AWSのオブジェクトストレージサービス Amazon S3 です!

というわけで今回は、この S3 の機能のうち静的ウェブホスティングを使って、簡単なWebサイトをブラウザで確認できるようにするのが主目的です。


※ 静的Webサイトとは
「静的」というのは、サーバー側で動的に処理を行わず、用意したファイルをそのまま配信することを指します。逆にサーバー側での動作も加えると「動的」Webサイトと呼びます。

<特徴>
表示が速い。コストも安い。"会員登録"や"商品購入"などの機能は△。

※ Amazon S3 とは
「Amazon Simple Storage Service(S3)」は、AWS が提供するオブジェクトストレージサービスです。インターネット上にファイルを保存しておき、必要に応じて取り出したり公開したりできます。容量はほぼ無制限で、セキュリティや冗長化もAWSが担保。高い耐久性も特徴的。

<特徴>
耐久性が非常に高い。容量無制限。比較的安価。
静的Webサイトのホスティングにも対応。

・S3サービス紹介ページ

・S3ドキュメント


今回の主な流れは下記の通りです。

  • S3 バケットを作成

  • バケットポリシー(アクセス権)を設定

  • S3 バケットにファイルをアップロード

  • ブラウザで確認


2-1.S3 バケットを作成

さっそくS3 バケット(フォルダのようなもの)の作成から進めます。

① AWS コンソールで「S3」を検索

見慣れてきたコンソール検索画面

② 「バケットを作成」をクリック

画面右側オレンジ色のボタン

③ 各種設定をする
ハンズオン動画はさすがに5年も前のものなので、画面が色々変わっている。
バケットタイプは「汎用」のままでOK。バケット名は注意書きにもあるように、任意で世界中で一意(被りNG)になる必要あり。
あとはパブリック設定以外はデフォルトでOKです。

バケット名は要ユニーク名
パブリック公開にする(しないとブラウザで確認不可)

④ 「バケットを作成」をクリック
問題なければ「バケットを作成」をクリックでS3 バケット自体は作成完了!

問題なければ「バケットを作成」をクリック
無事作成完了!


2-2.バケットポリシー(アクセス権)を設定

先ほどS3 バケットを作成した際、パブリックにする設定をしました。
しかし、これだけで公開されたわけではありません。別途公開するための設定をしてあげる必要があります。

① 先ほど作成したバケット名をクリック

② 「プロパティ」>「静的ウェブサイトホスティング」を有効にする

「プロパティ」タブの最下層にあります。

一番下、「編集」をクリック
「有効にする」をクリック
静的ウェブサイトをホストする/インデックスドキュメントで「index.html」

③ 「変更を保存する」をクリック

無事静的ウェブホスティングの有効化は完了!

④ 「アクセス許可」>「バケットポリシー」を設定する
今回はハンズオン資料に"これをコピペするだけでOK"とかかれているものがあったのでそれをそのまま使用しました。

「アクセス許可」タブ
「編集」ボタンをクリックするとポリシーの入力画面が表示されます
※ResourceのXXXX部分は先ほど作成したバケット名を入力

⑤ 「変更を保存」をクリック

「正常に編集された」旨表示されればOK


2-3.バケットにファイルをアップロード

AWSの仕組みを使用したファイルアップロードをしたいところですが、今回は手動でファイルをアップロードしてみます。

① 「オブジェクト」>「アップロード」をクリック

「オブジェクト」タブ

② 反映したいファイルを反映する

ドラッグ&ドロップまたは「ファイルを追加」
追加されるとこんな感じ

③ 「アップロード」をクリック

「アップロード」ボタン
正常にアップロードされた


2-4.ブラウザで確認

ここまででくればあとは確認するだけ!
「プロパティ」>「静的ウェブサイトホスティング」の欄にある「バケットウェブサイトエンドポイント」URLをクリック。

先ほど有効化した静的ウェブサイトホスティング
公開された!!!

※ Special Thanks Kiro-san!
Hello Worldのindex.htmlはそのままだと味気なかったのと、せっかくKiro先生もいらっしゃるので、Kiro先生に作ってもらいました👻

"Appleをイメージしたindexをつくって"と無茶振りお願いした
爆速(数秒)で作ってくれた


Kiro先生のソース提供もあり、
無事素敵な公開体験の1歩目を踏み出せました✨:*+.\(( °ω° ))/.:+✨

今回のハンズオン「S3 の静的ホスティング機能を使ってみる」は以上です!


3.まとめ

今回は S3 の静的ウェブサイトホスティング機能を使用して、静的Webサイトの公開にチャレンジしました!

動的なアプリはもちろん、ランディングページといった静的Webサイトであってもいざ公開する時に"どうやって公開すればいいのか"は大きな壁だと思います。

しかし、S3 のようにファイルをアップするだけで簡単なサイト公開であれば可能な仕組みを利用すれば、壁を乗り越えやすくなりますよね!"とりあえずサイトの公開体験をしてみたい"という方におすすめのハンズオンでした。

※今回は学習目的なのでパブリック公開しています。本番サイトではCloudFrontや認証を組み合わせるのが一般的な様子。今後のハンズオンで私も実践してみたいと考えています。


というわけで今日はここまで!

ではまた明日👋


4.参考リンク

・AWS初心者向けハンズオン - AWS上で静的なWeb サイトを公開しよう!

・S3サービス紹介ページ

・S3ドキュメント

いいなと思ったら応援しよう!