Oracle CloudにMAツール「Mautic」をデプロイする (Application Container編)

こんにちは id:dhigashi です。

前回に引き続いて Oracle Cloud 上で Mautic を稼動させていきます。

cloudii.atomitech.jp

前回は Oracle MySQL Cloud Service を利用し MySQL サーバを構築しました。
今回は Oracle Application Container Cloud Service を利用し PHP アプリケーションをデプロイします。

Mautic

https://www.mautic.org/download/ からアプリケーションを取得し展開します。

$ cd mautic/2.13.1/
$ ls -1
LICENSE.txt
app
critical_migrations.txt
favicon.ico
index.php
media
offline.php
plugins
robots.txt
themes
translations
upgrade.php
vendor

チュートリアル 及び メタデータ・ファイルの作成 に従い manifest.json を作成します。

尚、起動コマンドの選択 にある通り、manifest.json で起動コマンドを指定しなければ PHP アプリケーションでは index.php (/html) が参照されるため今回は指定する必要はありません。

{
    "runtime":{
        "majorVersion":"7.1"
    },
    "release": {},
    "notes": "Hello World PHP application"
}

manifest.jsonindex.php と同じ階層に配置し、再度アーカイブ化します。

Application Container の作成

Oracle Application Container Cloud Service を使用すると、Java SE、Java EE、Node.js、PHP、Python、Ruby、Go、および .NET アプリケーション を Oracle Cloud にデプロイできます。

他の Oracle Cloud サービスとの統合も選択でき、今回は Oracle MySQL Cloud Service を使用しデータを格納します。

f:id:dhigashi:20180725190337p:plain

Application Container のサービスページからアプリケーションを作成します。

f:id:dhigashi:20180725190341p:plain

Mautic は PHP アプリケーションの為、PHP を選択します。

f:id:dhigashi:20180725190344p:plain

アプリケーションの設定で、アプリケーション名やコンテナ数などを指定します。
Application には先に作成したアーカイブファイルを、Region には MySQL サーバと同じリージョンを指定しています。

f:id:dhigashi:20180725190347p:plain

暫く待つとアプリケーションが作成されます。
但し、このままでは前回作成した MySQL サーバを利用できない為、設定を行います。

f:id:dhigashi:20180725190831p:plain

サービス・バインディング を利用し Application Container Cloud Service から MySQL Cloud Service への接続を有効にします。

f:id:dhigashi:20180725190835p:plain

Service TypeOracle MySQL Cloud Service を指定すると、Service Name に利用可能な MySQL サーバが表示されるので選択します。
今回は、前回作成した MySQL サーバ mauticdb を選択します。

f:id:dhigashi:20180725191924p:plain

サービス・バインディングにOracle MySQL Cloud Service が追加されました。

また、同時に環境変数に MYSQLCS_ から始まる変数が追加され、MySQL サーバの IP アドレスやポート、(今回は指定していませんが) ユーザ名、パスワードをアプリケーションが環境変数から取得することができます。

これは Twelve-Factor App の「Config」を実現するものと思います。

12factor.net

サービス・バインディングによるサービスの統合が完了したので、アプリケーションにアクセスし設定を行います。

f:id:dhigashi:20180725191454p:plain

URL で示されている url にアクセスすると、無事に起動できているようです。

f:id:dhigashi:20180725191457p:plain

データベースの設定で MySQL サーバへの接続情報を指定します。

f:id:dhigashi:20180725191501p:plain

その他アカウントの設定等を行い、Mautic が稼動する事を確認しました。

まとめ

MAツール「Mautic」を Oracle Application Container Cloud ServiceOracle MySQL Cloud Service を利用して構築してみました。

Oracle MySQL Cloud Service によって MySQL サーバを、Oracle Application Container Cloud Service によってサーバを意識しない実行環境をそれぞれ簡単に作成でき、統合も数ステップでできる事が分かりました。

また、今回は Oracle MySQL Cloud Service と Oracle Application Container Cloud Service を別々に作成しましたが、Oracle Cloud Stack Manager を使用するとそれぞれを単一のステップで構築することができます。
そちらの手順も今後ご紹介できればと思います。

参考文献