Mobingi Advent Calendar 2018 21日目の記事です。

世界で一番利用されていると言われている WordPress を、Mobing ALM 上で構築する方法をご紹介します。

必要なサービス、アカウント

  • Github アカウント
  • Mobingi ALM アカウント
  • Mobingi ALM が対応するパブリッククラウドのアカウント
    • AWS、Microsoft Azure、GCP、Alibaba Cloud Fujitsu K5
    • 本記事では AWS を利用します

目次

  1. Githubにソースコードをアップする
  2. スタックを作成する

1. Githubにソースコードをアップする

WordPressのソースコードを格納したリポジトリを作成しました。
こちらのリポジトリを自身のアカウントに Fork しましょう。
https://github.com/hmaruyama/wordpress-app

 

こちらのリポジトリの中身は至ってシンプルで、 wordpress.org からソースコードをダウンロードしてきたものを、wp-config.php のみ以下のように書き換えて push したものです。

/** WordPress のためのデータベース名 */
define('DB_NAME', getenv('MO_DATABASE_NAME'));

/** MySQL データベースのユーザー名 */
define('DB_USER', getenv('MO_DATABASE_USERNAME'));

/** MySQL データベースのパスワード */
define('DB_PASSWORD', getenv('MO_DATABASE_PASSWORD'));

/** MySQL のホスト名 */
define('DB_HOST', getenv('MO_DATABASE_HOST'));

 

Mobingi ALM 上でDBを立ち上げると、MO_ から始まる環境変数からDBのユーザーネームやパスワードにアクセスすることができます。

2. スタックを作成する

Mobingi ALM の基本的な使い方についてはこちらの記事をご参照ください。
Mobingi ALM のトップページ左メニューから「スタックを作成」クリックし、タブの「Json Editor」をクリックします。

以下のJSONデータから「your-credential-name-here」をご自身のクレデンシャルに、「your-git-repo」をご自身のGithubリポジトリ(https://github.com/hmaruyama/wordpress-app.git のように)に書き換えます。

コピーしてEdidorに貼り付けます。こちらのJSONデータはALM上で ALM Template と呼ばれます。

{
    "version": "2017-03-03",
    "label": "example template version label #1",
    "description": "Mobingi ALM Stack.",
    "vendor": {
        "aws": {
            "cred": "your-credential-name-here",
            "region": "us-east-1"
        }
    },
    "configurations": [
        {
            "role": "web",
            "flag": "wordpressApp",
            "provision": {
                "instance_type": "t2.micro",
                "availability_zone": "us-east-1a",
                "auto_scaling": null,
                "keypair": true,
                "instance_count": 1,
                "load_balancer": null,
                "subnet": {
                    "cidr": "10.0.1.0/24",
                    "public": true,
                    "auto_assign_public_ip": true
                },
                "rds": {
                    "db_instance_type": "db.t2.micro",
                    "storage": 10,
                    "replica": 1,
                    "engine": "mysql",
                    "version": "5.6",
                    "multi_az": true
                }
            },
            "container": {
                "container_image": "mobingi/ubuntu-apache2-php7:7.2",
                "container_code_dir": "/var/www/html",
                "container_ports": [
                    80
                ],
                "container_git_repo": "your-git-repo",
                "container_git_reference": "master"
            }
        }
    ]
}

 

ALM Template で定義されている内容:
us-east-1(米国東部 (バージニア北部))に、t2.microのインスタンスを一つ立てています。
同じVPC内に Amazon RDS で MySQL を立ち上げています。

「スタックをデプロイ」をクリックし、Webアプリケーションが起動するまでしばらく待ちます。15分ほどは見積もった方が良いでしょう。

左メニューから「スタック一覧」をクリックし、先ほど作成したスタックをクリックします。
コンテナが「complete」(緑色)になっていることを確認したら、パブリックIPをクリックします。

WordPressの初期設定画面にアクセスできたら成功です。
ここからWordPressを開始することができます!

最後に

DBに関する情報が環境変数として払い出されるので、アプリケーションとの連携が楽に行えました。
みなさんもぜひ試してみてはいかがでしょうか。