メニューを閉じる

テクノデジタルグループ

メニューを開く

2022.09.29

インフラ

【CMS】Movable Type Premium触ってみました

目次

– はじめに
– 概要
– なぜ Movable Type Premium?
– 本題
– 終わりに

はじめに

本ブログをお読みになってくださっている皆様、こんにちは。MTです。
私事ですが、最近天気や気温などの変動が激しく体調を崩しがちです、、
この季節は仕方がないとはいえ、皆様もお気をつけください。
さて、本日の記事について紹介します。
本日は、「Movable Type Premium」というサービスに触れる機会があり、
その時得た知見の紹介をさせていただきます。

概要

Movable Type Premiumは、
シックス・アパート株式会社様の提供する 「Movable Type」をシックス・アパート株式会社様と
株式会社スカイアーク様が共同で機能強化し、提供されているサービスです。
こちらは有償のCMSですが、フィジビリティのテストのために、
一ヶ月間の無料トライアル版を利用させていただきました。
以降の項目で解説はするのですが、なぜ選んだか、の決め手になるプラグインに関して利用するまで、
ざっくりとお話ししていきたいと思います。

なぜ Movable Type Premium?

そもそもなぜこのサービスを選んだのか、という点ですが、とても簡単に言うと
弊社の持つノウハウを活かしながら最高のパフォーマンスを出せる選択肢であると考えられるから、です。
その理由は至ってシンプルなのですが、
1. 弊社導入実績のあるサービスが元になっていること
2. AWSと組み合わせた静的ホスティングが実現可能であること
の2点です。
このうち、特に2の条件が重要で、1のみであれば通常のMovable Typeの方が実績もあり、適しています。
しかし、Movable Typeのサービス群の中で、Amazon S3にコンテンツを同期し、
CDNと組み合わせることで、高セキュリティを担保しながらサイト公開が可能なものは
このMovable Type Premiumのソフトウェア版のみ[※注1]でした。

[※注1]: MovableTypePremiumにはクラウド版もありますが、こちらはS3ホスティング未対応
公式Q&A

したがって、AWSの持つ優れたセキュリティ対応、S3の耐久性と可用性、CloudFrontの速度、
これらを利用しながらMovable Typeで管理するサイトを構築できるために、
保守運用のコストを抑えながら高いパフォーマンスが見込める、
Movable Type Premium を採用させていただきました。

本題

それでは、本題に入っていきたいと思います。
とはいえ、大部分に関してはMovableTypeの公式ドキュメントに加え、
付属のユーザーガイドに記載された要件、
手順にしたがって構築することになりますので、本稿では割愛させていただきます。

ならば何について話すのか、それはサービス選定の決め手となったS3との同期機能について、
並びに付属する検索機能の導入についてざっくりとだけご紹介させていただきます。
詳しい設定などはユーザーガイドに掲載されているので、
自分の所感や注意点になりそうな箇所を主に紹介させていただきます。

これら機能のプラグインは、MovableTypePremiumのパッケージに同梱されていますので、
基本的には、公式の紹介する手順でMovableTypeをインストールする手順で問題なく入るのですが、
perlのモジュールの不足、ネットワーク設定のミスなどでインストールに失敗することがあります。
失敗する場合は前述したドキュメント類に従って、
(特にユーザーガイドに記載されている追加の要件は見落としがちです)
各種perlモジュールの追加や、MovableType配置サーバーが自身に対して
httpリクエストできるかをチェックしてみてください。

1. S3との同期機能

S3同期機能を担うプラグインは、SiteSyncプラグインというプラグインです。
こちらのプラグインでは、作成したサイトの内容(=対象サイトのサイトパス配下のファイル群)を
S3と同期させることが可能です。なお、子サイトがある場合、それらも込みで同期することが可能です。

同期方法は、プラグイン導入、設定を完了したのち、
サイドバーに表示される「同期」タブから同期タスクを作成、
タスク作成後に、run-periodic-tasksというソースを実行することで同期が実行されます。
ガイドにもありますが、一般的にはソース実行をcronで定期実行し、
反映するように対応するのが一般的であると思います。

