本トピックでは、Content Delivery Network (CDN) が Elastic Compute Service (ECS) インスタンス上のリソースを高速化する仕組みと、その実装手順について説明します。
メリット
ECS インスタンスを CDN のオリジンサーバーとして使用することで、スケーラブルな IaaS コンピューティングと高速な静的リソース配信を組み合わせ、以下のメリットが得られます:
Web サイトリソースに対するすべてのユーザーリクエストは CDN を経由するため、オリジンサーバーの負荷が軽減されます。
CDN のトラフィック料金は、ECS インスタンスへの直接アクセスによって発生するアウトバウンドデータ転送の料金よりも低く設定されています。
クライアントは最寄りの CDN ノードからリソースを取得するため、ネットワーク遅延が短縮され、静的リソースの配信が改善されます。
仕組み
ECS インスタンスをオリジンサーバーとして使用する場合、CDN はスクリプト、画像、音声/動画ファイルなどの静的リソースを、グローバルに分散されたアクセラレーションノードにキャッシュします。ユーザーは、最寄りの CDN ノードからこれらのリソースを取得します。Web アプリケーションやデータベースなどの動的コンテンツに対するリクエストは、CDN によって ECS インスタンスに転送されます。
ECS インスタンス上の動的リソースを高速化するには、Alibaba Cloud ESA を使用できます。詳細については、「ESA とは」をご参照ください。
次の図に、技術アーキテクチャを示します。
ユースケース
本トピックでは、Web サイト image.example.com を例に、ECS インスタンスでホストされている画像リソースを高速化する方法を説明します。
パラメーター | 説明 | 例 |
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 ホワイトリストまたはブラックリストを設定することで、リクエストの Referer ヘッダーに基づいてアクセスを制御します。CDN は、ルールに基づいてリクエストを許可または拒否します。許可された場合、CDN はリソースを配信します。拒否された場合、CDN は 403 ステータスコードを返します。
直リンクと不正なトラフィック消費の防止
URL 署名には、オリジンサーバーとの連携が必要です。サーバーは、CDN の URL 署名設定で指定された認証アルゴリズムに従って、署名付き URL を生成する必要があります。この機能を有効にすると、CDN は有効な署名付き URL を持つクライアントからのリクエストのみを処理するため、不正なアクセスを防ぐことができます。
Nginx configuration for static and dynamic content
If your origin server uses Nginx, you can improve acceleration performance by separating static and dynamic content and applying different CDN caching policies to each.
Static resource cache configuration
For static resource paths, such as /css, /js, and /images:
Cache expiration time: We recommend that you set the cache expiration time to 30 days (2,592,000 seconds). Static resources like CSS, JS, and images are updated infrequently. A longer cache time can significantly improve the cache hit ratio.
Ignore Parameters: We recommend that you enable this feature to prevent multiple cached copies from being generated when URLs contain different query parameters.
Range origin fetch: We recommend that you enable this feature. For large JS/CSS bundle files, CDN nodes can retrieve content in chunks based on the specified range, which reduces origin fetch traffic and response time.
Dynamic resource cache configuration
For dynamic request paths, such as /api or .php files:
Cache expiration time: We recommend that you set the cache expiration time to 0 seconds (no caching) to ensure that each request retrieves the latest data from the origin server.
Origin host configuration
Origin host: Set this to the domain name configured on your Nginx server, such as the domain name
ecs.example.comthat is bound to the ECS instance, not the accelerated domain name.Reason: Nginx uses the
server_namedirective to differentiate between virtual hosts. If the origin host sent by CDN does not match a configuredserver_name, Nginx may route the request to a default site or return an error, preventing CDN from retrieving the correct resources.
手順 3:CNAME レコードの設定
DNS プロバイダーで CNAME レコードを追加して、高速化ドメイン名を CDN から提供された 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 (Time-to-Live) (デフォルトは 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: