Azure Storage Accountの静的なWebサイト機能とFrontDoorを組み合わせて利用してみた

目次

1.はじめに

2.ストレージアカウントの静的なWebサイト機能とは

3.構成について

4.ストレージアカウントの作成

5.FrontDoorの作成

6.おわりに

 

1.はじめに

皆さんはストレージアカウントを使用することで、静的なWebサイトを公開することができることを御存知でしょうか。

ストレージアカウントには「静的なWebサイト」機能があり、これを有効化することで、Webサイトとして運用することができます。

今回はAzureストレージアカウントの静的なWebサイト機能と、FrontDoorを組み合わせた構成で、Webサイトを公開してみたいと思います。

 

2.ストレージアカウントの静的なWebサイト機能とは

今回の目玉、ストレージアカウントの静的なWebサイト機能ですが、なんとこれ、ストレージアカウントにHTMLファイルなどを置くだけで、Webサイトを表示してくれるという便利な機能です。

1点だけ注意点があるとすれば、あくまで「静的な」となりますので、サーバ処理が必要なWebサイト、通販サイトなどは作成できず、会社のホームページなどの静的なものに限られます。

ただ、一つのWebページだけではなく、他のWebページのHTMLファイルなども入れることで、Webページの遷移も可能なので、表示させるだけのWebサイトであれば、これだけでも十分実現可能です。

それでは構成の方に入っていきましょう。

 

3.構成について

今回は以下構成となります。

 

今回作成するのは以下サービスとなります。

・ストレージアカウント

・AzureFrontDoor

 

なお、ストレージアカウントの静的なWebサイト機能では、カスタムドメインを直接設定した場合のHTTPS通信に制約があるため、

FrontDoorを経由させることで、カスタムドメインによるHtttps通信を実現する予定でしたが、

カスタムドメインの取得に時間がかかったため、カスタムドメイン構成は今回行わないこととしました。

そのため、実際FrontDoorはWebサイトを公開するだけであれば不要ですが、もし今後カスタムドメインに切り替える想定がある場合は、

FrontDoorを構成して作成することをおすすめいたします。

それではストレージアカウントの作成から移っていきます。

 

4.ストレージアカウントの作成

それではまずストレージアカウントを作成していきます。

といってもほぼ既定で作成します。

まず[基本]ですが、今回は検証のため、リソースグループを検証用のグループとしている(検証後一括で削除可能なように)のと、ストレージアカウント名は自由につけていただき、

あとは冗長性は検証の為、一番コストの安いLRSに変更しています。

 

他は全て既定で作成します。

完了後、作成したストレージアカウントを開き、[データ管理]>[静的なWebサイト]を開きます。

 

現在は「無効」となっていますので、これを「有効」へ変更します。

 

すると、「インデックスドキュメント」「エラードキュメント」という設定項目が出現します。

インデックスドキュメントは、この静的なWebサイト機能のURLをたたいた際に最初に表示される既定のページ、エラードキュメントはその名の通りエラー画面のページをそれぞれ入れます。

今回はインデックスドキュメント、エラードキュメントともにHTMLファイルの名称が決まっているため、インデックスドキュメントには「start.HTML」、エラードキュメントには「error.HTML」というファイル名を入れています。

 

プライマリエンドポイントのURLだけコピーして保持しておき、次はBlobストレージの$webにWebサイト用のファイルを入れていきましょう。

ストレージアカウントの[データストレージ]>[コンテナー]内に、ストレージアカウントが作成された際に作成される「$logs」ともう一つ、「$web」があることがわかります。

 

この「$web」はストレージアカウントの静的なWebサイト機能を有効にすることで、自動的に作成されます。

ではこの中に今回はHTMLファイルを入れます。

blobのアップロードにて、ファイルを入れます。

 

以下3つのファイルを入れています。

・start.html

・next.html

・error.html

start.htmlは先ほど静的なWebサイト機能でインデックスドキュメント名に指定したファイル、next.htmlはstart.htmlから遷移できる別のページです。

error.htmlはエラードキュメントのパスで表示する予定のファイルです。

 

それでは、まずはこのファイルが正しく表示されるか、先ほどコピーしたプライマリエンドポイントのURLをEdge上で打って確認したいと思います。

 

はい、そうすると、文字化けが起こっていました。

これはHTMLファイルにて日本語指定やUTC-8を設定しなかったため発生しました。

それでは気を取り直して、ファイルを編集して再度アップロード後、確認してみます。

 

今度はうまくいきました。

遷移先の「ブログ一覧へ」がnext.htmlへつながっているのですが、こちらもどうでしょうか。

 

正常に遷移しました。

上記のように、ストレージアカウントの静的なWebサイト機能だけでも、URLを打てば表示させることができます。

それでは、この後はFrontdoorの作成及びストレージアカウントへの紐づけを行います。

 

5.FrontDoorの作成

それではFrontDoorの作成をしていきます。

今回は検証の為、PreimiumではなくStandardで作成をしていきます。

また、オプションも簡易作成としていますが、こちらはお好きな方をご選択ください(今回はストレージアカウント一つだけの紐づけなので、簡易作成としています)。

 

作成を進め、基本の情報のところに入りました。

ここでFrontDoorの名前、レベル、またエンドポイントの名前などを設定します。

エンドポイントの名前は、カスタムドメインを持たずに行う場合、URLに入る名前となりますので、お好きなものをお付けください。

また、ここで「配信元の種類」があるため、「ストレージ(静的Webサイト)」を選択します。

配信元を選択すると、配信元のホスト名も自動で入るため、そのまま作成画面に移ります。

 

作成が完了したので、「配信元グループ」と「ルート」の確認を行います。

ただ、配信元グループについては配信元の指定を行っており、またルートについても作成時に自動で作成されます。

(配信元グループ)

 

(ルート)

 

カスタムドメインなどを設定される方は、AzureDNSゾーンへの登録、FrontDoorの「ドメイン」へのカスタムドメインの登録などが必要となりますが、

今回はカスタムドメイン登録は行わないため、これでFrontDoorの構成完了となります。

それでは、FrontDoorの概要画面の「エンドポイントのホスト名」にある「○○azurefd.net」をコピーし、https://を付けて検索してみましょう。

 

検索をすると、以下のようにページが正しく表示されました。

 

上のパスを見ていただければわかるかと思いますが、これは「azurefd.net」なので、FrontDoor経由でストレージアカウントのページを見ていることになります。

 

ちゃんと次のページの遷移もうまくいっています。

 

6.おわりに

いかがだったでしょうか。

今回はストレージアカウントの静的なWebサイト機能とFrontDoorを用いて、Webサイトの表示を行いました。当初はカスタムドメインのhttps接続をするためにFrontDoorを設定しようと思っていたのですが、無料ドメインサイトno-ipのドメインではTXTレコードをもう一つ追加できず(1つまでしか無料ではない)、断念しました。

次回があればカスタムドメインを使用して行ってみたいですね。

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください