インフラストラクチャ
弊社で静的サイトをホストすると、260+のロケーションで構成されるCloudflareのコンテンツデリバリネットワーク(CDN)にアセットが送られます。CDNは、ウェブサイトのコンテンツやその他デジタルアセットをユーザーに配信するために連動する、分散型のサーバーネットワークです。CDNは、レイテンシを短縮し、データの転送を最適化することで、コンテンツ配信のパフォーマンス、信頼性、拡張性を高める役割を果たします。
サイト訪問者に最も近く、最も高速で、最もアクセスしやすいCDNロケーションからデータが配信され、エンドユーザーの近くでデータの処理を行うことができます。こちらのページでは、静的サイトホスティングの背後にあるインフラストラクチャについて詳しくご紹介します。
デプロイメント
Gitリポジトリ
静的サイトのコードがGitリポジトリに保存されます。以下が利用可能です。
静的サイトの追加およびデプロイ
MyKinstaに静的サイトを追加すると、Gitリポジトリとの接続によりサイト情報が取得されます。
MyKinstaボット
静的サイトの設定でコミット時の自動デプロイを有効にすると、リポジトリに変更やマージをコミットするたびに、MyKinstaボットがこれを検出、Gitサービスからサイトを取得し、更新後のバージョンのサイトをデプロイします。
Kubernetes Pod
弊社とビルドサービスとの通信により、KubernetesのPodが作成されます。各Podは言うなれば、それぞれのデプロイのために隔離されたスタンドアロンの環境です。KubernetesのPodによりサイトがビルドされ、Cloudflare R2ストレージにコンテンツがプッシュされます。
リクエスト
Cloudflare R2 Storage
Cloudflare R2 Storageは、サイトを構成するすべてのファイルを保持するバケットシステムです。Cloudflareのシステムにより、サイトのコピーやキャッシュデータがCDNの260+のロケーションにあるエッジサーバーに配信されます。
Cloudflareのコンテンツデリバリネットワーク(CDN)
CloudflareのCDNは、エンドユーザーに近づけるよう世界各地に配置されたエッジサーバーで構成されます。ユーザーがサイトのコンテンツをリクエストすると、そのユーザーに最も近いCDNのエッジサーバーがリクエストを受信します。リクエストされたコンテンツがすでにそのエッジサーバーにキャッシュされている場合、オリジンサーバーにアクセスすることなく直接データを配信できます。
リクエストされたコンテンツがエッジサーバーにない場合には、コンテンツが保存されているR2 Storageから取得されます。その後、CDNでは、以降のリクエストのためにエッジサーバーにコンテンツがキャッシュ(配信プロセスが最適化)されます。
CDNでは、複数のエッジサーバーに受信トラフィックを分散する負荷分散技術が採用されています。これにより、負荷が均等に分散され、サーバー過負荷のリスク軽減、全体的なパフォーマンス向上が期待できます。コンテンツ配信は、以下のような要素に基づいてエンドユーザーにコンテンツを配信するインテリジェントルーティングなどの技術を実装することで、さらに最適化されます。
- ユーザーの位置
- ネットワーク状況
- サーバーの負荷と容量
- コンテンツの可用性
このスマートルーティングにより、CDN内の最適なエッジサーバーにコンテンツリクエストが送信され、静的サイトの効率的な配信が可能になります。