次の方法で共有


Azure Storage BLOB で Azure Front Door を使用する

Azure Front Door により、Azure Storage BLOB からの静的コンテンツの配信が促進され、セキュリティで保護されたスケーラブルなアーキテクチャが提供されます。 このセットアップは、Web サイトのホスティングやファイル配信など、さまざまなユース ケースに最適です。

Architecture

BLOB ストレージの配信元を使用した Azure Front Door の図。

この参照アーキテクチャでは、配信元が 1 つのストレージ アカウントと Azure Front Door プロファイルをデプロイします。

データフロー

このシナリオのデータ フローは次のとおりです。

  1. クライアントが、カスタム ドメイン名と Front Door 提供の TLS 証明書を使用して、Azure Front Door へのセキュリティで保護された接続を確立します。 接続は、近くの Front Door のポイント オブ プレゼンス (PoP) で終了します。
  2. Azure Front Door Web アプリケーション ファイアウォール (WAF) が要求をスキャンします。 WAF によって要求が危険すぎると判断された場合、要求はブロックされ、HTTP 403 のエラー応答が返されます。
  3. Front Door PoP のキャッシュに有効な応答が含まれている場合、Front Door はすぐに応答を返します。
  4. そうでない場合、PoP は、Microsoft のバックボーン ネットワークで別の有効期間の長い TCP 接続を使用して、配信元ストレージ アカウントに要求を送信します。 このシナリオでは、Private Link はストレージ アカウントに安全に接続します。
  5. ストレージ アカウントが、Front Door PoP に応答を送信します。
  6. PoP は、今後の要求のために応答をキャッシュに格納します。
  7. PoP がクライアントに応答を返します。
  8. インターネット経由でストレージ アカウントに直接送信された要求はすべて、Azure Storage ファイアウォールによってブロックされます。

コンポーネント

  • Azure Storage: 静的コンテンツを BLOB に格納します。
  • Azure Front Door: クライアントからの受信接続を受け取り、WAF でそれらをスキャンして、ストレージ アカウントに要求を安全に転送し、応答をキャッシュします。

代替

静的ファイルを別のクラウド ストレージ プロバイダーまたは独自のインフラストラクチャに格納する場合も、このシナリオはほぼそのまま適用されます。 ただし、配信元サーバーへの受信トラフィックが Front Door 経由で送信されることを確認する必要があります。 ストレージ プロバイダーが Private Link をサポートしていない場合は、Front Door サービス タグの許可リストの作成や X-Azure-FDID ヘッダーの検査など、別の方法を使用することを検討してください。

シナリオの詳細

静的コンテンツ配信は、次のような多くの状況で役立ちます。

  • Web アプリケーション用のイメージ、CSS ファイル、JavaScript ファイルの配信。
  • PDF ファイルや JSON ファイルなど、ファイルとドキュメントの提供。
  • 非ストリーミング ビデオの配信。

通常、静的コンテンツは頻繁には変更されず、サイズが大きくなる可能性があるため、キャッシュすることでパフォーマンスを向上させ、コストを削減するのが理想的です。

複雑なシナリオでは、1 つの Front Door プロファイルで静的コンテンツと動的コンテンツの両方が提供される場合があります。 コンテンツの種類ごとに個別の配信元グループを使用し、ルーティング機能を使用して受信要求を適切な配信元に転送できます。

考慮事項

スケーラビリティとパフォーマンス

Azure Front Door は、コンテンツ配信ネットワーク (CDN) として機能し、グローバルに分散された POP でコンテンツをキャッシュします。 キャッシュされた応答が使用可能になると、Azure Front Door によって迅速に応答が提供され、パフォーマンスが向上し、配信元の負荷が軽減されます。 PoP に有効なキャッシュされた応答がない場合、Azure Front Door のトラフィック高速化機能により、配信元からのコンテンツ配信が迅速化されます。

セキュリティ

認証

