AWS CloudFront CDN 完全ガイド:設定方法、キャッシング戦略、および海外展開のための実践的な高速化

aws-cloudfront
aws-cloudfront

越境EC事業を営むあるクライアントから、自社ウェブサイトの東南アジアにおける読み込み時間が8秒以上かかり、その結果、モバイル端末の直帰率が751 TP3Tにも達していたという話を聞きました。AWS CloudFrontを導入したところ、東南アジアにおける初回コンテンツレンダリング時間(FCP)は1.2秒に短縮され、コンバージョン率も401 TP3T近く向上しました。

海外進出を目指す企業にとって、ウェブサイトの速度はコンバージョン率に直接影響を与える技術的要素の一つです。Amazon Web Servicesのグローバルコンテンツ配信ネットワーク(CDN)サービスであるAWS CloudFrontは、グローバルアクセスにおける遅延問題を解決するための重要なツールです。本稿では、CloudFrontの基本概念、設定方法、およびベストプラクティスについて体系的に解説します。

AWS CloudFrontとは何ですか?

AWS CloudFrontは、世界中の400以上のエッジロケーションに静的コンテンツをキャッシュする、グローバルに分散されたコンテンツ配信ネットワークサービスです。これにより、ユーザーは最寄りのノードからデータを取得でき、アクセス遅延を大幅に削減できます。

CloudFrontの基本的な動作原理

ユーザーがリクエストを開始する → CloudFront は最も近いエッジノードにキャッシュがあるかどうかを確認します → キャッシュが存在する場合は、結果を直接返します (キャッシュヒット) → キャッシュが存在しない場合は、オリジンノードからデータを取得してキャッシュします → 結果をユーザーに返します。

CloudFrontが従来のCDNと比べて持つ差別化された利点

寸法 クラウドフロント 従来のCDN
AWSエコシステムとの統合 S3、EC2、ALB、およびAPIゲートウェイとのネイティブ統合 追加の設定が必要です
セキュリティ機能 AWS WAFとShield DDoS保護機能を内蔵 別途購入する必要があります
リアルタイムログ S3/Kinesisへのリアルタイムログプッシュをサポート 通常、遅延が大きい。
グローバルノード数 400以上のエッジノード メーカーによって大きな違いがある。
課金モデル トラフィック量とリクエスト数に基づいて料金が支払われます。最低利用金額はありません。 通常、契約は月単位で締結される。

CloudFrontのコアコンセプト解説

CloudFrontを設定する前に、いくつかの重要な概念を理解しておく必要があります。

分布ディストリビューションは、CloudFrontにおける基本的な設定単位であり、「アクセラレーションルール」に相当します。各ディストリビューションは1つ以上のオリジンサーバーに紐付けられ、それぞれ独自のCloudFrontドメイン名(例:d1234abcd.cloudfront.net)を持ちます。

出典(情報源サイト)コンテンツの実際の保存場所は、AWS S3バケット、EC2インスタンス、ALBロードバランサー、または任意のHTTPサーバー(カスタムオリジン)のいずれかになります。

行動規範(行動規則)特定のパス(/images/* や /api/* など)に対してキャッシュおよび転送ルールを定義し、パスごとに異なる戦略を適用します。

エッジ位置CloudFrontのグローバルキャッシュノードは、ユーザーからのリクエストに応答する役割を担っています。世界中に400以上のノードがあり、中国本土のユーザーはCloudFront China Editionという専用アプリケーションを通じてアクセスできます。

TTL(キャッシュの有効期間)コンテンツはエッジノードに長期間キャッシュされます。キャッシュの有効期限が切れると、ノードはオリジンノードからデータを更新します。

CloudFrontディストリビューションを作成するための手順を完了してください。

ステップ1:CloudFrontコンソールにアクセスします

AWS マネジメント コンソールにログインし、サービス検索バーに CloudFront と入力して CloudFront ホームページに移動し、クリックします...「配布を作成する」ボタン。

ステップ2:オリジンサーバー(Origin)の設定

Originの設定で、コンテンツソースを選択してください。

シナリオA:オリジンサーバーはS3ストレージバケット(静的ウェブサイトホスティング)です。

オリジンドメインのドロップダウンメニューから、該当するS3バケットを選択してください。バケットにパブリックアクセス制限が設定されている場合(推奨)、その制限を有効にする必要があります。 オリジンアクセス制御(OAC)S3バケットポリシーでCloudFrontに読み取り権限を付与します。

シナリオB:オリジンサーバーがEC2/ALB(動的ウェブサイト)である場合

「オリジンドメイン」フィールドにEC2のパブリックIPアドレスまたはALBドメイン名を入力し、プロトコルとしてHTTPSを選択します(オリジンサーバーにSSL証明書が設定されていることを確認してください)。

ステップ3:動作の設定(キャッシュ動作)

これはCloudFrontの設定において最も重要な部分であり、さまざまなパスに対するキャッシュ戦略を決定するものです。

静的リソース(/images/)、/css/推奨設定 (/js/*)

意思 キャッシュポリシー 設定 キャッシュ最適化済み(AWS マネージド ポリシー)デフォルトの TTL は 86,400 秒(24 時間)です。バージョン管理されたリソース(main.abc123.js など)の場合は、より長い TTL を設定できます(最大 31,536,000 秒、つまり 1 年)。

動的コンテンツ(/api/*)の推奨設定

意思 キャッシュポリシー 設定 キャッシュは無効になっていますAPIレスポンスのキャッシュを無効にします。また、 発信元リクエストポリシー 設定 オールビューアーすべてのリクエストヘッダー、Cookie、およびクエリ文字列がオリジンサーバーに渡されることを確認してください。

HTMLページの推奨設定(デフォルトパス /*)

コンテンツの更新を迅速に反映させるには、TTL(有効期限)を短く設定してください(例:300秒=5分)。

ステップ4:HTTPSとカスタムドメインを設定する

存在する 設定 一部:

意思 視聴者プロトコルポリシー 設定 HTTPをHTTPSにリダイレクトするすべての通信をHTTPSを使用するように強制する。

存在する 代替ドメイン名(CNAME) カスタムドメイン名を入力してください(例:...) www.yourdomain.com)。

存在する カスタムSSL証明書 選択 AWS 証明書マネージャー (ACM) 証明書は (注: CloudFront は us-east-1 ゾーンの証明書のみを読み取ります) で申請されました。

ACM認定証を申請するus-east-1(北バージニア)リージョンの証明書マネージャーにアクセスし、ドメイン証明書を申請して、DNS経由で検証します(ドメインのDNSにCNAMEレコードを追加します)。

ステップ5:DNSの作成と設定を完了する

クリック 「配布を作成する」 その後、CloudFront のグローバル展開が完了するまでに 5~15 分かかります (ステータスは「有効」と表示されます)。

デプロイ後、ドメインのDNS設定で、メインドメインのCNAMEレコードをCloudFrontによって割り当てられたドメイン(例:d1234abcd.cloudfront.net)に向けます。

キャッシング戦略と最適化手法の詳細な解説

キャッシュヒット率の最適化

キャッシュヒット率は、CloudFrontの効率性を測る上で重要な指標です。ヒット率が高いほど、ユーザーの応答時間が短縮され、オリジンサーバーへの負荷も軽減されます。

CloudFrontでは 監視 このパネルにはキャッシュヒット率が表示されます。目標:静的リソースヒット率 ≥ 90%、全体ヒット率 ≥ 70%。

ヒット率を向上させるための重要な方法

Cookieとヘッダーの転送設定を最小限に抑え、オリジンサーバーが依存する必要のあるフィールドのみを転送するようにしてください。過剰なヘッダーやCookieは異なるキャッシュキーを生成し、キャッシュの断片化につながります。

例えば、オリジンサーバーがUser-Agentに依存していない場合は、キャッシュキーにUser-Agentを追加しないでください。

キャッシュを積極的にクリアする(無効化)

オリジンサーバーのコンテンツを更新した場合(例えば、ウェブページの新しいバージョンを公開した場合)、CloudFrontのエッジノードはそれを即座には検出しません。エッジノードは手動で作成する必要があります。無効化リクエスト指定したパスのキャッシュを強制的にクリアするには:

CloudFrontコンソールで、該当するディストリビューションに移動し、クリックします... 無効化 タグをクリックして、 「無効化を作成する」オブジェクトパスに、クリアするパスを入力します(例:ホームページをクリアするには /index.html、すべてのコンテンツをクリアするには /*)。

知らせ1か月あたり最初の1000件の有効期限切れパスは無料です。それ以降の有効期限切れパスは、パスごとに課金されます(約$0.005/パス)。頻繁にクリアするとコストが増加します。有効期限切れを頻繁に起こさないように、バージョン付きファイル名(例:main.v2.js)を使用することをお勧めします。

地域制限

CloudFrontは国/地域ごとのアクセス制限をサポートしているため、地域ごとの法令遵守要件を持つ企業に適しています。

配布設定で 安全 部分的に見つかりました 地理的制約ホワイトリスト(特定の国のみを許可する)またはブラックリスト(特定の国をブロックする)を設定できます。

CloudFrontと他のAWSサービスとの典型的な統合シナリオ

シナリオ1:CloudFront + S3を使用して静的ウェブサイトを高速化する

これは最も典型的な使用例であり、海外の独立系ウェブサイト、マーケティングランディングページ、ドキュメントサイトなどに適しています。

フロントエンドの静的ファイル(HTML/CSS/JS/画像)をS3バケットにアップロードし、CloudFront経由で配信することで、グローバルな高速化を実現します。ユーザーが北米、ヨーロッパ、東南アジアにいる場合、CloudFrontを使用することで、S3への直接アクセスと比較してレイテンシを60%~80%削減できます。

コスト比較S3からの直接外部トラフィックのコストは約... 0.09/GB𝐶𝑙オー𝑢𝑑F𝑟オー𝑛𝑡流れ手数料使用について0.0085~$0.085/GB(地域によって異なる)で、S3からCloudFrontへのデータ転送は無料であるため、全体的なコストが削減されます。

シナリオ2:CloudFront + ALBによる動的ウェブサイト高速化

動的なコンテンツを含むウェブサイト(WordPress、APIサービスなど)の場合、CloudFrontは以下のことが可能です。

エッジノード上で静的リソース(/wp-content/* のようなパス)をキャッシュし、エッジノード上で動的リクエスト(/wp-admin/ のようなパス)をキャッシュします。、/api/これは直接ALBに渡され、DDoS攻撃対策とHTTPS終端機能を提供します。

シナリオ3:CloudFront + Lambda@Edgeを使用した動的処理

Lambda@Edgeを使用すると、CloudFrontエッジノード上でコードを実行でき、以下のことが可能になります。

A/Bテスト(Cookieに基づいて異なるバージョンを返す)、ユーザー認証(エッジでJWTトークンを検証する)、URL書き換えとリダイレクト、およびUser-Agentに基づくデバイス適応。

CloudFront料金の説明

CloudFrontの料金は2つの部分から構成されています。

データ転送料金地域によって異なるが、およそ 0.0085美しい到着価格は0.17(インド)/GBから変動します。

HTTPリクエストのコストHTTPSリクエスト1万件あたり約$0.0100。

無料枠最初の1TBのデータ転送量と月間1,000万件のHTTPリクエストは無料です(12ヶ月間有効)。

コスト最適化の提案

キャッシュヒット率を向上させることでオリジンサーバーのトラフィックを削減し、適切なTTLを設定することで不要なオリジンサーバーへのリクエストを削減し、S3インテリジェントティアリングを使用することでオリジンサーバーのストレージコストを削減します。

トラブルシューティング

質問1:CloudFrontのコンテンツが更新されず、ユーザーには古いバージョンが表示されたままです。

原因:エッジノードのキャッシュが期限切れになっていません。解決策:無効化処理を作成し、該当するパスのキャッシュをクリアするか、ファイル名のバージョン番号を更新してください。

質問2:HTTPS証明書エラー

理由:ACM認定資格の申請が米国東部1地域で行われていません。解決策:北バージニア地域で再度認定資格を申請してください。

質問3:オリジンサイトS3が403 Forbiddenエラーを返します。

原因:S3バケットポリシーでCloudFront OACが承認されていません。解決策:S3バケットポリシーに、対応するCloudFrontサービスプリンシパル承認ステートメントを追加してください。

質問4:APIインターフェースが、キャッシュすべきでないレスポンスをキャッシュしています。

原因:APIパスの動作設定が正しくキャッシュ無効化されていません。解決策:/api/*パス用に別の動作設定を作成し、キャッシュポリシーをCachingDisabledに設定してください。

要約する

AWS CloudFrontは単なるCDNにとどまらず、海外展開を目指す企業がグローバルなアクセス環境を構築するためのコアインフラストラクチャです。静的リソースの高速化、動的コンテンツの高速化、セキュリティ保護、コスト最適化など、CloudFrontはAWSエコシステムとシームレスに統合され、これらの分野における包括的なソリューションを提供します。

海外進出を目指す企業にとって、「アクセスしやすい」から「高速アクセス」への飛躍は、ユーザーエクスペリエンスにおける質的な飛躍を意味します。2秒以内に読み込まれる海外向けウェブサイトは、競合他社との差別化を図る上で大きな強みとなります。


AWSクラウドアーキテクチャの計画を支援する専門チームが必要ですか?

aws-oncloudai.comは、海外進出を目指す中国企業向けに、AWSクラウドサービスのコンサルティングと導入支援を提供しています。CloudFront CDNの設定、S3静的ホスティング、柔軟なアーキテクチャ設計など、幅広いサービスを提供しています。ぜひお気軽にお問い合わせください。無料技術相談予約お客様のビジネスに合わせたAWSソリューションをご提供いたします。

aws-oncloudai.com | プロフェッショナルなAWSクラウドサービスパートナー

さらに詳しく

何が必要か教えてください