AWS EC2 に Mautic をインストールする

admin
admin

コンクリートファイブジャパン 岩本です。

 

本日は、話題のマーケティングオートメーションツール「Mautic」を GitHub から入手し、AWS EC2 にインストールする手順のご紹介です。他のVPSや、専用サーバーで利用される場合は、利用環境に沿い読み替えてください。

ちなみに、Mautic は弊社コーポレートサイトでも導入・運用しています。

 

AWS EC2 の初期セットアップについては割愛しますので、こちらこちら を見ていただくとして、初期セットアップが完了したところから解説を進めます。また、Mautic のインストールにあたりインストール途中で GitHub のアカウントが必要になりますので、事前にご用意ください。

 

では、まず必要なミドルウェアをEC2にインストールしていきます。Mautic はいわゆるLAMP(Linux Apache MySQL PHP)で稼働しますので、Apache、PHP、MySQL をインストールしましょう。

今回は簡易なインストール方法のご紹介として、EC2 内に MySQL をインストールしましたが、AWS を利用する場合は RDS を利用することをお勧めします。※RDSを利用する理由は、こちら をご参考ください。

さらに、運用面を考えると、サイト規模によっては大容量のデータが保存されることが想定されますので、Amazon RDS for Aurora がおすすめです。


今回のミドルウェア環境には、PHP 5.6 を利用しました。パフォーマンスを考えると、PHP7 を利用したいところですが、執筆時点で Mautic は PHP7 に対応していません(3月中にリリース予定のバージョン1.3から対応される予定です)。


それでは、早速 Mautic のインストールを進めていきましょう。

GitHub から Mautic を入手する場合、PHP のライブラリをインストールする「composer」コマンドが必要となるため、composerのインストールを行います。

これで composer コマンドの準備が完了しました。


GitHub より最新版の Mautic のダウンロードを行い、ZIPファイルを解凍します。今回は master ブランチをダウンロードしていますが、安定版をインストールしたい方は、タグから入手してください。

cd /usr/local/src
# お作法的に、まずsrcディレクトリにダウンロードします

wget https://github.com/mautic/mautic/archive/master.zip
# Githubより最新版をダウンロードします

unzip master.zip
#解答すると、mautic-master というディレクトリが作成されます。


次に解凍されたディレクトリに移動し、composer コマンドで必要なモジュールのインストールを行います。

cd mautic-master/

composer install


環境によっては、下記のように、composer でのインストール中に Github の Token を尋ねられます。GitHub のAPI制限に引っかかり、GitHub にアクセスが行えなくなるためです。

Could not fetch https://api.github.com/repos/fuel/auth/git/refs/heads?per_page=100, please create a GitHub OAuth token to go over the API rate limit
Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+<servername>+201X-XX-XX+XXXX
to retrieve a token. It will be stored in "/XXXXX/XXXXXX/.composer/auth.json" for future use by Composer.
Token (hidden): 


この際は、メッセージ中にある Head to 以下のURLにブラウザからアクセスを行い、GitHub で Token を発行後、発行された Token をコンソール画面へと入力します。この際、タイプされた文字は表示されません。


composerのインストールが完了したら、mautic-master ディレクトリ内のすべてのファイルをApacheの公開ディレクトリへと移動させます。

併せて、下記の3ディレクトリをApache(Webサーバー)からアクセスを可能とするためオーナーとパーミッションの変更を行います。

./app/cache

./app/logs

./app/config

chown -R hogeuser.apahce /var/www/vhosts/hogehoge.com/app/cache
chown -R hogeuser.apahce /var/www/vhosts/hogehoge.com/app/logs
chown -R hogeuser.apahce /var/www/vhosts/hogehoge.com/app/config

chmod -R 775 /var/www/vhosts/hogehoge.com/app/cache
chmod -R 775 /var/www/vhosts/hogehoge.com/app/logs
chmod -R 775 /var/www/vhosts/hogehoge.com/app/config


上記設定が完了後、ブラウザからサーバーのURLを開くことで、Mauticのインストールウィザード画面が表示されます。

あとは、ウィザードに沿い順に進んでいくことで、Mautic のインストールは完了します。


Mautic のインストール完了後、サーバーに cron の設定を行います。Mautic はリードの更新やメール送信などの定期処理をコマンドラインから行います。これらのコマンドは、cron を使って定期実行させるのが一般的です。

cron の実行はプログラムの挙動により、apache権限で実行させる必要があるので、下記のように記載します。

# Updating Lead Lists
*/30 * * * * sudo -u apache /usr/bin/php /var/www/vhosts/hogehoge.com/app/console mautic:campaigns:trigger

# Update Campaigns
*/30 * * * * sudo -u apache /usr/bin/php /var/www/vhosts/hogehoge.com/app/console mautic:campaigns:update

# Execute Campaign Actions
*/30 * * * * sudo -u apache /usr/bin/php /var/www/vhosts/hogehoge.com/app/console mautic:leadlists:update

# Sending Email
*/30 * * * * sudo -u apache /usr/bin/php /var/www/vhosts/hogehoge.com/app/console mautic:email:process

上記の例では、全処理を30分ごとに実行していますが、DBのデータの蓄積量や運用に合わせて、各処理の間隔や実行時間など適時調整の必要が出てくることが予測されます。


以上の設定が完了したら、Mautic のトラッキングgifをサイト上に埋め込むことで、実際にデータの取得が行えます。

<img src="http://hogehoge.com/mtracking.gif" />


まとめ

composer のインストールなどが少し手間ですが、Mautic のインストール自体は concrete5 を含めた一般的なCMSとほぼ同じように、ある程度の経験があればインストールは可能です。

ただし、実際に Mautic を運用していくには、下記のような点が課題として考えられます。

  • 機能の特性上(セキュリティ的な観点で)サブディレクトリではなく、本サイトとは独立したサーバーで運用する方が良い。
  • 機能の特性上(セキュリティ的な観点で)ビーコン(imgタグ)のURLはSSL通信が望ましい
  • 蓄積させるデータの増加に対してインフラ・サーバー側でどのように対応していくかを検討する必要がある
  • 管理画面へのアクセス制限を行う
  • 保存されるデータの安全性
  • 高負荷サイトへの導入時のトラッキングgifの負荷対策
  • 蓄積され続けるデータの永続的な保存について
  • メール配信の遅延、不達処理について
  • IPアドレスが分散する冗長化構成でのリードデータトラッキングの対策

このように、Mautic を実運用レベルで利用するには、一般的なコーポレートサイトとはまた違った Mautic に沿ったインフラ設計が必要と感じました。

弊社では Mautic を実際に運用しながらこれらの課題への対応を進めています。

まずは、お気軽にご相談ください。

インフラコンサルティングサービス

お問い合わせはこちら