Azure Front Door は、インターネットに接続するシナリオ向けに設計されており、パブリックにアクセスできる BLOB 用に最適化されています。 BLOB へのアクセスを認証するには、Shared Access Signature (SAS) の使用を検討してください。 "クエリ文字列の使用" 動作を有効にして、認証されていないクライアントに Azure Front Door が要求を提供できないようにします。 この方法では、異なる SAS を持つ各要求を配信元に送信する必要があるため、キャッシュの有効性が制限される可能性があります。

配信元のセキュリティ

Azure Front Door は、Private Link を使用して Azure Storage アカウントに安全に接続します。 ストレージ アカウントは、直接インターネット アクセスを拒否するように構成されており、Azure Front Door で使用されるプライベート エンドポイント経由でのみ要求を許可します。 このセットアップにより、すべての要求が Azure Front Door によって確実に処理されるようになり、ストレージ アカウントが直接インターネットに公開されないように保護されます。 この構成には Azure Front Door の Premium レベルが必要です。 Standard レベルを使う場合は、ストレージ アカウントにパブリックにアクセスできる必要があります。 Shared Access Signature (SAS) を使用して要求をセキュリティで保護し、クライアントの要求に SAS を含めるか、Azure Front Door のルール エンジンを使用して添付することができます。

カスタム ドメイン名

Azure Front Door は、カスタム ドメイン名をサポートしており、それらのドメインの TLS 証明書を管理できます。 カスタム ドメインを使用すると、クライアントは信頼された発行元からファイルを受信し、TLS は Azure Front Door へのすべての接続を暗号化します。 Azure Front Door による TLS 証明書の管理は、無効な証明書または古い証明書による障害やセキュリティの問題を回避するのに役立ちます。

Web アプリケーション ファイアウォール

Azure Front Door WAF のマネージド ルール セットは、一般的および新たなセキュリティ上の脅威がないか要求をスキャンします。 静的と動的の両方のアプリケーションに WAF およびマネージド ルールを使用することをお勧めします。

さらに、Azure Front Door WAF では、必要に応じてレート制限およびジオフィルタリングを実行できます。

回復性

Azure Front Door は、グローバルに分散されたアーキテクチャを備えた高可用性サービスであり、個々の Azure リージョンと PoP での障害に対する回復性を備えています。

Azure Front Door キャッシュを使用すると、ストレージ アカウントの負荷が軽減されます。 ストレージ アカウントが使用できなくなった場合、Azure Front Door は、アプリケーションが復旧するまで、キャッシュされた応答を引き続き提供する可能性があります。

回復性をさらに向上させるには、ストレージ アカウントの冗長性を検討してください。 詳細については、「Azure Storage の冗長性」を参照してください。 または、複数のストレージ アカウントをデプロイし、Azure Front Door の配信元グループに複数の配信元を構成します。 各配信元の優先度を構成して、配信元間のフェールオーバーを設定します。 詳細については、「Azure Front Door の配信元と配信元グループ」を参照してください。

コストの最適化

キャッシュは、静的コンテンツの配信コストを削減するのに役立ちます。 Azure Front Door の PoP は応答のコピーを格納し、後続の要求に対してこれらのキャッシュされた応答を配信できるため、配信元の要求の負荷が軽減されます。 大規模な静的コンテンツ ソリューション (特に大きなファイルを配信するソリューション) では、キャッシュによってトラフィック コストが大幅に削減される可能性があります。

このソリューションで Private Link を使用するには、Azure Front Door の Premium レベルをデプロイします。 ストレージ アカウントへの直接トラフィックをブロックする必要がない場合は、Standard レベルを使用できます。 詳細については、「配信元のセキュリティ」を参照してください。

このシナリオをデプロイする

Bicep または JSON ARM テンプレートを使用してこのシナリオをデプロイするには、こちらのクイックスタートを参照してください

Terraform を使用してこのシナリオをデプロイするには、こちらのクイックスタートを参照してください

次のステップ

Azure Front Door プロファイルを作成する方法について学習します。