落ちこぼれエンジニアの憂鬱

個人的に気になるお金儲け、テック情報をわかりやすくお伝えします

AWS

AWS S3で公開したWebサイトは実はHTTPSにも対応していた

投稿日:

前回、AWS S3で静的なWebページを公開してみました。

<参考記事> AWS S3でWebサイト(静的ページ)を公開してみました

S3を使うことで、とってもお手軽にWebサイトを公開できたのですが、やってみると、以下のような課題が出てきました。

  • S3のStatic website hostingでは、HTTPアクセスのみとなり、HTTPSが使えない。
  • 公開するドメインがアマゾンの長いドメインになり、カッコ悪い。(アフィリエイトではSEO的に不利。)

S3で作ったWebページに独自ドメインを割り振ることで、これらの問題を解決できるのですが、その前にS3の標準URLではデフォルト設定でHTTPSが使えることがわかり、先にそっちを調べてみました。

S3では2通りのWeb公開方法がある

前回の記事で公開したS3のWebページ(Static website hosting機能)では、HTTPSアクセスできませんでした。

ただ、S3標準の公開URL(REST APIエンドポイント)では普通にHTTPSアクセスもできるのです。

 

前回、テスト用にS3にアップロードしたファイルをそのまま使って、確かめてみましょう。以下のURLにアクセスしてみてください。

REST APIエンドポイント

https://techrepo-s3.s3-ap-northeast-1.amazonaws.com/index.html

https://s3-ap-northeast-1.amazonaws.com/techrepo-s3/img/jump.jpg

きちんと、HTTPSでアクセスできていることがわかります。

※REST APIエンドポイントのURLは上記のように2つの形式(バケット名「techrepo-s3」をサブドメインにする、バケット名techrepo-s3」をディレクトリにする)でアクセスできます。

 

ちなみに、前回やったウェブサイトエンドポイントはこちらです。

ウェブサイトエンドポイント(Static website hosting機能)

http://techrepo-s3.s3-website-ap-northeast-1.amazonaws.com/index.html

http://techrepo-s3.s3-website-ap-northeast-1.amazonaws.com/img/jump.jpg

 

もともと、HTTPSでアクセスできるなら、REST APIエンドポイントの方がいいじゃん。となるのですが、当然、わざわざウェブサイト機能を設定する理由もあるのです。

S3の「REST APIエンドポイント」と「ウェブサイトエンドポイント」の違い

それでは、この2つのエンドポイントの違いは何かというと、公式ページにちゃんと記載がありました。

<参考> Amazon ウェブサイトと REST API エンドポイントの主な違い

主な違い REST API エンドポイント ウェブサイトエンドポイント
アクセスコントロール パブリックコンテンツとプライベートコンテンツの両方をサポートします。 公開で読み取り可能なコンテンツのみをサポートします。
エラーメッセージの処理 XML 形式のエラーレスポンスを返します。 HTML ドキュメントを返します。
リダイレクトのサポート 該当しません オブジェクトレベルとバケットレベルの両方のリダイレクトをサポートします。
サポートされるリクエスト バケットおよびオブジェクトのすべてのオペレーションをサポートします。 オブジェクトに対しては GET リクエストと HEAD リクエストのみサポートします。
バケットのルートでの GET リクエストと HEAD リクエストにレスポンスします。 バケット内のオブジェクトキーのリストを返します。 ウェブサイト設定の中で指定されているインデックスドキュメントを返します。
Secure Sockets Layer (SSL) のサポート SSL 接続をサポートします。 SSL 接続をサポートしません。

この説明によると、ウェブサイト機能を使うことで、エラーページの扱いと、リダイレクトが使えるようになるらしいです。

これだけしか違いがないの?って感じですが、もう少し、詳しくみていきましょう。

エラーページの違い

これについては実際にエラーを起こしてみると、その違いが一目瞭然です。

試しに、S3にアップロードしていないファイルにアクセスしてみましょう。

ちなみに、普通のWebサイトで存在しないページにアクセスすると、HTTP Statusが404でエラーページがレスポンスされます。

REST APIエンドポイント

https://techrepo-s3.s3-ap-northeast-1.amazonaws.com/not-found-page

