当サイトを最適な状態で閲覧していただくにはブラウザのJavaScriptを有効にしてご利用下さい。
JavaScriptを無効のままご覧いただいた場合には一部機能がご利用頂けない場合や正しい情報を取得できない場合がございます。
承知しました
本サイトではWebサイトのエクスペリエンスを向上させるために、Cookieを使用しています。Cookieはブラウザの設定から無効にできます。本サイトで使用するCookieについては、プライバシーポリシーをご確認ください。

Blog

ブログ

開発者向け

ヘッドレスCMSはAWSセットアップにどのように適合しますか?

By Boris Pocatko  

マイクロサービス主導のセットアップの柔軟性は、開発者がプロジェクトをより迅速に提供するのに役立つことをご存知ですか?ヘッドレスコンテンツ管理システム(CMS)がAWSのセットアップにいかに簡単に適合するかをご覧ください。

Kentico Cloud( ヘッドレスCMS )を使用すると、ヘッドレスに焦点を当てたすべてのアーキテクチャがマイクロサービスとその多くの順列に基づいているため、十分な柔軟性があります。AWSでKentico Cloudプロジェクトを設計する方法について、少なくともいくつかのアイデアと、おそらくより明確にするために(アマゾンウェブサービス)次の図を用意しました。この図には3つの主要なセクションがあります。下から順に、Kentico Cloud、その他のサードパーティサービス(説明用)、およびAWSインフラストラクチャです。

Kentico CloudAWSセットアップのサンプル
Kentico CloudAWSセットアップのサンプル

Kenticoクラウド

Kentico Cloudの部分は次のとおりです(機能セットの側面に焦点を当てています)。

Kentico CloudAWSセットアップのサンプル
Kentico CloudAWSセットアップのサンプル


利用可能な図のこの部分にはすでに詳細なアーキテクチャの記事があるため、KenticoCloudの技術的な詳細についてはあまり詳しく説明しません。

サードパーティのサービス

このセットアップは主にAWSサービスの使用に重点を置いていますが、Kentico Cloudと組み合わせて使用できる他のサービスがたくさんあることを示すために、この図にいくつかのサンプルサードパーティサービスを含めました。

AWS
AWS


Slack WebhookStripe for Payments、 Algolia searchなど、サードパーティの統合をカバーする多くのリソースがすでにブログにあります。これらのほとんどは、KenticoCloudまたはサードパーティのアプリWebhookを活用することで実現されます。他の可能なアプローチは、ターゲットのサードパーティアプリにWebhookサポートがない場合に、Kentico Cloud WebhookとLambda関数などのビジネスロジックの中間層(図には示されていません)を使用することです。一部の統合は、完全に切り離すか、フロントエンドのみにすることができます。典型的な例はOptimizelyです。

アマゾンAWS

最後の部分は図のAmazonセクションであり、説明のために、利用可能なさまざまなサービスが含まれています。

AWSのセットアップ
AWSのセットアップ


ほとんどの場合、最終的なプロジェクトではこれらのサービスのサブセットのみが使用されることになりますが、マイクロサービス駆動型アーキテクチャの柔軟性を示すために、それらのいくつかを含めました。図を見ていき、ネットワーク層、アプリケーション自体、コアAWSサービス、およびオプションのモジュールに少し分解してみましょう。

ネットワーク層

ユーザーリクエストは、右上隅のネットワーク層を介して処理されます。このレイヤーは、必要に応じてIPフィルタリング、CloudFrontサービス内のリソースのキャッシュを担当し、必要に応じてロードバランサーに接続して自動スケーリングします。 KenticoCloud関連のリソースはすでにFastlyCDN内にキャッシュされているため、これはHTML出力やCSSファイルなどの他のリソースのキャッシュレイヤーになるか、ネイティブのKentico CloudFastlyキャッシュの上に配置される可能性があることに注意してください。

応用