本機能を用いた同期、公開を行う際気をつけなければならないことは、同期される範囲だと考えます。
SiteSyncではサイト配下の内容のみが反映されます。
つまり基本的にmt-staticディレクトリのファイルなどを読み込んで利用する場面を含む場合、
それらのファイルを読み込むためにMovableTypeのサーバーにアクセスするような構成に
気づかぬうちになってしまっている可能性が否めません。
(基本的にはCDNの設定などにより、読み込めない形で発覚するとは思いますが)
実を言うと私個人はMovable Type初心者であるため、サイトの作成をしてみて、
よし同期した!確認しよう!としてエラーまみれのページをみて愕然としました、、

解決策としては至ってシンプルで、mt-staticの内容を別でS3に上げることで対応しました。
AWS CLIを使ってMovableTypeのサーバから、mt-staticを丸ごとアップロードしておくことで読み出せるようにしました。
この時パス設定などに気をつければ問題なく扱えると思います。
なお、mt-staticは基本的に変更の少ないファイルではありますが、
テーマ変更をした時などに変更されることがありますのでその際は上げ直しが必要になりますので、ご注意ください

2. 検索機能

Movable Type Premiumには、Premium Searchという検索機能を提供するプラグインも含まれています。
こちらのプラグインは、Elastic Searchサービスを利用して全文検索を提供できるようにするプラグインです。
ざっくりいうと、サーバ側で公開サイトをクロールした結果をElasticSearchに持たせ、
そのドキュメント群に対して全文検索をかけることができるようにすることで、
サイト利用者がMovable Typeのサーバーにアクセスする範囲を最小限にできる機構が構築できるということですね。

こちらElastic Search はAWSのものを推奨しているということで、こちらの用意をします。
ここで一点注意する必要があるのは、Amazon Elasticsearch Serviceはなくなっている、という点です。
Elasticsearchのライセンス変更に伴い、無償利用が不可能になったため、
ElasticSearchの無償版の最終ソースをフォークし、
構築されたAmazon OpenSearch Serviceが後継として展開されています。
こちらでElasticsearchを検索エンジンに設定したクラスターを作成する必要があります。

PremiumSearchの導入、設定をガイドに従って完了させるのですが、この際にクローラの動作の指定も行います。
注意しなければならないのは、そもそもプレフィックスの違うものはクロールされないことと、
開始URLから繋がっているリンクが存在していないものはクロールできないことの2点です。
Movable Typeでは独自タグを用いた補完なども多くあるため、特に私のように慣れていない方は、
作成された記事のソースを確認するなどして、
意図したリンクがつながっているかの確認は怠らないようにするべきかと思います。

導入後実際に試す場合は、
PremiumSearchのAPIリファレンスをgithubに上げてくださっていますので、
こちらからサンプルコードを取得して試してみると、スムーズに動作確認できるかと思います。

これは個人的に躓いたことなのですが、CloudFront+S3の設定を行う際、
パスベースで検索のパスのみALBに向けることになると思うのですが、
ALBにIP制限などがかかっていると、少し手を加える必要が出てきます。
対処方法としてはAWSのマネージドプレフィックスリストの利用が可能です。
1. AWSコンソールのVPCの項目にあるマネージドプレフィックスリストなどから、
com.amazonaws.global.cloudfront.origin-facingのIDを確認
2. セキュリティグループの作成で、インバウンドルールのソースが、
  1のプレフィックスリストであるルールからのHTTPSアクセスを許可したグループを作成
3. ALBに付与
この流れで対策は可能です。

終わりに

以上で本稿の記事は終わります。
今回の記事は、Movable Typeの初心者がMovable Type Premiumの機能を使ってみた、
という記事になり、熟練者の方からすると当たり前の情報なども多く、
ためにならなかったやもしれませんが、それでも少しでもためになった!
という方がいらっしゃいましたら幸いです。
これからも些細な躓きから得た知見など共有できたらと思います。
また、今回は自分の課題解決が体当たりすぎてメモを見返してもまとまらず、
お見苦しい記事になってしまったかと思いますが、
最後までお付き合いいただきありがとうございました。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事