mocloud.io ハンズオン サインアップから初めてのスタック作成まで ver.2
TRANSCRIPT
mocloud.io ハンズオン
サインアップから初めてのスタック作成まで
http://www.slideshare.net/horiyasu/mocloudio-ver2
Ishigaki phantom island tour 2016.04.26Ishigaki phantom island tour 2016.04.26
堀内康弘• 元AWSエバンジェリスト
• Mobingi, Inc. Co-Founder
• 株式会社LiB 社外取締役
• 1978年⽣まれ ⼭梨県出⾝
• 趣味:旅⾏とマンガとグルメ
• 2014年9⽉から毎⽉半分は旅⾏しています。現在10か国24都市
• Kindleのアイテム数は1283。9割以上マンガです。
• ⾁が好きです。
本日のアジェンダ
• Mobingiのご紹介
• ハンズオン!
• mocloud.ioへのサインアップ
• PHPスタックの作成
• githubを使ったコードのデプロイ
クラウドネイティブ
複雑化するクラウド
なんでもできる =
なんにもできない
やりたいことはアプリケーションの運⽤
EC2
RDS
Web App
ELB
AZ-A
AWS Cloud
EC2
RDS
Web App
DB Slave
AZ-B
DB Master 同期
Web App ・・・ Web
AppWeb App ・・・ Web
App
RDS
DB Slave ・・・
DB Slave
典型的な3Tier構成での運⽤を想定しているなら
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アカウントなしにすぐにアプリケーションの開発を始めたい⽅向け
Cloud Automation Softwares
ハンズオン
mocloud.ioにサインアップする
mocloudのウェブサイト( https://mocloud.io/jp/ )にアクセスします。 右上の「サインアップ」をクリックします。
mocloud.ioへのサインアップ
以下のようなメールが届いたら、「Click here to verify your email」をクリックし、本登録を完了します。
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スタックの作成
オプションとして、インスタンスにアタッチする複数のSSH公開鍵の登録が可能です。普段使⽤している鍵を使ってサーバーにログインすることができます。 公開鍵の登録はサーバーのローンチ後でも可能です。 今回は鍵の登録はしません。
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
Thank you.
The next layer of cloud technology is application lifecycle management.