→ どちらもメリット・デメリットがあり、運用に合わせて最適な構成を選択する必要があります。
microCMSで複数のウェブサイトを管理する方針は、大きく以下の2つに分けられます。
1つのサービスで複数サイトを管理する
1つのサービス内でサイト別にAPIを用意し、ロールで操作範囲を制限する方針です。
以下の画像のように、1つのサービス内に複数のサイト用のAPIを作成して管理します。
サイトごとにサービスを分ける
サイトごとにサービスを用意する方針です。
以下の画像のように、サイトごとに複数サービスを用意し、サービス内に作成するAPIは各サイト専用として管理します。
どちらの方針にもメリット・デメリットがあるため、各運用要件やセキュリティポリシー、コスト要件に応じて、最適な構成を選択する必要があります。
以下の観点で、2つの方針のメリット・デメリットをご案内します。
- 権限・セキュリティ
- 運用・設計難易度
- 担当者の負担
- 移行・拡張性
- 機能的な制限
- 複数サイト間の連携の容易さ
- パフォーマンス
- コスト
権限・セキュリティ
高い権限・セキュリティ管理が必要な場合、サイトごとにサービスを分けることで、権限設定やAPIキー管理の単純化、セキュリティリスクの局所化が可能です。
1つのサービスで複数サイトを管理する場合
1つのサービスで複数サイトを管理する場合、サイトごとにロールを作成するなどの対応が必要となります。
APIを追加した際に、都度権限の調整が必要となり、権限の設定ミスによるリスクが高まります。APIキーも同様で、適切に権限を設定していなかった場合、漏洩時の影響範囲が広がってしまいます。
サイトごとにサービスを分ける場合
権限をサービスレベルで分けられるため、1サービス内で複雑なロールを設計する必要がなくなります。APIキー漏洩などのセキュリティリスクも限定的になります。
運用・設計難易度
サイトごとにサービスを分けた方が、比較的運用や設計の難易度が低くなります。
1つのサービスで複数サイトを管理する場合
複数サイトを1サービスで運用する場合、APIを1サービス内で設計する必要があり、API設計が複雑化し、設計ミスのリスクが高まります。
例えば、1サービス内で同一のエンドポイント名は使用できないため、APIの命名規則を事前に整備して命名の衝突を避ける必要があります。
サイトごとにサービスを分ける場合
サイトごとにサービスを分けることで、設計・運用作業の範囲が明確になります。1サービスあたりの管理対象が1サイトとなるため、運用手順や設計ルールを単純化できます。
担当者の負担
サイトごとに担当者が分かれているか、すべてのサイトを担当者が横断して管理するかによって、適切な方針が変わります。
1つのサービスで複数サイトを管理する場合
一般に、1つのサービスで複数サイトを管理する場合、管理画面で目的のAPIを探しにくくなり、操作効率の低下につながる可能性があります。一方、1つの管理画面ですべてのサイトのAPIを管理できるというメリットもあります。
サイトごとにサービスを分ける場合
サイトごとに担当者が分かれている場合は、サイトごとのAPIを横断して管理する必要がないため、サイトごとにサービスを分けることで、管理画面の操作効率を上げることができます。
移行・拡張性
サイトごとにサービスを分けることで、移行を容易に行えたり、拡張性を保てます。
1つのサービスで複数サイトを管理する場合
1サービスですべてのウェブサイトを管理する場合は、将来的に特定のサイトのみを譲渡したり、別システムに切り出す必要が出てきた場合などに、移行や分離が困難になることがあります。
サイトごとにサービスを分ける場合
サービスをサイトごとに用意しておけば、将来的にサイトごとに運用会社を変更したり、別サービスに移行したい場合も、1サイト=1サービスで独立しているため、移行コストやリスクを抑えられます。
機能的な制限
複数サイトを1サービスで運用する場合、機能的な制限に注意する必要があります。
1つのサービスで複数サイトを管理する場合
データ転送量やAPIリクエスト数などはサービス単位で集計され、API単位では集計できないため、サイトごとの利用状況を細かく把握できません。
また、1サービスで作成できる複数環境は原則10個までのため、各サイトでステージング環境が必要な場合、複数環境が不足する可能性があります。
1サービス内のAPI数が多くなりがちなため、レートリミットにも注意が必要です。
サイトごとにサービスを分ける場合
サービスがサイトごとに分かれているため、データ転送量などの利用状況をサイト単位で確認できます。
また、複数環境の個数制限やレートリミットについても、1つのサービスで複数サイトを管理する場合に比べると制約とならないケースが多いです。
複数サイト間の連携の容易さ
1つのサービスで複数サイトを管理することで、サイト間で同一コンテンツを取り回せるメリットが得られます。
1つのサービスで複数サイトを管理する場合
サイト間でコンテンツやメディアを共用したいケースでは、1サービスで複数サイトを管理するメリットを享受できます。
サービスを共用するため、サイトAの画像やコンテンツをサイトBでも利用したり、コンテンツ参照を使ってカテゴリーを共用することが可能です。
サイト間連携が容易になり、二重管理が生まれにくくなります。
サイトごとにサービスを分ける場合
サイトごとにサービスを用意する場合は、コンテンツやメディアの共用はできません。二重管理を回避するには、外部ストレージやAPI連携などの追加設計が必要です。
パフォーマンス
サイトのパフォーマンスについては、どちらの方針でも差はありません。
コスト
1つのサービスで複数サイトを管理する方がコストを低く抑えやすいですが、実際の利用状況や契約に依存します。
1つのサービスで複数サイトを管理する場合
1つのサービス内で複数サイトを管理する場合、サイトごとの契約が不要なため、コストを抑えやすくなります。
サイトごとにサービスを分ける場合
サイトごとにサービスを用意する場合、サイトごとに契約が必要なため、コストが高くなる傾向があります。
ただし、データ転送量やメンバー数、API数が多い場合は、従量課金により両方式のコスト差が縮小する場合があります。
Enterpriseプランの場合は1つの契約で複数サービスを利用できるため、サイトごとにサービスを分ける場合でも、契約でコスト調整が可能です。
各方針が適しているケース
ここまでの観点を踏まえ、どちらの方針が適しているかをケースごとにまとめます。
1つのサービスで複数サイトを管理するのが適しているケース
- サイト間でコンテンツやメディアを共有したい場合
- 複数のサイトを特定の担当者が横断管理したい場合
- コストを最優先したい場合
サイトごとにサービスを分けるのが適しているケース
- 権限やセキュリティのリスクを最小化したい場合
- 運用や設計を単純化したい場合
- サイトごとに担当者が分かれている場合
- 将来的に他事業者などに譲渡予定のウェブサイトがある場合
- サイトごとの利用状況を細かく管理したい場合
なお、本ヘルプでご案内した2通りの方針を両方取り入れることも考えられます。
例えば、microCMSで管理したいサイトのうち、サイトのターゲットや担当者でサイトをグルーピングし、それぞれのグループごとにサービスを作成して運用する、などの方針も有効です。