クラウドネイティブ時代のアプリ
ケーション運⽤をもっと簡単に!
2016.03.19 Innovation EGG #7
堀内康弘
堀内康弘
• 元AWSエバンジェリスト
• Mobingi, Inc. Co-Founder
• 株式会社LiB 社外取締役
• 1978年⽣まれ ⼭梨県出⾝
• 趣味:旅⾏とマンガとグルメ
• 2014年9⽉から毎⽉半分は旅⾏し
ています。現在10か国24都市
• Kindleのアイテム数は1283。9割
以上マンガです。
• ⾁が好きです。
www.mobingi.com
A Cloud Software Company
⼈⽣という、ただ⼀度のチャンスを、⾃分らしく⽣きよう。
あなたが描く⼈⽣は、どんな⼈⽣ですか?その夢を叶えるために
LiBはとっておきのアイデアと最先端のテクノロジーで挑戦を続けます。
営業職と専⾨職の⼥性紹介に
強みを持った⼈材紹介サービス
⽇本初のキャリア⼥性特化型
会員制転職サイト
ライフキャリア⽀援事業
旅⾏先 2014.09-2015.09
• 2014.09 ホノルル
• 2014.10 京都・沖縄・サンフランシスコ
• 2014.11 福岡・シンガポール
• 2014.12 ホノルル・バリ島
• 2015.01 札幌・オーランド
• 2015.02 ニセコ
• 2015.03 グアム
• 2015.04 ラスベガス・沖縄
• 2015.05 仙台・ホノルル
• 2015.06 ハワイ島
• 2015.07 リビエラマヤ
• 2015.08 ニセコ・ハノイ
旅⾏先 2015.09-2016.03
• 2015.09 サムイ島・ナイアガラ
• 2015.10 ⼩⽥原・マカオ
• 2015.11 バリ島
• 2015.12 ニュージーランド
• 2016.01 沖縄・ウィスラー
• 2016.02 バンクーバー・サンフランシスコ
• 2016.03 カンクン・コフンリッチ
5%
5%
90%
旅 mobingi Lib
ブログ始めました
出不精夫婦が暮らすように旅するブログ
http://www.hori-uchi.com
ブログで稼ぐ⽅法
教えてください
クラウドネイティブ
複雑化するクラウド
なんでもできる
=
なんにもできない
やりたいことは

アプリケーションの運⽤
EC2
RDS
Web
App
ELB
AZ-A
AWS Cloud
EC2
RDS
Web
App
DB

Slave
AZ-B
DB

Master 同期
Web
App
・・・
Web
App
Web
App
・・・
Web
App
RDS
DB

Slave
・・・
DB

Slave
典型的な3Tier構成での運⽤を想定しているなら
www.mobingi.com
A Cloud Software Company
Mobingiとは?

クラウドアプリケーションの
ライフサイクル⾃動化を
サポートするソフトウェアです。
どういうことか?
例1: SalesForce
SalesForce以前は・・・
1箇所で全ての管理が可能に企業はCRM管理のために
様々な部署が必要
CRM ⾃動化
CRM のライフサイクルを⾃動化
例2: Workday
Workday SaaS
全ての機能を1箇所に
ユーザーはそれぞれの
サービスをまとめるのに

⼀苦労
財務管理の⾃動化WorkDay以前は…
財務管理のライフサイクルを⾃動化
例3: Zendesk
製品開発⼒の促進・
柔軟性につながる膨⼤な仕事量・効率化図れず
カスタマーサポートの⾃動化Zendesk以前は…
カスタマーサポートのライフサイクルを⾃動化
エンジニアの仕事負担軽減
→時間・コストの削減
- 内部での運⽤・保守は⼤きな負担
- 仕事量が増えるのと並⾏し
統率・セキリュティ⾯が疎かに
Mobingiは?
クラウドライフサイクルの⾃動化Mobingi以前は…
クラウドアプリケーションの

ライフサイクルを⾃動化
つまり
クラウド上でのアプリケーション
の開発・運⽤を
もっと楽にしてくれる
ソフトウェアです。
具体的には?
⼀般的によく使われる異なるジャンルのクラウドアプリケーション
Step 1 Step 3 Step 4
1.インフラ
ストラクチャー
Step 2
2. 環境構築 3. コード 4. 監視 & 分析
Step 6. (継続的なデプロイ&スケーリング)
Step 5
5. 内部での
運⽤・保守
第三者によるインテ
グレートのサポート
Mobingiは全ての過程を統合したソリューションを提供します
下記全⾏程を繋ぎ合わせ、⾃動化します!
クラウドアプリケーションライフサイクル
1.インフラ
ストラクチャー
2. 環境構築 3. コード
デプロイ
4. 監視&分析 5. 内部での
運⽤・保守
Web UIから全てを管理
⾃動的にハードウェア、IP、セキュリティグループ、
ロードバランサー、スケーリング、
ソフトウェアシッピング&コードデプロイなどの負担を分散します。
クラウド管理のユーザー画⾯
Mobingiのソフトウェアは“Plug-and-Play”を実現します
(Plug-andPlay…つないだら (Plug)、ユーザが何か特別なことをしなくても実⾏ (Play) できる)
クラウド設計に関する部分
(サーバータイプ, リージョン,
⾃動スケール幅の設定)
環境&ソフトウェアに
関する部分
(OS, ソフトウェア,
プログラミング⾔語, Docker)
1クリックで完了
ユーザー画⾯ - デプロイの過程
GitHubやDocker、その他ソフトウェアをインテグレートします
コードデプロイ時のユーザー画⾯
Mobingi Enterprise for AWS
現在提供しているサービスは2つ
mocloud.io
既存のAWSアカウントをお持ちの⽅向け
AWSアカウントなしにすぐにアプリケーションの