アプリケーション自体は左上隅に示され、マルチインスタンスセットアップで示されているそのようなセットアップの柔軟性を示しています。これらのアプリケーションはフレームワークに依存しないため、セットアップのこのセクションでホストされるフレームワークはユーザー次第です。 Node.js、.NET、またはその他のバックエンドフレームワークを実行している可能性があります。セットアップのこの部分は通常、ビジネスロジックを担当します。

コアAWSサービス

ネットワークとアプリケーションの部分の間に、コンテンツに関連しないアセットを保存するためのコアAWSサービスがS3またはElasticCacheにあります。これはアーキテクチャへのマイクロサービス主導のアプローチであるため、これらは他のサービスと交換でき、まったく必要ない場合があります。

オプションのモジュール

上記のサービスは、図のこの部分の下部に示されているオプションのモジュールでも利用できます。たとえば、検索を有効にするために、クラウド検索サービスを利用したり、追加のビジネスロジックとして、ユニバーサルラムダ関数をAPIゲートウェイを介して、通知ゲートウェイなどの他の非AWSサードパーティサービスに接続したり、前述のようにSlackに接続したりできます。またはZapierアプリ。

すべてをまとめる

上記の3つの主要部分は、開発者向けのRESTfulAPIを介して接続されています。 Kentico Cloud用のSDKのセットもあり、セットアップのこの部分の実装を簡単にします。

Kentico CloudAWSセットアップのサンプル
Kentico CloudAWSセットアップのサンプル


すべてのリクエストは、KenticoCloudによってネイティブに使用される組み込みのFastlyCDNを介して供給され、構成やセットアップは必要ありません。すべての応答はJson形式であるため、応答の操作は簡単です。 AWSでのセットアップがどのように見えるかを理解するために、スマートフォンアプリケーション、モバイルディスプレイのセットアップ、およびWebなどの従来のチャネルなどのいくつかのチャネルにコンテンツをプッシュする必要があるとします。

コンテンツの流れ

上記のセットアップを念頭に置いて、コンテンツの流れとセットアップの内部で何が起こっているかを追跡しましょう。

コンテンツ

編集者はKenticoCloudを使用して、コンテンツ戦略に完全に適合する洗練されたコンテンツで共同作業を行うことができます。公開に達すると、インフラストラクチャ全体に自動的に伝播されます。

Kentico CloudのWebhookが起動し、AmazonLambda関数がElasticsearchの検索インデックスを更新します。同じイベントが、キャッシュの更新のために異なるWebhookをトリガーします。次に、コンテンツは、適切なフォーマットを念頭に置いて、WebチャネルのElasticキャッシュに事前にキャッシュされます。

表示ペインは、HTTPSリクエストでライブコンテンツのサブセットをフェッチします。モバイルアプリは、REST呼び出しを使用してコンテンツ自体を取得し、需要に応じてコンテンツを取得します。

この方法で公開されている記事の下部には、KenticoCloudのPersonalizedContent RecommendationEngineを利用した関連コンテンツを推奨する短いセクションがあります。上記のどのプラットフォームでも、APIの使用は簡単です。

概要

開発者向けのAPIを構築し、他のシステムへの接続を可能な限りシームレスにするために積極的に取り組んでいます。マイクロサービスアーキテクチャを念頭に置いて次のプロジェクトに取り組むことの素晴らしい点は、その柔軟性です。このようなセットアップの一部を交換する必要が生じた場合でも、従来のCMSの組み込みコンポーネントを変更する場合と比較して、変更はおそらくわずかです。マイクロサービス主導のアーキテクチャにより、セットアップの一部を簡単に交換できます。これの実際の話は、MVPのAndrewThompsonによって語られました。

以下のコメントセクションで、このセットアップを強化するAWSサービスが他にあるかどうかをお知らせください。または、AWSがホストするセットアップを検討している場合はご連絡ください。空欄を埋めるお手伝いをいたします。幸せな建築!

Headless CMSの導入をお考えでしょうか?

クラウドとマルチデバイスに最適化されたKentico Kontentをお試しください