Configure your CDN for Bitbucket Data Center

Atlasssian Data Center アプリケーションで CDN を使用する

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

On this page:

If your users are distributed across the world and experience high latency when using Bitbucket Data Center, you may be able to improve their experience by using a Content Delivery Network (CDN). Common CDNs include AWS CloudFront, Cloudflare, Azure CDN, Akamai, and others. 

Head to Use a CDN with Atlassian Data Center applications to learn about our CDN capabilities, and how to assess whether it will improve your users' experience. 

CDN の使用を開始する準備が整ったら、次の 3 つの主な手順を実行します。

  1. インターネット向けロード バランサを構成します (オプション)。
  2. CDN を構成します。 
  3. Enable the CDN feature in Bitbucket Data Center. 

インターネット向けロード バランサの構成 (オプション)

ご利用のサイトが公開されていない場合、CDN が到達できるが、静的アセットにのみアクセスしてそれらをキャッシュできるようにする必要があります。これを実施する方法は、使用しているロード バランサと Web アプリケーション ファイアウォールによって異なります。詳細なガイダンスについては、ご利用のロード バランサとファイアウォールのマニュアルを参照してください。 

インターネット向けロード バランサの追加

インターネット向けロード バランサをセットアップに追加します。これはプライマリ ロード バランサに追加されます。CDN は、このロード バランサとやり取りする唯一のエンティティです。次の内容を推奨します。

  • HTTPS を有効にします。このロード バランサからのトラフィックはパブリック インターネット経由で送信され、暗号化される必要があります。
  • HTTP/1.1 を有効にします。現在、キャッシング プロキシと CDN は送信元への転送時に HTTP/2 を正常に (あるいはまったく) 処理できません。
  • AWS デプロイの場合、インターネット向けのアプリケーション ロード バランサをセットアップします。

インターネット向けロード バランサのためのファイアウォール ルールの更新

プライマリ ロード バランサとは異なり、CDN がキャッシュ可能なデータのみを取得できるようにインターネット向けロード バランサをロックダウンする必要があります。ファイアウォール ルールを次のように構成することをおすすめします。

  1. 構成は"/s/"で始まるパスの要求のみを許可します。アプリケーションがコンテキスト パスを使用してデプロイされている場合 (例: yoursite.com/wiki または yoursite.com/jira)、これをパスに含める必要があります。他の要求はすべてブロックされる必要があります。 
  2. 許可される HTTP メソッドを GET、HEAD、OPTIONS に制限することもできます。

AWS デプロイの場合、アプリケーション ロード バランサに接続された Web アプリケーション ファイアウォールで Web アクセス コントロール リスト (Web ACL) を構成します。"URI" に "文字列一致条件" を適用する条件を使用します。 

セットアップが安全かどうかを確認するには、以下の手動テストを実施します。

  1. https://internet-facing-proxy/ の GET は "403 FORBIDDEN" を返す必要があります。
  2. https://internet-facing-proxy/s の GET は "403 FORBIDDEN" を返す必要があります。
  3. https://internet-facing-proxy/s/ の GET は "404 NOT FOUND" を返す必要があります。
  4. https://internet-facing-proxy/s/ の GET は "403 FORBIDDEN" を返す必要があります。
  5. https://internet-facing-proxy/s/../s/ の GET は "404 NOT FOUND" を返す必要があります。

アセットをキャッシュするための CDN 構成

CDN プロバイダのアカウントが必要です。CDN に関連する費用はすべてお客様の責任で発生します。アトラシアンでは現在、CDN からの静的アセットの提供のみをサポートしています。つまり、ページ コンテンツ、添付ファイル、およびユーザー アバターなどの個人を特定可能な情報は、CDN でキャッシュされません。

最小限の労力で Amazon CloudFront を構成できるよう、CloudFormation テンプレートをご用意しました。https://bitbucket.org/atlassian/atlassian-aws-deployment/src/master/templates/cdn/ リポジトリ、すべての AWS デプロイ リソースをご確認いただけます。 

アトラシアンのテンプレートを使用しない場合、CDN 構成で次のように定義します。この例は AWS CloudFront に基づきます。 

Origin domain nameアトラシアン アプリケーションのベース URL です。コンテキスト パスを構成済みの場合はそれを含めます。
例: mycompany.com/confluence  
Origin path

空欄のままにします。パスを指定する必要はありません。