<Error>
<Code>AccessDenied</Code>
<Message>Access <span style="font-size: 120%;">Denied</Message>
<RequestId>95B8D2AD62759BF2</RequestId>
<HostId>
scGhVV3a38zcFpf/Ty2BKvyt0qrn4vuzKFHt0g34bz5Rjs9g8n/jLUp1L/DRsaS8qppXS53uI+g=
</HostId>
</Error>

REST APIというだけあって、XML形式でアクセス権がないことがレスされます。

ウェブサイトエンドポイント

http://techrepo-s3.s3-website-ap-northeast-1.amazonaws.com/not-found-page

<!DOCTYPE html>
<html lang="ja">
<head>
		<meta charset="UTF-8">
		<title>テックレポS3ホスティングテスト</title>
</head>
<body>
404 Not Found.
</body>
</html>

 

こちらは予め設定していたエラーページが表示されます。

ただ、エラーページと言っても、静的なページでは404エラーぐらいしか普通は発生しない気がします。

その404エラーも、きちんとWebサイトを作っていれば、通常操作で表示されることは無いエラーです。

単純なサイトではその他エラーも出ることはないので、このエラーページの違いは個人サイトではあまり気にしなくてもいいかもです。

リダイレクト機能

これは、前回の記事でもやったのですが、ドメインのルートにアクセスしたとき、予め設定したトップページにリダイレクトする、といった機能です。

その他にも、ウェブサイトエンドポイントでは特定ページにアクセスした場合、任意リダイレクト設定ができます。

前回、S3のStatic website hosting設定画面でリダイレクトルールが設定できます。

試しに、以下のように設定すると、404エラーが発生した際、notfound.htmlページにリダイレクトできます。

<RoutingRules>
  <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyWith>notfound.html</ReplaceKeyWith>
    </Redirect>
  </RoutingRule>
</RoutingRules>

 

このリダイレクト機能を使えば、フォルダーを移動した場合などにエラーにならずにすみます。

細かいリダイレクトルールについては、AWSの公式サイトに詳しく書かれているので、使って見たい人はこちらを参照ください。

<参考ページ> (オプション) ウェブページリダイレクトの設定

まとめ

ということで、REST APIエンドポイントを使えば、何もしなくてもHTTPSに対応できていたことがわかりました。

エラーページがXMLで表示されるなど、若干イマイチな点もありますが、ちょこっと個人的なWebサイトを公開する分には十分ではないでしょうか。

Google様がWebサイトのHTTPS化を強力に推進しており、最新ChromeでHTTPのサイトにアクセスすると「保護されていない通信」と警告が常時表示されるようになっております。

このため、最近のWebページではHTTPSは必須要件のようになっています。

 

「CloudFront」を使えば、アマゾン発行のSSL証明書を使って、ウェブサイトエンドポイントでもHTTPS化はできるそうなので、次こそは、そのあたりをやってみたいと思います。

-AWS
-

関連記事

AWS S3でWebサイト(静的ページ)を公開してみました

このブログでも、しょうもないビットコインやアフィリエイトの運用益の話ばかりでなく、そろそろテック系のネタで頑張ってみたいと、考えていたところ、思い出しました。 そういえば、去年のクリスマス時期のAWS …

サイト内の検索

管理人の「スノーホーク」です。

ムーミン谷の「スナフキン」や、北斗の拳の「雲のジュウザ」のように、シガラミにとらわれず、飄々と生きることを日々目標にしています。

少し前、務めている会社が経営破たん寸前まで追い込まれ、リストラの嵐に遭遇しました。

知り合いがたくさん辞めていく中、個人的には首を切られるところまではいかなかったのですが、あとちょっとで会社が潰れるところでした。

それまで、特に転職などは考えていなかったのですが、必然的に会社が潰れた後、どうやって生きていくかをを真剣に考えるようになりました。

そんな背景もあって、まずは会社以外の収入源確保のためとスキルアップも兼ねて、アフィリエイトを始めたのが4年前です。

ラッキーにも、2年でソコソコの収入を得るまでになったのですが、Google様の逆鱗にふれ、下降曲線まっしぐらです。

詳細は以下の記事に詳しく書いておりますので、よかったら読んであげてください。

《ご参考》 アフィリ初心者のご参考にアフィリエイトサイト運用歴を公開-諦めたらそこで終わりです

 

このブログサイトでは、アフィリ以外にも投資やネットのテック情報について、忘備録も兼ねてまとめてます。