Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

GitHub CopilotにAzureで静的サイトホスティングの相談相手になってもらった

今年も始まりましたオルターブース アドベントカレンダー2023の開幕です。

adventar.org

猫も杓子もAI。調べ物をするのに検索して調べるのではなく、Copilot(Bing Chat)に聞くことが普通になってきました。

そんな中、Microsoft Igniteで発表があったMicrosoft Copilot for Azure (プレビュー) を早く使ってみたい今日この頃です。

learn.microsoft.com

プレビューに申し込みましたが、使えるまで時間がかかりそうなので、GitHub Copilotが相談相手になるか試してみました。

静的サイトを作るには

GitHub CopilotにAzureで静的サイトをホスティングするにどうしたらいいか相談してみます。静的サイトはなるべくコストを抑えて運用したいのでその点も押さえて聞いてみます。

期待する回答としては、「Azure Static Web AppsとAzure Storage(Azure Static Web Site)のどちらかを使うといいよ」です。

それでは、GitHub Copilotに聞いてみます。

質問

「静的サイトをコストを優先して利用できるAzureサービスを教えて。」

GItHub Copilot

Azureでは、静的ウェブサイトをホストするための2つの主要なサービスがあります。

  1. Azure Static Web Apps: これは静的ウェブサイトをホストするためのサービスで、無料プランがあります。このサービスは、サーバーレスAPI、ルーティング、認証、カスタムドメイン、無料のSSL証明書など、静的ウェブサイトに必要な多くの機能を提供します。

  2. Azure Storage: これは一般的なデータストレージサービスで、静的ウェブサイトのホスティングもサポートしています。ただし、このサービスは静的ウェブサイトのホスティングに特化しているわけではないため、Azure Static Web Appsと比較すると機能が限定的です。

コストを最優先する場合、Azure Static Web Appsの無料プランを利用するのが最適です。ただし、より高度な機能や大規模なトラフィックを必要とする場合は、有料プランを検討する必要があります。

期待通りの2つのサービスを教えてくれました。しかも、それぞれの説明もあるのでどちらを使うべきか検討材料もあります。

flowchart LR
  user[User] --> stapp[Azure Static Web Apps]
flowchart LR
  user[User] --> stapp[Azure Storage]

2つのうちで、静的サイトのホスティングにはAzure Static Web AppsとAzure Storageのどっちを使うべきなのか聞いてみます。

期待する回答としては、「一般的な用途としてはAzure Static Web Appsを使う方を推して欲しい」です。

質問

Azure Static Web AppsとAzure Storageどちら使った方がいいですか?

GitHub Copilot

Azure Static Web AppsとAzure Storageのどちらを使用するべきかは、あなたのプロジェクトの要件によります。

Azure Static Web Appsは、静的ウェブサイトをホストするためのサービスで、サーバーレスAPI、ルーティング、認証、カスタムドメイン、無料のSSL証明書など、静的ウェブサイトに必要な多くの機能を提供します。また、無料プランがあります。

一方、Azure Storageは一般的なデータストレージサービスで、静的ウェブサイトのホスティングもサポートしています。ただし、このサービスは静的ウェブサイトのホスティングに特化しているわけではないため、Azure Static Web Appsと比較すると機能が限定的です。

したがって、静的ウェブサイトに高度な機能が必要な場合や、サーバーレスAPIや認証などの機能を利用したい場合は、Azure Static Web Appsを選択すると良いでしょう。一方、単純な静的ウェブサイトを低コストでホストしたい場合は、Azure Storageが適しています。

Azure Static Web Appsを使う方が良さそうな回答で期待通りです。説明もついていてわかりやすい。

Azure Static Web Appsにはカスタムドメイン、無料のSSL証明書が使えると回答がありましたが、Azure Storageでも使えるのかについて聞いてみます。

期待する回答は、「Azure StorageではAzure CDNを一緒に使う」です。

質問

Azure StorageでHTTPSによるカスタムドメインは利用できますか?

GitHub Copilot

