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

On this page:

ユーザーが世界中に分散していて、Jira Software Data Center または Jira Software Data Center を使用する際にパフォーマンスの劣化が発生している場合、コンテンツ デリバリ ネットワーク (CDN) を使用してエクスペリエンスを改善できる可能性があります。一般的な CDN としては、AWS CloudFront、Cloudflare、Akamai などが挙げられます。 

CDN サポートは次の製品の Data Center 版で提供されます。

  • Jira Software 8.3 
  • Jira Service Management (旧 Jira Service Desk) 4.3  
  • Confluence 7.0
  • Bitbucket 6.8 

CDN の使用を開始する

Confluence Data Center で CDN を有効化するために必要な手順の概要は以下のとおりです。 

  1. アトラシアンのテンプレートを使用して AWS CloudFront ディストリビューションをスピンアップするか、任意の CDN ベンダーでアカウントを作成します。
  2. サイトへの CDN の到達を許可するよう、ロード バランサとファイアウォールを更新します。
  3. Confluence Data Center で CDN URL を提供し、CDN サポートを有効化します。 

エンド ユーザーが Jira にアクセスすると、最も近いエッジ サーバーに静的アセットがキャッシュされ、有効期限が切れるまでそこから提供されます。つまり、ユーザーがオンラインになるタイミングや、各拠点でサイトにアクセスするタイミングによっては、CDN による影響の確認に時間がかかる可能性があります。キャッシュを事前にロードする機能は提供されていないため、アセットは初回の提供時にキャッシュされます。

手順の詳細については「Confluence Data Center 用に CDN を構成する」を参照してください。 

ほかの設定変更と同様、本番サイトに変更を加える前にステージング環境でテストを行うことをおすすめします。 

動作の仕組み

静的アセット (JavaScript、フォントなど) は、CDN ベンダーが提供する、ユーザーに地理的に近いエッジ サーバーにキャッシュされます。つまり、ユーザーがページを表示すると、そのページの表示に必要なアセットの一部が、自身のサーバー (origin サーバー) ではなくその地域のサーバーから提供されます。これによってページの読み込み時間を短縮できます。

