すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:Alibaba Cloud CDNを使用したOSSオブジェクトへのアクセスの高速化

最終更新日:Dec 06, 2024

Alibaba Cloud CDNを使用して、OSS (Object Storage Service) 内の画像、ビデオ、ドキュメントなどの静的リソースを配布し、トラフィックコストを削減し、リソースの読み込みを高速化できます。

プロセス

次の図は、Alibaba Cloud CDNを使用してOSSの静的リソースへのアクセスを高速化する方法を示しています。

image

手順 :

  1. プライベートバケットの作成: 静的リソースを格納するプライベートバケットを作成する必要があります。 バケットはオリジンサーバーとして使用され、Alibaba Cloud CDNが静的リソースの配信を高速化できるようにします。 同時に、静的リソースへの不正アクセスは拒否され、データセキュリティが保証されます。

  2. ドメイン名を追加して高速化し、ドメイン名のCNAMEレコードを追加する: Alibaba Cloud CDNコンソールでドメイン名を追加すると、システムはドメイン名にCNAMEを割り当てます。 次に、DNSサービスプロバイダーのシステムにCNAMEレコードを追加して、ドメイン名をCNAMEにマップする必要があります。 このようにして、ユーザーが高速化ドメイン名を使用してリソースを要求すると、オリジンサーバー宛ての要求がポイントオブプレゼンス (POP) にリダイレクトされます。

  3. プライベートバケットへのアクセスを有効にする: プライベートバケットへのアクセスを有効にすると、Alibaba Cloud CDNはプライベートバケットから静的リソースを取得します。

前提条件

  • OSSが有効化されています。 詳細については、「OSSの使用を開始する」をご参照ください。

  • Alibaba Cloud CDNが有効化されています。 詳細については、「Alibaba Cloud CDNの有効化」をご参照ください。

  • ドメイン名が登録されています。 詳細については、「Alibaba Cloudでのドメイン名の登録」をご参照ください。 Alibaba Cloudに登録されていないドメイン名をバケットにマッピングできます。 ドメイン名がない場合は、Alibaba Cloudドメインサービスプラットフォームを使用して登録できます。

  • ドメイン名のマッピング先のバケットが中国本土にある場合は、ドメイン名に対してICP (Internet Content Provider) の申請が取得されます。 詳細については、「ICPファイリングプロセス」をご参照ください。

    .

手順

手動展開

手順1: プライベートバケットの作成

  1. OSS コンソールにログインします。 左側のナビゲーションウィンドウで、[バケット] をクリックします。 [バケット] ページで、[バケットの作成] をクリックします。

  2. 次の図に示すように、 [バケットの作成] パネルで、バケット名を指定し、他のパラメーターのデフォルト設定を保持します。 [OK] をクリックします。

    bucket001.jpg

手順2: 高速化するドメイン名を追加し、ドメイン名のCNAMEレコードを追加します

次の手順では、oss.example.comはCDN高速化ドメイン名として使用されます。 高速化ドメイン名として、ルートドメイン名、サブドメイン名、またはワイルドカードドメイン名を指定できます。

  1. 加速するドメイン名を追加します。

    1. CDNコンソールの [ドメイン名の追加] ウィザードで、パラメーターを設定し、[次へ] をクリックします。 次の表に、設定する必要があるパラメーターを示します。 他のパラメーターのデフォルト設定を保持します。

      cdn.jpg

    2. [ドメイン名] ページで、ドメイン名のステータスが [有効] になるまで待ちます。 CNAMEレコードの値をコピーします。 この例では、CNAMEの値はoss.example.com.w.kunlunaq.comです。

  2. ドメイン名を解決します。

    1. Alibaba Cloud DNSコンソールの [ドメイン名の解決] ページで、oss.example.comの [操作] 列にある [DNS設定] をクリックします。 [DNS設定] タブで、[DNSレコードの追加] をクリックします。 [DNSレコードの追加] ダイアログボックスで、次の図に示すように必要なパラメーターを指定します。 他のパラメーターのデフォルト設定を保持し、[OK] をクリックします。

      dns.jpg

    2. 数分待ってからpingコマンドを実行し、高速化ドメイン名が有効かどうかを確認します。 コマンド出力が次の図に示すコマンド出力と同様の場合、高速化ドメイン名が有効です。

      ping

手順3: プライベートバケットへのアクセスを有効にする

  1. Alibaba Cloud CDNコンソールの [ドメイン名] ページで、高速化ドメイン名をクリックします。

  2. 左側のナビゲーションツリーで、[オリジンフェッチ] をクリックし、[Alibaba Cloud OSSプライベートバケットアクセス] をオンにします。

    cdn.jpg

検証

