Atlasssian Data Center アプリケーションで CDN を使用する
On this page:
CDN サポートは次の製品の Data Center 版で提供されます。
- Jira Software 8.3
- Jira Service Management (旧 Jira Service Desk) 4.3
- Confluence 7.0
- Bitbucket 6.8
CDN の使用を開始する
Jira Data Center で CDN を有効化するために必要な手順の概要は以下のとおりです。
- アトラシアンのテンプレートを使用して AWS CloudFront ディストリビューションをスピンアップするか、任意の CDN ベンダーでアカウントを作成します。
- サイトへ CDN の到達を許可するよう、ロード バランサとファイアウォールを更新します。
- Jira Data Center アプリケーションで CDN URL を提供し、CDN サポートを有効化します。
エンド ユーザーが Jira にアクセスすると、最も近いエッジ サーバーに静的アセットがキャッシュされ、有効期限が切れるまでそこから提供されます。つまり、ユーザーがオンラインになるタイミングや、各拠点でサイトにアクセスするタイミングによっては、CDN による影響の確認に時間がかかる可能性があります。キャッシュを事前にロードする機能は提供されていないため、アセットは初回の提供時にキャッシュされます。
手順の詳細については「Jira 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 を使用することでユーザーにメリットがもたらされる可能性があります。
また、ユーザーの地理的な位置にも考慮する必要があります。例えば、サーバーがフランクフルトにあり、チームの大部分がドイツとオーストリアを拠点としている場合、マレーシアにいるチームは遅延が大きくなり、それによってページのロード時間も遅くなる可能性があります。
traceroute
、ping
、mtr
などのネットワーク診断ツールは、発生している遅延の量を確認するのに役立ちます。
キャッシュ対象
Data Center アプリケーションまたは Marketplace アプリで提供される静的アセットのみがキャッシュされます。これは Data Center アプリケーションやアプリをアップグレードした時にのみ変更されます。動的コンテンツはキャッシュされません。
CDN を有効化した際にキャッシュされる内容の要約は次のとおりです。
キャッシュ対象 | キャッシュ対象外 |
---|---|
|
|
キャッシュを手動で無効化する必要はありません。これは、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 でユーザーがインストールしたアプリのヘルスチェックに失敗する」を参照してください。
独自のプラグインを開発した場合、プラグインの互換性を確認するために使用できる API について、「Jira Data Center のためのコンテンツ デリバリ ネットワーク (CDN)」を参照してください。