コラム
2018/12/05

Sitecore技術情報(2)Sitecoreにおけるサーバスケールの考え方

  • CMS
  • 開発
  1. Sitecore9の製品構成と主な周辺ミドルウェア(1)
  2. Sitecoreにおけるサーバスケールの考え方(2)

Sitecoreでは、各サーバが担う役割を「サーバロール」として定義しています。今回はこのサーバロールとサーバ分散構成の考え方を説明したいと思います。

リーフレットダウンロード  「Sitecore」をもっと知りたい方はこちらへ

関連製品

    Sitecoreのサーバロール

    Sitecoreでは各サーバが担うべき役割をサーバロールという単位で定義していますが、1台のサーバに対して、複数のサーバロールを割り当てることが可能です。

    「Sitecoreが提供する機能を意味のある単位で束ねたもの」がサーバロールと考えると、理解しやすいかもしれませんね。

    サーバロールの定義には、データベースや検索エンジンインデックス等のいわゆるデータストアが含まれない点と、製品毎に必要となるサーバロールが異なる点に注意しましょう。

    以下に主要なサーバロールを例示します。xConnectは単純化して表記していますが、更に細分化することも可能です。

    # サーバロール名 説明
    1 Content Delivery Webサイトを外部へ配信する。いわゆるWebサーバのこと。
    2 Content Management CMS機能を提供する。コンテンツエディター等の管理画面全般もここが提供する。
    3 Processing 行動履歴データ等を元にReporting用のデータの加工・整形を行う。
    4 Reporting 集計した結果をレポートとして出力する。
    5 xConnect サイト訪問者の行動履歴を収集・検索するAPI等を提供する。

    サーバロールの詳細は、下記ページ(英語)が参考になります。

    https://doc.sitecore.net/developers/architecture-and-roles/architecture/index.html

    Sitecoreにおけるサーバ分散構成

    開発環境ではあまり信頼性を求められないため、1サーバへ全サーバロールを割り当てる構成とする場合もありますが、信頼性を求められる本番環境では、複数台のサーバによる分散構成を採用することが多いです。

    このような場合、非機能要求に応じて垂直スケールと水平スケールを組み合わせて構成を検討していくことになります。

    先ほど説明したサーバロールを踏まえ、Sitecoreにおけるスケール方式について説明していきます。

    • 垂直スケール

      同一サーバロールのサーバを複数台用意することにより、スケールすることを指します。

      ロードバランサ(LB)等による負荷分散制御や、セッション維持方式(Sticky Session)に関する検討が必要となりますが、可用性を向上できるため、主にContent Deliveryサーバロールで採用されることが多いです

      垂直スケール
    • 水平スケール

      1サーバへ複数サーバロールを割り当てている場合に、一部のサーバロールを別サーバへスケールすることを指します。

      水平スケールを行うことでサーバ停止時の影響を局所化でき、サーバの負荷特性に応じたチューニングが行いやすくなりますが、サーバリソースを効率的に利用することは難しくなります。(サーバ毎にリソースのバッファを確保する形になるため)

      外部公開されるContnet Deliveryサーバロールは専用のWebサーバとして分離することが多いですが、バックヤードとなるContent Management、Processing、Reporting等の各サーバは要求される処理量に応じて分離を検討する形になります。

      水平スケール
    手塚

    どのようなサーバ構成とするかは、要求に応じて個別検討する必要がありますが、推奨されるサーバロールの組み合わせ等も考慮する必要があります。 次回はその一部をご紹介していきたいと思います。

    1. <<
    2.   
    3. 1
    4.    
    5. 2
    6.  
    7. >>