開発を始めたい⽅向け
mocloud.ioにサインアップする
mocloudのウェブサイト( https://mocloud.io/jp/ )にアクセスします。
右上の「サインアップ」をクリックします。
mocloud.ioへのサインアップ
「メールアドレス」と「パスワード」を⼊⼒して「サインアップ」ボタ
ンをクリックします。
mocloud.ioへのサインアップ
仮登録が完了し、確認⽤のメールが⼊⼒したメールアドレス宛てに送信
されます。
mocloud.ioへのサインアップ
以下のようなメールが届いたら、「Click here to verify your email」
をクリックし、本登録を完了します。
mocloud.ioへのサインアップ
おめでとうございます!これでサインアップが完了です!
すぐにmocloud.ioをご利⽤開始いただけます。
Cloud Automation Softwares
PHPスタックの作成
PHPスタックの作成
それでは早速PHPアプリケーションを実⾏するスタックを作成してみま
しょう。左メニューの「アプリケーションの作成」をクリックします。
PHPスタックの作成
アプリケーション情報を設定します。アプリケーション名(オプション)、
サブドメイン(オプション)、リージョン、インスタンスタイプを⼊⼒・
選択します。
アプリケーション名とサブドメインを省略した場合、適当な名前が⾃動
的に設定されます。アプリケーション名は後から変更可能です。
PHPスタックの作成
シングルスタック:
  シングルサーバーのみローンチされます。
ロードバランス機能付スタック:
   スタックは⾃動スケール機能を管理するため、ロードバランサーや

  その他の必要なネットワークコンポーネントと共にローンチされます。

  ⾃動スケールの際の最⼩・最⼤インスタンス数を設定できます。
⾃動スケール機能について
有料プランに登録いただくと、アーキテクチャを選択できるようになり、
⾃動スケール機能をご利⽤いただけます。選択できるアーキテクチャは
次の2つです。
PHPスタックの作成
次に適当なイメージを選択し環境設定を⾏いましょう。
今回は右上のPHP Stack (Ubuntu 14.04, php 5.6, Nginx)を選択しま
す。
PHPスタックの作成
PHP Stack (Ubuntu 14.04, php 5.6, Nginx)を選択するとExtra PHP
Configurationの設定画⾯が表⽰されますが、何も変更せず、「実⾏」
をクリックします。
PHPスタックの作成
今回は使⽤しませんが、Docker Hubに登録されているイメージを利⽤
することもできます。⾃分で作成したDockerイメージをDocker Hubに
登録することで、オリジナルのコンテナを利⽤することもできます。
moCloud⽤のDockerイメージを構築する⽅法についてはドキュメント

(http://bit.ly/mocloud-custom-docker)をご覧下さい。
PHPスタックの作成
有料プランに登録いただくと、Multi-AZ構成でマスター/スレーブ⽅式
をサポートするMySQLとPostgreSQLをご利⽤可能になります。
スレーブDBは1〜5台まで設定可能で、運⽤中でもダウンタイムなしで
いつでも追加・削除することが可能です。スレーブDBの負荷分散を⾏
うロードバランサーも⾃動で作成され、DBのエンドポイントが⽤意さ
れます。アプリケーションの設定でDBの接続先をエンドポイントにす
るだけで、どのDBに接続するかを意識することなしに、負荷分散され
たDBをご利⽤いただけます。今回はDBの選択はしません。
PHPスタックの作成
これで準備完了です!⼀番下にある「アプリケーションの作成」を

クリックして、moCloudでアプリケーションを作成しましょう!
PHPスタックの作成
スタックの作成が終わるまで少し時間がかかります。
左メニューの「既存のアプリケーション」から状態を確認できます。
「初期化中…」が「実⾏中」に変わったら作成完了です!
PHPスタックの作成
⼀覧からアプリケーション名をクリックすると詳細ページ移動します。
リソースタブでは「アプリケーションのURL」「ご利⽤料⾦」「実⾏中
のインスタンスの情報」を確認できます。
アプリケーションのURLをクリックすると実際に稼働しているアプリ
ケーションを開きます。
PHPスタックの作成
アプリケーションのURLをクリックすると次のようなページが開きます。

Mobingiがデフォルトで⽤意したPHPアプリケーションのページです。
PHPスタックの作成
コードタブではアプリケーションとGitHubの接続を⾏い、デプロイを可
能にする設定を⾏えます。こちらは次の章で実際に設定してみます。
PHPスタックの作成
アクティビティタブではこのスタックで⾏われたアクティビティを確認
できます。
PHPスタックの作成
ログタブでは、インスタンス毎の詳細なログを確認できます。
PHPスタックの作成
ログタブでは、インスタンス毎の詳細なログを確認できます。
Cloud Automation Softwares
githubを使ったコードのデプロイ
githubを使ったコードのデプロイ
githubで今回のアプリケーション⽤のレポジトリを作成します。

(githubアカウントをお持ちでない場合は、事前に作成してください。)
github.comにアクセスし、右上の「New repository」をクリックしま
す。
githubを使ったコードのデプロイ
必要な情報を⼊⼒しリポジトリを作成します。
githubを使ったコードのデプロイ
この例ではmocloud-demo-phpと⾔うレポジトリを作成しました。
githubを使ったコードのデプロイ
mocloudに戻り、アプリケーションの詳細のコードタブを開きます。
「GitHubに接続」ボタンをクリックします。
githubを使ったコードのデプロイ
するとGitHubのページにジャンプします。

githubにログインしていない場合は、ログインを求められます。
githubを使ったコードのデプロイ
mocloudがGitHubにアクセスする権限を与えるかどうか聞かれますので、
「Authorize application」をクリックし、権限を与えます。
githubを使ったコードのデプロイ
⾃動でmocloudに戻ってくると、githubのリポジトリを選択できるよう
になっています。
githubを使ったコードのデプロイ
先ほど作成したリポジトリ(今回はmocloud-demo-php)を選択します。
ブランチはmasterを指定し、「⾃動デプロイを可能にする」にチェック
が⼊っていることを確認して、「接続する」をクリックします。
githubを使ったコードのデプロイ
接続に成功すると、githubの情報が表⽰されます。
これでコードをデプロイする準備が整いました!!
gitリポジトリいコードをpushすると⾃動でmocloud上のアプリケーショ
ンにデプロイされます。
githubを使ったコードのデプロイ
### githubからコードをローカルにコピー(clone)
$ git clone http://github.com/xxxx/mocloud-demo-php
### index.phpを作成しリポジトリにpush
$ cd mocloud-demo-php
$ echo “Hello world” > index.php
$ git add index.php
$ git commit -m “add new index file”
$ git push origin master
実際にやってみましょう!
次のような操作でコンソールからコードをgithubにpushしてみます。
githubを使ったコードのデプロイ
pushされると同時にコードのデプロイが始まります。
しばらくしてからアプリケーションのURLにアクセスするとサイトが更新
されていることが確認できます。
githubを使ったコードのデプロイ
デプロイが動作しているかを確認するには、まずアクティビティを⾒てみ
ます。
すると、GitHubのpushを受け取り、すべてのインスタンスにコードをデ
プロイを始めたことが確認できました。
githubを使ったコードのデプロイ
次にログタブから、インスタンスのmoDaemonのログを確認します。
よく⾒ていくと、変更を検知してgithubからコードをpullしていることが
わかります。
githubを使ったコードのデプロイ
さらにログを⾒ていくと、新しいコードを使ってgreen containerを作成
し、作成完了後既存のblue containerとgreen containerを差し替え、
blue containerを削除していることがわかります。
参考資料
• mocloud⽇本語ドキュメント

→https://mocloud.io/documentation_jp/overview/features
• moCloudでHubotを動かしてSlack上で遊ぼう

→http://yoshidashingo.hatenablog.com/entry/2015/12/15/105841
• moCloud上のPHPからSendGridを使ってメール送信

→http://takachan.hatenablog.jp/entry/2015/12/22/144820
• moCloud を使って Slack のクローン Mattermost を動かしてみた

→http://uchimanajet7.hatenablog.com/entry/2015/12/23/224210
• moCloudでProcfileを使ってNode.jsアプリを動かす

→ http://yoshidashingo.hatenablog.com/entry/2016/01/06/200919

Weʼre Hiring!
- join our team-
興味ある⽅はお気軽に声をかけてください!
Wantedlyでも募集中!
詳しくはFacebookページをごらんください!
Mobingi http://bit.ly/mobingi-fb
One more thing…
本⽇、mocloud.ioを
100ドル分
利⽤できるクーポン

⽤意しています!
Mobingi http://bit.ly/mobingi-fb
1.MobingiのFacebookページにい
いね!しよう!
100ドルクーポンゲットするには?
2.クーポンゲットの記事に「クーポン
欲しい!」とコメントしよう!
⼤事なことなのでもう⼀度
ブログ始めました
出不精夫婦が暮らすように旅するブログ
http://www.hori-uchi.com
ブログで稼ぐ⽅法
教えてください
Thank you.
The next layer of cloud technology is 

application lifecycle management.

クラウドネイティブ時代のアプリケーション運用をもっと簡単に!