たとえば、サーバー (origin サーバー) がドイツにある場合、CDN を使用して静的アセットをブラジルのエッジ サーバーから提供することで、リオデジャネイロのユーザーによるページ読み込み時間を最大 50 % も改善できます。CDN の利用経験がなく、機能の仕組みの詳細を確認したい場合は、CloudFlare の提供するガイド (https://www.cloudflare.com/learning/cdn/performance/) をご参照ください。 

CDN を使用してもアプリが本質的に高速化するわけではない点にご注意ください。この機能によって、クラスターの負荷が軽減され、一部のユーザーが経験する遅延が短縮されるため、ユーザーによってはページの読み込み時間が短縮されます。 

ポーランドのグダニスクにある社内のドッグフーディング インスタンスでテストしたところ、CDN を有効にすると Jira Data Center の [課題を表示] アクションの応答時間は、米国東部からアクセスするユーザーのほうが約 50 % 速くなることがわかりました。 

CDN によるメリットの確認方法

CDN によるユーザーへのメリットを評価する場合、サイトのネットワークのオーバーヘッドを確認することをおすすめします。 

Data Center アプリケーションの管理コンソールで [コンテンツ デリバリ ネットワーク] に移動します。[パフォーマンス] タブに、1 秒を超える転送コストを持つリクエストの割合が表示されます。この割合が高いほど、ユーザーのリクエストが遅延や接続品質などのネットワーク状況の影響を受けている可能性が高くなります。

このネットワーク統計は、ユーザーが製品を使用したときに経験するネットワークの状態を示す便利な指標です。割合が高い場合は、このような状況で CDN を使用することでユーザーにメリットがもたらされる可能性があります。 

計測方法

ユーザーがサイトのページ (たとえば Confluence ページ、Jira 課題、Bitbucket プル リクエスト ページなど) にアクセスする際、そのページのコンテンツを取得するためにブラウザで待機しなければならなかった時間が測定されます。次に、サーバーでページをレンダリングするのに必要だった時間を差し引きます。これにより、リクエストの送信とレスポンスの取得にかかった時間が算出されます。 

この時間は主にサーバーとブラウザー間の遅延に依存しますが、SSL 接続のセットアップ時間なども含みます。 

この指標は、CDN を使用しないリクエストで収集されるため、CDN を有効化した後も引き続きネットワーク上で一貫した統計情報を提供します。 

また、ユーザーの地理的な位置にも考慮する必要があります。例えば、サーバーがフランクフルトにあり、チームの大部分がドイツとオーストリアを拠点としている場合、マレーシアにいるチームは遅延が大きくなり、それによってページのロード時間も遅くなる可能性があります。 

traceroutepingmtr などのネットワーク診断ツールは、発生している遅延の量を確認するのに役立ちます。 

手順について

これらの例では traceroute を使用して遅延情報などの基本的なネットワーク統計を表示します。yoursite.com はご利用のベース URL に置き換えてください。 

Windows の場合、コマンド プロンプトを開き、以下のとおり入力します。

> tracert yoursite.com

Linux または Mac OS の場合、ターミナルを開き、以下のとおり入力します。

$ traceroute yoursite.com

これによって、各サーバーのホップ数と 3 つの遅延時間がミリ秒単位で表示されます。3 つの数値を平均してそのサーバーの遅延を算出します。 

このmtr コマンド(my traceroute) は、pingtraceroute の便利な組み合わせです。MacOS または Windows で使用するには、mtr をインストールする必要があります。 

キャッシュ対象 

Data Center アプリケーションまたは Marketplace アプリで提供される静的アセットのみがキャッシュされます。これは Data Center アプリケーションやアプリをアップグレードした時にのみ変更されます。動的コンテンツはキャッシュされません。 

CDN を有効化した際にキャッシュされる内容の要約は次のとおりです。

キャッシュ対象キャッシュ対象外
  • javascript
  • フォント
  • 添付ファイル
  • ページまたは課題
  • アバターを含む個人情報
  • テーマに含まれるアセット

キャッシュを手動で無効化する必要はありません。これは、Data Center 製品やアプリのアップグレード時に製品側が処理します。

ZDU (ゼロダウンタイムのアップグレード) を実行している場合は、アップグレードの前に CDN を無効にして、クラスターが安定した状態になってから有効にすることを強くおすすめします。そうでない場合は、CDN のパフォーマンスに関連する問題が発生する可能性があります。

CDN の実装計画 

インフラストラクチャ要件

任意のオリジン プルを使用できます。CDN に関連する費用はすべてお客様の責任で発生します。   

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

開始する前に、次のようなその他のいくつかのインフラストラクチャ要件を確認しておく必要があります。

  • HTTP/2 の推奨
    ロード バランサ、ファイアウォール、およびプロキシでは HTTP/2 トラフィックを許可している必要があります。HTTP/2 はエンド ユーザーに最適なパフォーマンスを提供します。手順についてはご使用のプロバイダの資料を参照してください。 
  • ファイアウォールに関する考慮事項
    CDN が静的アセットにアクセスしてキャッシュできる必要があります。インスタンスが公開されていない場合は、CDN からのリクエストを受け渡しできるように、ファイアウォールに何らかの変更を加える必要があります。CDN の IP 範囲は予告なしに変更される可能性があるため、標準 IP 範囲フィルタリングではなく、アプリケーション ファイアウォールの利用をおすすめします。 

プライベート インスタンスについて

サイトがインターネット上で一般公開されていれば、問題なく CDN を有効にできるはずです。  

サイトが一般に公開されていない場合、次の方法を使用できます。

  • CDN からのリクエストを受け渡せるようにファイアウォールを構成できます。手順の詳細に関しては、以下のステップ ガイドをご参照ください。
  • CDN ベンダーを利用する代わりに、インターネットへのトラフィックを開く必要がないように、ユーザーの近くに独自のキャッシュサーバーをセットアップできます。この回避策の詳細に関しては、キャッシュおよび HTTP/2 用の Apache を設定する方法をご参照ください。 

Marketplace アプリおよびサードパーティのカスタム アプリ

Marketplace アプリやカスタム アプリには、CDN 機能と互換性がないものがあります。コンテンツ デリバリ ネットワーク管理者画面のヘルス チェックによって、互換性のないアプリがあるかどうかを確認できます。 

アプリに互換性がない場合の対応方法については、「CDN 構成で Data Center でユーザーがインストールしたアプリのヘルスチェックに失敗する」を参照してください。 

独自のプラグインを開発している場合、「Confluence 7.0 の準備」で、プラグインの互換性を確認するために使用できる API についての情報を参照してください。

最終更新日: 2020 年 1 月 24 日

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

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