Allowed HTTP methods任意で次に制限: GET、HEAD、OPTIONS
Viewer protocol policyHTTP を HTTPS にリダイレクト
Object cachingUse origin cache headers
Forward cookiesNone
これは、静的アセットがユーザー コンテキストなしでキャッシュされるようにするために重要です。
Query String Forwarding and CachingForward all, cache based on all
HTTP protocolsHTTP/2 を含める必要があります。
Error pages/Error Caching Minimum TTL (seconds)CloudFront でのエラー ページの既定のキャッシュ時間は 5 分です。停止から回復までに必要な時間を短縮するために 10 ~ 30 秒の範囲の値に下げることを検討してください。

Compress Objects Automatically

はい

他のほとんどの設定はデフォルトのままで問題ありません。 

この情報はご利用の CDN プロバイダに合わせて調整する必要があります。使用されている用語は CDN プロバイダによって異なります。詳細についてはご利用の CDN のマニュアルを参照してください。

Enable CDN in Bitbucket Data Center

Once you've configured your CDN, you can enable the CDN option in Bitbucket Data Center.  

CDN を有効化するには、次の手順を実行します。

  1. Go to Admin > Content Delivery Network
  2. [設定] タブに移動します。 
  3. ステータスを [オン] に設定します。
  4. CDN によって生成された URL を URL フィールドに貼り付け、[検証] をクリックします。 
  5. 正常に実行できたら変更を保存します。 

As end users access Bitbucket in their browser, static assets will be cached on the edge server closest to them, and served from there until they expire.  This means it might take some time before you can start measuring the impact of the CDN, depending on when your users are online and accessing the site in each location.

Configure CDN in Bitbucket via REST

次の REST エンド ポイントを使用して CDN 機能とやり取りすることもできます。<base-url>/rest/static-asset-caching/configuration
  • GET -現在の CDN ステータスとURLを返します。
  • DELETE -既存の構成を削除し、デフォルトの状態に戻します (CDN 無効、URL なし)。キャッシュの問題が原因で UI にアクセスできない場合に有用です。
  • PUT - CDN URL とステータスを次のように、リクエストの本文で渡される値に設定します。
     

    {
      “enabled”: true, 
      “url”: “https://yourcdnurl.com”
    }


トラブルシューティング

次のような一般的な問題が発生する可能性があります。 
  • HTTPS CDN URL のみが許可される場合
    Azure CDN を使用している場合、これは特に重要です。Azure CDN は発信元のリクエストと同じプロトコルをミラーリングするため、Data Center アプリケーションを HTTPS でプロビジョニングする必要があります。 
  • Data Center アプリケーションの UI にアクセスできない、または機能しない
    可能性は低いですが、CDN の構成ミスや CDN サービスの停止によってアプリケーションの UI にアクセスできないことがあります。この場合、以下のように REST API を使用して CDN 機能を無効にする必要があります。  

    curl -v -u <admin username>:<admin password> -X DELETE http://<your-base-url>/rest/static-asset-caching/configuration

    この例では Curl を使用しますが、任意の言語を使用できます。ユーザー名、パスワード、ベース URL のプレースホルダーをご自身の情報に置き換えてください。  

  • HTTP/2 が無効
    ロード バランサ、ファイアウォール、またはリバース プロキシで HTTP/2 トラフィックを許可している必要があります。 HTTP/2 を使用することにより、エンド ユーザーに最適なパフォーマンスを提供できます。詳細については、「HTTP/2 CDN 構成でヘルス チェックに失敗する」を参照してください。 
  • ユーザーがインストールしたアプリとの互換性がない可能性
    この警告は、Marketplace アプリまたはユーザーがインストールしたその他のアプリが非推奨のメソッドを使用していることが検出されると表示されます。これによってアセットが正常にキャッシュされない可能性があります。この警告が表示された場合の対処方法の詳細については、「CDN の構成時にユーザーがインストールしたアプリのヘルスチェックに失敗する」を参照してください。

よくある質問

キャッシュされる静的アセットを制御することはできますか? 

いいえ、これはアプリケーションが制御します。静的アセットへのすべてのリクエストがすべて CDN に転送されます。非静的アセットのリクエストは製品に直接転送されます。 

個人を特定可能な情報はキャッシュされますか? 

ユーザーが作成したコンテンツ、ユーザー名、メンション、アバターなどは静的アセットではないため、キャッシュされません。Cookie がストリップされた製品からコンテンツを取得するように CDN を構成して、ユーザー コンテキストなしで動作するようにする必要があります。 

batch.js などの動的コンテンツはキャッシュされますか? 

batch.js は動的に生成されますが、静的コンテンツと見なされるため、キャッシュされます。 

最終更新日 2020 年 5 月 22 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.