このトピックでは、Alibaba Cloud CDN (CDN) が Elastic Compute Service (ECS) インスタンス上のリソースをどのように高速化するか、およびその実装手順について説明します。
メリット
ECS インスタンスを CDN のオリジンサーバーとして使用することで、スケーラブルな IaaS コンピューティングと高速化された静的リソース配信を組み合わせ、以下のメリットを実現します。
Web サイトリソースへのすべてのユーザーリクエストが CDN 経由でルーティングされるため、オリジンサーバーの負荷が軽減されます。
CDN トラフィックは、ECS インスタンスへの直接アクセスで発生するアウトバウンドデータ転送よりも低い料金で課金されます。
クライアントは最寄りの CDN ノードからリソースを取得するため、ネットワーク遅延が減少し、静的リソースの配信が改善されます。
仕組み
ECS インスタンスをオリジンサーバーとして使用する場合、CDN はスクリプト、画像、音声/動画ファイルなどの静的リソースを、グローバルに分散されたアクセラレーションノードにキャッシュします。ユーザーは、最寄りの CDN ノードからこれらのリソースを取得します。CDN は、Web アプリケーションやデータベースなどの動的コンテンツへのリクエストを ECS インスタンスに転送します。
お使いの ECS インスタンスの動的リソースを高速化するには、Alibaba Cloud ESA を使用できます。詳細については、「ESA とは」をご参照ください。
次の図は、技術アーキテクチャを示しています。
ユースケース
このトピックでは、ECS インスタンス上でホストされている画像リソースを高速化する方法を、サンプル Web サイト image.example.com を使用してご紹介します。
パラメータ | 説明 | 例 |
Web サイトのドメイン名 | 高速化するドメイン名。 | image.example.com |
ビジネスタイプ | このタイプは、Web サイトのコンテンツによって異なります。 たとえば、Web サイトが主に画像で構成されている場合、ビジネスタイプは [画像・小容量ファイル] です。 | 画像・小容量ファイル |
高速化エリア | Web サイト訪問者の地理的地域。 | 中国本土のみ |
オリジンドメイン名 | オリジンドメイン名または IP アドレスを使用できます。
| ecs.example.com 説明 この例では、オリジンドメイン名を使用します。 |
その他のサービス | その他のビジネス要件。 |
|
設定手順
ユースケースに基づき、このトピックでは Alibaba Cloud CDN を使用して ECS インスタンス上のリソースを高速化する手順の概要を説明します。

