Web ポータルは通常、画像、テキスト、動画などの静的リソースを配信します。Web サイトが主に小規模ファイルと画像で構成されている場合は、ビジネスタイプとして [イメージと小規模ファイル] を選択します。Web サイトに大量の動画および音声コンテンツがある場合は、 [VOD] を選択します。このチュートリアルでは、testcdn.top を例に、Alibaba Cloud CDN を使用して [イメージと小規模ファイル] ビジネスタイプで OSS リソースの配信を高速化する方法を説明します。
パフォーマンスのメリット
Alibaba Cloud Application Real-Time Monitoring Service (ARMS) を使用したネットワークプローブで、OSS リソースの直接 URL と、その CDN で高速化されたドメイン名を比較しました。結果は次のとおりです。
ネットワークプローブの結果は、ネットワークの状態によって異なる場合があります。
ネットワークプローブによると、CDN で高速化されたドメインは可用性が 100% で、平均応答時間は 712.44 ms でした。対照的に、OSS リソースへの直接接続は失敗し、可用性は 0% で、リクエストは平均 1.1 s で失敗しました。
このデータに基づくと、Alibaba Cloud CDN を使用することで、応答時間が約 35% 改善される可能性があります。
前提条件
Alibaba Cloud CDN が有効化されていること。有効化していない場合は、「Alibaba Cloud CDN の有効化」をご参照ください。
独自のサーバーや OSS バケットなど、安定したオリジンがあること。オリジンがない場合は、「ECS インスタンスの作成」または「バケットの作成」をご参照ください。
ドメイン名の追加
Alibaba Cloud CDN コンソールにログインします。
ナビゲーションペインで、 ドメイン名 をクリックします。
ドメイン名 ページで、 ドメイン名の追加 をクリックします。
ドメイン名を追加 ページで、 加速リージョン を [グローバル (中国本土を除く)] に設定し、 [高速化ドメイン名] に
images.testcdn.topを入力し、 [ビジネスタイプ] で [イメージと小規模ファイル] を選択し、 [リソースグループ] で [デフォルトリソースグループ] を選択します。重要初めてドメイン名を追加する場合、ドメイン名の所有権を検証する必要があります。詳細については、「ドメイン名の所有権の検証」をご参照ください。
[オリジンの追加] をクリックし、 [オリジンの追加] ページで、 [オリジン情報] タイプで [OSS ドメイン] を選択し、 [パブリックアクセス] で [バケットドメイン] を選択し、 [優先度] で [プライマリ] を選択し、 [重み] に 10 を入力し、 [ポート] に 80 を入力します。
「データ越境コンプライアンスコミットメント」に同意するチェックボックスをオンにし、 [次へ] をクリックしてから、 ドメイン管理に戻る をクリックします。
CNAME レコードの設定
[ドメイン名] ページで、追加したドメイン名を見つけ、その CNAME 値をコピーします。
Alibaba Cloud DNS コンソールにログインします。
[パブリック DNS] ページで、ルートドメイン
testcdn.topを見つけ、 [操作] 列の [設定] をクリックします。[DNS 設定] ページで、 [レコードの追加] をクリックします。 [レコードタイプ] には
CNAMEを選択します。 ホストレコード にimagesを入力します。 DNS リクエストソース には [デフォルト] を選択します。 レコード値 に、手順 1 でコピーした CNAME 値を入力します。
トラブルシューティング
問題の説明
ドメイン名を追加して CNAME レコードを設定した後、高速化されたリソースにアクセスすると 403 エラーが返されます。
E:\>curl -v http://images.testcdn.top/pic_03.jpg
* Trying 12xxx 9:80...
* Connected to images.testcdn.top (1xxx) port 80
> GET /pic_03.jpg HTTP/1.1
> Host: images.testcdn.top
> User-Agent: curl/8.4.0
> Accept: */*
>
< HTTP/1.1 403 Forbidden
< Server: Tengine解決策
このエラーは、OSS バケットがプライベートであることを示しています。セキュリティを維持するため、バケットをパブリックに設定するのではなく、プライベートバケットへの Alibaba Cloud CDN からのアクセスを許可してください。次の手順に従ってください。
Alibaba Cloud CDN コンソールで、 ドメイン名 ページに移動し、高速化ドメイン名
images.testcdn.topを見つけて 管理 をクリックします。ドメイン管理ページで、 Back-to-Origin 設定 タブをクリックします。 OSS 非公開バケットへのアクセス セクションで、 ステータス スイッチをオンにし、 タイプ には 同一アカウント内のバケット を選択します。
リソースへのアクセスを再試行してください。これでリソースが正しく読み込まれるはずです。
E:\>curl -v http://images.testcdn.top/pic_03.jpg * Trying 12xxx9:80... * Connected to images.testcdn.top (1xxx9) port 80 > GET /pic_03.jpg HTTP/1.1 > Host: images.testcdn.top > User-Agent: curl/8.4.0 > Accept: */* > < HTTP/1.1 200 OK < Server: Tengine < Content-Type: image/jpeg < Content-Length: 8775526