はい、Azure StorageでもHTTPSによるカスタムドメインを利用することができます。ただし、Azure CDNを使用してSSL/TLS証明書を設定する必要があります。以下にその手順を示します。

  1. Azureポータルにログインします。
  2. 左側のメニューから「ストレージアカウント」を選択します。
  3. カスタムドメインを追加したいストレージアカウントを選択しま>> す。
  4. 左側のメニューから「カスタムドメイン」を選択します。
  5. 「名前」フィールドにドメイン名を入力します。
  6. ドメインの所有権を証明するためのCNAMEレコードを追加します。CNAMEレコードは、www.example.comexample.blob.core.windows.netにマッピングする必要があります。
  7. DNSレコードが正しく追加されたことを確認したら、「保存」をクリックします。
  8. Azure CDNを作成し、作成したストレージアカウントをソースとして指定します。
  9. Azure CDNでカスタムドメインを追加し、無料のSSL証明書を取得します。

これで、Azure Storageにカスタムドメインが追加され、HTTPSが有効になります。

Azure CDNを一緒に使うはもちろんのこと、設定手順まで案内してくれました。

flowchart LR
  user[User] --> stapp[Azure Static Web Apps]
flowchart LR
  user[User] --> cdn[Azure CDN] --> stweb[Azure Storage]

Azure Storageの方はAzure CDNと組み合わせて使うので、大量アクセスが見込まれても大丈夫そうです。では、Azure Static Web AppsにはCDNが必要か聞いてみます。

期待する回答は、「Azure Static Web AppsにはCDN機能を内包してるから特段の理由がなければAzure CDNは不要」です。

質問

大量のアクセスが見込まれますが、Azure Static Web AppsにCDNは必要ですか?

GitHub Copilot

Azure Static Web Appsは、Azureのグローバルネットワークを利用してコンテンツを配信するため、基本的にはCDN(Content Delivery Network)の機能を内包しています。そのため、通常は追加でCDNを設定する必要はありません。

しかし、特定の地域でのパフォーマンスを最適化したい、特定のCDNプロバイダーの特定の機能を利用したいといった特別な要件がある場合には、追加でCDNを設定することも可能です。

大量のアクセスが見込まれる場合でも、Azure Static Web Appsのスケーリングとパフォーマンスの特性を考慮すると、追加のCDNなしでも十分に対応可能であると言えます。ただし、具体的な要件や状況によりますので、詳細なパフォーマンステストと評価を行うことをお勧めします。

もう単純に検索すれば出てくることはCopilotに聞いた方が早いですね。せっかくなので、AWSで静的サイトを作るにはついても聞いてみます。

期待する回答は、「CloudFrontとS3を組み合わせた構成」です。

質問

静的サイトをコストを優先して利用できるAWSサービスを教えて

GitHub Copilot

AWSでは、静的ウェブサイトをホストするためのコスト効率の良いサービスとして、以下の2つが主に利用されます。

Amazon S3 (Simple Storage Service): Amazon S3はオブジェクトストレージサービスで、静的ウェブサイトのホスティングにも利用できます。ストレージとデータ転送の使用量に基づいて課金されます。

Amazon CloudFront: CloudFrontはAWSのコンテンツ配信ネットワーク (CDN) サービスで、S3にホストされた静的ウェブサイトの配信を高速化します。データ転送とHTTP/HTTPSリクエストの数に基づいて課金されます。

これらのサービスを組み合わせることで、コストを抑えつつパフォーマンスの良い静的ウェブサイトを運用することが可能です。

すごい(語彙力)

まとめ

GitHub Copilotはソフトウェア開発に関する質問だけかなと思い込んでいたので、こういう質問にも答えてくれるとは思っていませんでした。確かに、AzureやAWSは開発したソフトウェアのデプロイ先として利用するので無関係ではない気もします。

あくまでCopilotなので内容の正確さは確認して利用する必要はありますが、今回のケースではGitHub Copilotは相談相手として十分サポートしてくれました。疑問点についてもサクサク答えてくれるので学習用途でも使えそうです。Azureに特化したMicrosoft Copilot for Azure (プレビュー) が使えるようになるのが楽しみです。

それではオルターブースアドベントカレンダー2023の続きをお楽しみに!

オルターブース Advent Calendar 2023 - Adventar

オルターブース Advent Calendar 2022 - Adventar

オルターブース Advent Calendar 2021 - Adventar

オルターブース AADOJO Advent Calendar 2020 - Adventar

オルターブース Advent Calendar 2019 - Adventar


サービス一覧 www.alterbooth.com cloudpointer.tech www.alterbooth.com