DigitalOcean SpacesをCDNとして使用する方法
DigitalOcean Spacesは、Amazon S3 APIと互換性のあるオブジェクトストレージサービスです。Spacesには、追加費用なしで有効化できる統合CDNが含まれています。これにより、ユーザーに最も近いサーバーからコンテンツを配信することでパフォーマンスが向上します。
Spaces CDNは、エッジサーバーのネットワークを使用して、地理的地域にわたってコンテンツを複製することによって機能します。CDNエンドポイントからコンテンツを要求するユーザーは、彼らに最も近いエッジノードからサービスを受けます。
パフォーマンスの向上に加えて、CDNはコンテンツをキャッシュし、短い配送ルートを介して提供することで、帯域幅コストを削減します。また、サービス障害が発生した場合には追加の冗長性のレイヤーを提供します。DigitalOceanは、エッジノードが失敗した場合に、他のノードのいずれかにトラフィックを再ルーティングすることで、コンテンツを引き続き公開することができます。
CDNを有効にする
DigitalOceanで新しいスペースを作成してください。コンテンツのためにデータセンターの地域を選択するように求められます。各地域は、複数の独立したエッジノードによってサポートされています。
スペースを作成する際やその後の任意の時点でCDNを有効にできます。スペースを作成する際にCDNを有効にする場合でも、後で有効にする場合でも、同じ値を提供する必要があります。
既存のスペースのCDNを設定するには、DigitalOceanのコントロールパネルに移動し、左側のサイドバーで「Spaces」をクリックして、対象のスペースに移動します。画面の上部にある「設定」タブをクリックし、「CDN(コンテンツ配信ネットワーク)」の横にある「編集」ボタンをクリックします。
「カスタムサブドメインを使用する」ドロップダウンでは、自分自身のサブドメインを追加でき、そのサブドメインを使ってスペースのコンテンツにアクセスできるようになります。これには次のように見えるかもしれません。
my-space.example.comDigitalOceanは、Let's Encryptを介して自動的にSSL証明書を生成することができ、あなたのSpaceへのトラフィックを保護します。これを行うためには、すでにDigitalOceanであなたのドメインのDNSレコードを管理している必要があります。他のプロバイダーを使用している場合、SSL証明書の手動アップロードが代替オプションとして提供されています。
カスタムサブドメインがない場合、CDNを介してコンテンツを読み込む際には、DigitalOceanの特別なcdn.digitaloceanspaces.comアドレスを使用する必要があります。
こちらがあなたのスペースが呼ばれる場合の正しいURLです
my-spaceそれはNYC1データセンターにあります。
my-space.nyc1.cdn.digitaloceanspaces.comアドレスのcdn部分を省略すると、CDNサポートなしで標準のSpacesエンドポイントにアクセスすることになります。これは、サードパーティのソフトウェアを設定する際によくある間違いです - 両方のURLは機能しますが、cdnのバリアントのみがエッジキャッシングの利点を提供します。
キャッシュのTTLを設定する
エッジキャッシュのTTLは、CDNを有効にするときに変更できるもう一つの設定です。これは、個々のエッジノードがコンテンツを古くなったと見なす前に、どれくらいの期間キャッシュできるかを定義します。
この値を正しく設定することは重要です。そうすることで、ユーザーはコンテンツの変更をタイムリーに受け取ることができますが、CDNの効率性やパフォーマンスを不当に危険にさらさないようにできます。エッジノードは、TTLが期限切れになるまで、中央のスペースサーバーから取得したアイテムの変更を探しません。
画像やビデオなどの長寿命の大規模資産は、延長されたTTLの恩恵を受けます。DigitalOceanでは、デフォルトのオプションセットで最大1週間を使用できます。それに対して、頻繁に変更されることが予想される文書やウェブページのコンポーネントのようなファイルは、より短いTTLが必要かもしれません。これにより、変更がアップロードされてからユーザーがそれを見るまでの遅延が短縮されます。
CDN内のコンテンツを不変と見なすことは、システムがそれをサポートするように設計できる場合、しばしば効果的な戦略です。デフォルトで長いTTLを使用して、帯域幅を減少させ、パフォーマンスを向上させます。リソースを変更する必要がある場合は、異なるファイル名で新しいバージョンをアップロードし、元のものとは独立してキャッシュされるようにします。このアプローチが実行不可能な場合は、長期的に保存するコンテンツと頻繁に変更されるコンテンツを分離するために、異なるTTLポリシーを持つ複数のスペースを使用するのが最善です。
最後の選択肢は、あなたのスペース内の特定のアイテムのTTL設定を手動でオーバーライドすることです。これは、max-ageメタデータフィールドを設定することによって実現されます。これをSpacesのコントロールパネル内で行うか、S3互換のクライアントからのアップロード中に行うことができます。
アイテムを見つけて、その名前の右側にある「もっと見る」ボタンをクリックし、メニューから「メタデータを管理」を選択します。「カスタムペアリングを追加」をクリックし、x-amz-meta-max-ageという名前の新しいフィールドを作成します。値として希望のTTLを秒単位で設定します。
CDNキャッシュからアイテムを追放する
DigitalOceanのコントロールパネルからCDNのキャッシュを削除できます。キャッシュを完全にクリアするオプションや、個別のアイテムを削除するオプションがあります。
完全なパージを開始するには、Spaces > <スペース名> を介してあなたのスペースに移動します。画面の上部にある設定タブをクリックし、「CDN(コンテンツデリバリーネットワーク)」セクションまでスクロールします。見出し名の隣にある「キャッシュをパージ」ボタンをクリックします。
これにより、キャッシュから削除するディレクトリを選択できるダイアログが表示されます。階層の適切なレベルを選択し、「選択したディレクトリを削除」を押してください。キャッシュ無効化リクエストがエッジサーバーに送信されます。ほぼ即座に効果が現れるはずです。
個々のアイテムは、スペースのコンテンツをブラウズし、オブジェクトの横にある「もっと見る」ボタンをクリックすることで削除できます。表示されるメニューから「CDNキャッシュから削除」を選択してください。画面の左側にあるチェックボックスをチェックすることで、複数のアイテムを同時に削除することができ、その後、ツールバーに表示される「アクション」メニューから「CDNキャッシュから削除」を選択します。
手動の強制退去は、ユーザーに新しいコンテンツを迅速に配信するためにキャッシュを即座にクリアする必要がある場合に役立ちます。ただし、このコントロールを定期的に使用することは、通常、TTL設定がアプリケーションに適していないことを示しています。オブジェクトが正しいTTLでキャッシュに入るようにシステムを開発するのが最善であり、管理に対して手がかりを持たないアプローチを採用できます。
スペースのCDNを無効にする
いつでもスペースのCDNを無効にすることができます。これにより、すべてのコンテンツは保持されますが、それにアクセスするには通常のdigitaloceanspaces.comエンドポイントを使用する必要があります。オブジェクトは即座にエッジネットワークから削除されるため、既存のCDNベースのURLは機能しなくなります。
DigitalOceanのコントロールパネルで、Spaces > <スペース名>に移動して自分のスペースを見つけます。画面上部の設定タブをクリックし、「CDN(コンテンツ配信ネットワーク)」セクションの隣にある「編集」ボタンをクリックします。
「CDNを無効にする」ボタンを押し、その後青い「保存」ボタンを押して変更を確認してください。変更を確認するために、あなたのスペースの名前を入力する必要があります。「無効にする」をクリックして、CDNからコンテンツを削除し、カスタムサブドメインのリンクを解除し、発行されたSSL証明書を取り消します。
要約
DigitalOcean Spaces CDNは、オブジェクトストレージのコンテンツをユーザーに近いローカルエッジノードにキャッシュすることで、パフォーマンスを向上させ、帯域幅の使用を削減します。CDNには、自分のサブドメインを使用するか、デフォルトのcdn.digitaloceanspaces.comを使用することができます。
CDNの設定と使用は通常簡単ですが、TTL設定に注意を払う必要があります。アプリケーションの典型的なコンテンツ更新頻度とスペース全体のパフォーマンスとのバランスを適切に取るキャッシュの生存期間を選択することが重要です。







