AWS Elastic BeanstalkでKentico Xperience 13 を実行する

2021.08.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

Kenticoのドキュメントには、AWSでの構築方法の手順がありますが、EC2での構築手順しかありません。

PaaS環境で稼働させるべく、本日はElastic Beanstalk + RDSで実行してみたいと思います。
また、AWS Toolkit for Visual Studioを使ってElastic Beanstalk環境を簡単にデプロイ出来ますのでその方法をとっています。

データベースのセットアップ

今回はWebアプリケーションをElastic Beanstalkへデプロイします。
よって、データベースを外部に用意したいと思いますので、Amazon RDSを使ってみましょう。

セットアップ方法ですが、KenticoのデータベースにはSQL Serverを利用しますが、インストール済みのKenticoインストーラーから新規サイトを構築すると参照しているインスタンスに新規データベースを作成することが可能です。
通常はローカルデータベースへ作成したのちに外部データベースへエクスポートすることが多いですが、本日はアプリケーション側に焦点を当てているために、インストーラーを実行するローカル端末からRDSに直接アクセスしそのままセットアップさせてることにしました。

Kentico13では、Microsoft SQL Server 2012~2019とされています。
エディションの指定もありません。

SQL Server 2019 Express Edition で Amazon RDSを作成します。

ちなみにクライアントから直接接続が出来るように、パブリックアクセスの設定をしてあります。

インストール済みのインストーラーを実行します。
インストール手順は以下にまとめてあります。

今までと異なる点ですが、Database設定セクションでI have access to SQL serverを選択し、RDSのエンドポイントと認証情報を入力することです。
これでインストール処理の中で、RDS上に必要なデータベースやテーブル・データ・スクリプトなどを作成してくれます。

アプリケーションのデプロイ

先程のインストールでwwwroot配下にアプリケーションがセットアップされています。
インストール時に選択したKentico MVCでは、管理アプリケーションとライブサイトアプリケーションの2つのアプリケーションがデプロイされます。

そしてインストーラーではサンプルウェブサイトとしてDancingGoatを選択したため、ライブサイトアプリケーションもそのようになっています。

Elastic Beanstalkへは2つともデプロイが必要です。

今回のデプロイにはAWS Tooklit for Visual Studioを使用したいと思います。
Visual Studioの拡張機能で、Visual Studio上でのAWSアプリケーションの開発・デバッグ・デプロイを行うにあたり便利な機能が備わっています。

先程のソリューションファイルをVisual Studioで開いて、プロジェクトファイルを右クリックしPublish to AWS Elastic Beanstalkを選択します。

ウィザードに従ってセットアップすれば特に問題はありませんが、オプションセクションにて、RDSのセキュリティグループを選択しておくとBeanstalkからの通信が自動で許可されます。
ここで選択しなかった場合は、後ほどセキュリティグループの設定を行って通信の許可を行ってください。

セットアップされました。
マネジメントコンソール上でもアプリケーションが作成されています。

通常のWebアプリケーションであればこれで終わりなのですが、Kenticoの場合はセットアップ直後はエラー画面となります。

Kenticoサイトアプリケーションへのカスタムドメイン登録と、クライアントポータルでライセンスキーの発行&登録が必要です。
今回はBeanstalkで作成されたデフォルトドメインを使用しますので、こちらを使ってライセンスキーを発行します。
発行したライセンスキーをサイトアプリケーションへ登録します。

使用出来るようになりました。

まとめ

  • KenticoはElastic Beanstalkでもデプロイして動作させることが出来る
  • インストーラーから直接RDSへセットアップすることも出来る
  • AWS Toolkit Visual Studioを使うととても簡単にElastic Beanstalkへデプロイが出来る。