上記の手順を完了したら、作成したバケットにオブジェクトをアップロードし、CDN高速化ドメイン名を使用してオブジェクトへのアクセスが高速化されているかどうかを確認する必要があります。

  1. 作成したバケットに画像をアップロードします。

    1. OSSコンソールの [バケット] ページで、画像をアップロードするバケットをクリックします。

    2. オブジェクト ページで、アップロード をクリックし、dest.jpgという名前の画像など、アップロードする画像を選択し、画面の指示に従って画像をアップロードします。

  2. アップロードした画像のURLを取得します。

    1. 左側のナビゲーションツリーで、[オブジェクト管理]> [オブジェクト] を選択します。 オブジェクト ページで、URLを取得する画像を見つけ、[操作] 列の [詳細の表示] をクリックします。

    2. [詳細表示] パネルで、ファイル URLのコピー をクリックして画像URLを取得します。

      • バケットドメイン名を使用して画像にアクセスするために使用できる画像のURLを取得します。

        イメージアクセス制御リスト (ACL) は非公開です。 この場合、画像のURLに署名する必要があります。

        Dingtalk_20240927113557.jpg

      • CDN高速化ドメイン名を使用して、画像へのアクセスに使用できる画像のURLを取得します。

        署名情報を含まない画像URLを取得します。 例えば、コピーされた画像URLが http://oss.example.com/dest.jpg?Expires=1727408333&OSSAccessKeyId=TMP.3 ********&Signature=eg ******** であれば、署名情報を含まない画像URLを https://oss.example.com/dest.jpg する。

        dest.jpg

  3. アクセラレーションの結果を確認します。

    CloudMonitorコンソールのHTTP検出を使用して、バケットドメイン名とCDN高速化ドメイン名を使用してイメージにアクセスする読み込み時間を比較します。 結果は、CDN高速化ドメイン名を使用してイメージにアクセスした場合の読み込み時間が90.04ミリ秒であるのに対し、バケットドメイン名を使用してイメージにアクセスした場合の読み込み時間は146.61ミリ秒であることを示しています。 CDN高速化ドメイン名を使用してイメージにアクセスする場合の速度は、バケットドメイン名を使用してイメージにアクセスする場合の速度よりも約38% 高速です。

    説明

    先行する加速結果は、参照のためにのみ提供される。 アクセス速度の改善は、異なるネットワーク接続および地理的位置などの要因に基づいて変化する。 ほとんどの場合、ユーザが位置する地域がPOPに近いか、またはネットワーク接続が良好である場合、アクセス速度はより高速に増加され得る。

    image

推奨設定

アクセラレーションのパフォーマンスと安全なデータ転送を向上させるために、ビジネス要件に基づいて対応する機能を有効にできます。

HTTPSセキュアアクセラレーションの有効化

Alibaba Cloud CDNは、HTTPSセキュアアクセラレーションをサポートしています。 Alibaba Cloud CDNコンソールでSSL証明書をデプロイし、HTTPSセキュアアクセラレーションを有効にして、クライアントとPOP間のリクエストを暗号化できます。 詳細については、「SSL証明書の設定」をご参照ください。

キャッシュヒット率の向上

  • CDNキャッシュの自動更新: ユーザーがOSS内の最新の変更ファイルにタイムリーにアクセスできるようにするには、OSSコンソールからCDNキャッシュの自動更新機能を有効にします。 具体的な手順は次のとおりです。

    1. [バケット] ページで、使用するバケットを見つけて、バケット名をクリックします。

    2. 左側のナビゲーションウィンドウで、[バケット設定] > [ドメイン名] を選択し、[サポートされる操作] をクリックします。

    3. ドロップダウンリストで、CDNキャッシュの自動更新をトリガーするAPI操作を選択し、[OK] をクリックします。

重要

この機能は、パージタスクが期待どおりに、またはタイムリーに提出できることを保証するものではありません。 キャッシュをタイムリーにパージしたい場合、またはパージ結果を取得したい場合は、Alibaba Cloud CDNのパージ機能を使用できます。 詳細については、「リソースの削除とプリフェッチ」をご参照ください。

  • キャッシュされたリソースの適切なTTL値の指定

    • イメージやアプリケーションパッケージなど、頻繁に更新されない静的リソースには、1か月以上の生存期間 (TTL) を指定します。

    • JavaScriptやCSSファイルなど、頻繁に更新される静的リソースのビジネス要件に基づいてTTLを指定します。

    • PHP、JSP、ASPファイルなどの動的リソースのキャッシュを無効にするには、TTLを0秒に指定します。

    詳細については、「リソースのキャッシュルールの作成」をご参照ください。

不正アクセスからWebサイトを保護する

ホットリンク保護は、リクエスト内のRefererヘッダーに基づいてリクエストを識別およびフィルタリングして、アクセス制御を実装し、不正アクセスを防止します。 リファラーホワイトリストまたはブラックリストを設定すると、Alibaba Cloud CDNはユーザーIDに基づいてリクエストを許可または拒否します。 リクエストが許可されている場合、Alibaba Cloud CDNはリクエストされたリソースのURLを返します。 リクエストが拒否された場合、Alibaba Cloud CDNはHTTP 403ステータスコードを返します。 詳細については、「リファラーホワイトリストまたはブラックリストを設定してホットリンク保護を有効化する」をご参照ください。

Webサイトのリソースが悪意を持ってダウンロードされるのを防ぐ

Alibaba Cloud CDNによって配信されるコンテンツは公開されています。 オブジェクトのURLを持つ要求者は、オブジェクトにアクセスできます。 Webサイトのリソースへの不正アクセスを防ぐために、URL署名を設定して、アクセス制御のために署名文字列とタイムスタンプをURLに追加できます。 詳細については、「URL署名の設定」をご参照ください。

CDN POPでのファイル配布の高速化

レンジオリジンフェッチを有効にすると、オリジンサーバーとして機能するOSSバケットは、rangeヘッダーで指定されたファイルのチャンクをPOPに返します。 これにより、オリジントラフィックが削減され、コンテンツ配信が高速化されます。 レンジオリジンフェッチは、オーディオやビデオストリーミングなどの大規模なファイル配布シナリオに適しています。 レンジオリジンフェッチは、小さなファイル配布シナリオには適していません。 Alibaba Cloud CDNを使用してイメージの配信を高速化する場合、レンジオリジンフェッチを有効にする必要はありません。 詳細については、「レンジオリジンフェッチ」をご参照ください。

よくある質問

リクエストがキャッシュにヒットしたかどうかを確認するにはどうすればよいですか?

  • リクエストがキャッシュにヒットしない

    ブラウザの開発者ツールを開き、X-Cacheフィールドをチェックすることで、POPからデータが提供されているかどうかを確認できます。 X-Cacheフィールドの値がMISSで始まる場合、要求されたオブジェクトはPOPのキャッシュミスであり、CDN POPはオリジンサーバーに不足しているオブジェクトを要求します。

    outside.jpg

  • リクエストがキャッシュにヒット

    欠落したオブジェクトがオリジンサーバーから取得された場合、オブジェクトはPOPにキャッシュされます。 オブジェクトに対する後続の要求のX-Cacheフィールドの値はHITで始まります。これは、要求されたオブジェクトがPOPにキャッシュされ、POPから提供されることを示します。

    outside.jpg

Alibaba Cloud CDNを使用してOSSの静的リソースへのアクセスを高速化できるのはなぜですか。

Alibaba Cloud CDNは、世界中の複数のリージョンにPOPをデプロイします。 ユーザーがOSSの静的リソースへのアクセスをリクエストすると、Alibaba Cloud CDNはリクエストを最も近いPOPにリダイレクトします。 これにより、ユーザーは長距離でOSSリソースに直接アクセスする必要がなくなります。 ネットワーク待ち時間が減少し、アクセス速度が改善される。

Alibaba Cloud CDNを使用してOSSのリソースにアクセスすると、トラフィックコストを削減できるのはなぜですか。

バケットのパブリックエンドポイントを使用してOSSリソースに直接アクセスする場合、インターネット経由のOSSアウトバウンドトラフィックに対して課金されます。 Alibaba Cloud CDNは、OSS内の静的リソースを世界中のPOPにキャッシュできます。 Alibaba Cloud CDN高速化ドメイン名を使用してOSSリソースにアクセスする場合、リソースはオリジンサーバーではなく最寄りのPOPから提供されます。 Alibaba Cloud CDNからのアウトバウンドデータ転送に対して課金されます。 インターネット経由のOSSアウトバウンドトラフィックと比較して、Alibaba Cloud CDNからのアウトバウンドデータ転送の単価は低くなっています。 したがって、Alibaba Cloud CDNを使用してOSSリソースにアクセスする場合、トラフィックコストを効果的に削減できます。 詳細については、「OSS コンテンツアクセラレーションの課金」をご参照ください。

CDN高速化ドメイン名を使用してOSSのプライベートオブジェクトにアクセスすると、エラーが報告されるのはなぜですか。

  • 原因

    プライベートバケットへのアクセスを有効にした場合、Alibaba Cloud CDNは、バケットに送信されたオリジンリクエストにAuthorizationヘッダーを追加し、ヘッダー値をバケットの認証署名情報に設定します。 オリジンリクエストは、AuthorizationヘッダーとURLリクエストパラメーターの両方に署名情報を含めることはできません。 バケットに送信されたオリジンリクエストにAuthorizationヘッダーがある場合、オブジェクトURLにExpiressignatureOSSAccessKeyIdなどの署名情報を含めることはできません。 そうでない場合、OSS認証は失敗します。

  • 解決策

    署名情報を含まないオブジェクトURLを使用します。 たとえば、プライベートオブジェクトのURLがttps:// oss.example.com/outside.jpg?Expires=1700628094&OSSAccessKeyId=TMP.3********&Signature=B******** の場合、署名情報が含まれていないURL ( https://oss.example.com/outside.jpg ) を使用します。

プライベートバケットへのアクセスを有効にした後、バケットのデフォルトホームページへのアクセス要求を開始すると、エラーが報告されるのはなぜですか。

詳細については、「Alibaba Cloud CDNを使用してプライベートバケットからオブジェクトを取得するときに、バケットのデフォルトのホームページにアクセスできないのはなぜですか。」をご参照ください。