手動デプロイ
前提条件
Alibaba Cloud CDN をアクティブ化していること。
ECS インスタンスを作成していること。詳細については、「インスタンスの作成」をご参照ください。
高速化するドメイン名を所有していること。
ステップ1:高速化ドメイン名の追加
Alibaba Cloud CDN コンソールにログインします。
左側のナビゲーションペインで、ドメイン名 を選択します。[ドメイン名] ページで ドメイン名の追加 をクリックし、ユースケースに基づいて次の表に記載されているパラメータを設定します。
説明Alibaba Cloud CDN コンソールに初めてドメイン名を追加する場合は、そのルートドメインの所有権を確認する必要があります。詳細については、「ドメイン名の所有権の確認」をご参照ください。ルートドメインの所有権を既に確認している場合は、この手順をスキップしてください。
パラメータの詳細については、「基本情報とビジネス情報の設定」をご参照ください。
ドメイン:
image.example.comビジネスタイプ:イメージと小さなファイル
加速リージョン:中国本土のみ (要 ICP 登録)
配信元サーバーの追加 をクリックし、オリジンサーバーを設定します。
[オリジン情報] には、[オリジンドメイン名] または [IP] を選択し、オリジンドメイン名または ECS インスタンスのパブリック IP アドレスを入力します。 この例では、オリジンドメイン名は
ecs.example.comです。 他のパラメーターは、デフォルト値のままでかまいません。説明パラメータの詳細については、「オリジンサーバーの設定」をご参照ください。
オリジンサーバーを設定した後、次へ をクリックします。
手動レビューが完了するまで待ちます。
ドメイン名が検証に合格すると、ステータスが 実行中 に変わります。これにより、ドメイン名が CDN に追加されたことになります。
ドメイン名のステータスが [有効] になると、高速化ドメイン名の CNAME が表示されます。この例では、CNAME は
image.example.com.w.kunlunsl.comです。
ステップ2:ドメイン名の設定
高速化のパフォーマンスとアクセスセキュリティを向上させるために、ビジネス要件に基づいて次の機能を設定できます。
Alibaba Cloud CDN コンソールで、[ドメイン名] ページに移動します。管理するドメイン名を見つけ、管理 列の [管理] をクリックします。
ビジネスニーズに基づいて、次の表の機能を設定します。
ユースケース
説明
設定
キャッシュヒット率の向上
キャッシュヒット率を向上させるには、適切なキャッシュの有効期限を設定します。
画像やアプリケーションインストールパッケージなど、更新頻度の低い静的ファイルの場合は、有効期限を 1 か月以上に設定することを推奨します。
JavaScript や CSS ファイルなど、頻繁に更新される静的ファイルの場合は、ビジネス要件に基づいて有効期限を設定します。
PHP、JSP、ASP ファイルなどの動的ファイルの場合は、キャッシュを無効にするために有効期限を 0 秒に設定することを推奨します。
CDN ノードがオリジンフェッチするサイトの指定
オリジンサーバーが複数のサイトをホストしており、CDN がアクセスする必要があるサイトが高速化ドメイン名と異なる場合は、オリジンホストを設定する必要があります。Alibaba Cloud CDN は、オリジンフェッチ中に正しいサイトからリソースを取得するために、ホスト情報を使用します。
オリジンからのファイルダウンロード効率の向上
Range オリジンフェッチを有効にすると、CDN ノードは ECS オリジンサーバーから大容量ファイルをチャンク単位でリクエストできます。インスタンスは、リクエストされた範囲のコンテンツのみで応答します。
説明この機能は、音声や動画などの大容量ファイルの配信に適しています。画像・小容量ファイルの高速化では、この機能を設定する必要はありません。
キャッシュヒット率の向上
ファイル配信効率の向上
パラメータフィルタリングを有効にすると、CDN ノードはキャッシュハッシュキーを生成する際に、URL 内の
?に続くパラメータを削除します。これにより、異なるパラメータを持つ同じリソースファイルへのリクエストが、同じキャッシュファイルにヒットするようになり、キャッシュヒット率が向上し、オリジンサーバーへのトラフィックが削減されます。CDN リソースにアクセスできるユーザーを制限し、直リンクを防止
リファラーホワイトリストまたはブラックリストを設定することで、リクエストの Referer ヘッダーに基づいてアクセスを制御できます。CDN は、ルールに基づいてリクエストを許可または拒否します。許可された場合、CDN はリソースを提供します。拒否された場合、CDN は 403 ステータスコードを返します。
直リンクと不正なトラフィック消費を防止
URL 署名には、オリジンサーバーとの連携が必要です。サーバーは、CDN の URL 署名設定で指定された認証アルゴリズムに従って、署名付き URL を生成する必要があります。有効にすると、CDN は有効な署名付き URL を持つクライアントからのリクエストのみを処理するため、不正なアクセスを防止できます。
静的/動的コンテンツの Nginx 設定
オリジンサーバーで Nginx を使用している場合、静的コンテンツと動的コンテンツを分離し、それぞれに異なる CDN キャッシュポリシーを適用することで、高速化のパフォーマンスを向上させることができます。
静的リソースのキャッシュ設定
/css、/js、/images などの静的リソースパスの場合:
[キャッシュの有効期限]:キャッシュの有効期限を 30 日 (2,592,000 秒) に設定することを推奨します。CSS、JS、画像などの静的リソースは更新頻度が低いため、キャッシュ期間を長くすることで、キャッシュヒット率を大幅に向上させることができます。
[パラメータを無視]:この機能を有効にして、URL に異なるクエリパラメータが含まれている場合に、複数のキャッシュコピーが生成されるのを防ぐことを推奨します。
[Range オリジンフェッチ]:この機能を有効にすることを推奨します。大容量の JS/CSS バンドルファイルの場合、CDN ノードは指定された範囲に基づいてコンテンツをチャンク単位で取得できるため、オリジンフェッチのトラフィックと応答時間が削減されます。
動的リソースのキャッシュ設定
/api や .php ファイルなどの動的リクエストパスの場合:
[キャッシュの有効期限]:各リクエストがオリジンサーバーから最新のデータを取得するように、キャッシュの有効期限を 0 秒 (キャッシュなし) に設定することを推奨します。
オリジンホストの設定
[オリジンホスト]:Nginx サーバーで設定されているドメイン名 (高速化ドメイン名ではなく、ECS インスタンスにバインドされているドメイン名
ecs.example.comなど) に設定します。理由:Nginx は
server_nameディレクティブを使用して仮想ホストを区別します。CDN から送信されるオリジンホストが設定されたserver_nameと一致しない場合、Nginx はリクエストをデフォルトサイトにルーティングするか、エラーを返す可能性があり、CDN が正しいリソースを取得できなくなります。
ステップ3:CNAME レコードの設定
高速化ドメイン名を CDN から提供された CNAME アドレスにポイントするために、DNS プロバイダーで CNAME レコードを追加する必要があります。これにより、ユーザーリクエストが CDN ネットワークを経由して高速化されます。
次の手順では、DNS プロバイダーが Alibaba Cloud DNS である場合に CNAME レコードを追加する方法を示します。
詳細については、「CNAME レコードの設定」をご参照ください。
ドメインを所有するアカウントを使用して Alibaba Cloud DNS コンソールにログインし、[パブリック DNS] ページに移動します。
[権威ドメイン] ページで、高速化ドメイン名のルートドメイン (example.com) を見つけ、[操作] 列の [DNS 設定] をクリックします。
[レコードの追加] をクリックして、CNAME レコードを追加します。
[タイプ]:CNAME
[ホストレコード]:
image[レコード値]:「ドメイン名」ページから取得した CNAME を入力します。この例では
image.example.com.w.kunlunsl.comです。その他のパラメータはデフォルト値のままにしておきます。
CNAME レコードを確認します。
方法 1:Alibaba Cloud CDN コンソールでステータスを確認する
Alibaba Cloud CDN コンソールの [ドメイン名] ページに移動します。
対象のドメイン名を見つけ、CNAME のステータス 列を確認します。CNAME レコードが有効になると、ステータスが [設定済み] と表示されます。
説明Alibaba Cloud DNS の新しい CNAME レコードはすぐに有効になります。更新されたレコードは、TTL が期限切れになった後に有効になります (デフォルトは 10 分)。この伝播期間中、ステータスが 設定待ち と表示される場合があります。
方法 2:nslookup コマンドを使用する
コンピューターでコマンドラインインターフェイスを開きます。
nslookup -type=CNAME 高速化ドメイン名 を実行します。返された CNAME レコードが CDN コンソールの 高速化ドメイン名 の CNAME 値と一致する場合、CDN 高速化が有効になったことを示します。例:
nslookup -type=CNAME image.example.comLast login: xxx xxx ~ % nslookup -type=CNAME image.example.com Server: Address: xxx Non-authoritative answer: image.example.com canonical name = image.example.com.w.kunlunsl.com. Authoritative answers can be found from: