Enviar búsqueda
Cargar
Hbstudy41 auto scaling
•
5 recomendaciones
•
2,465 vistas
Fujishiro Takuya
Seguir
#hbstudy
Leer menos
Leer más
Denunciar
Compartir
Denunciar
Compartir
1 de 24
Descargar ahora
Descargar para leer sin conexión
Recomendados
LINQ in Unity
LINQ in Unity
Yoshifumi Kawai
㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみよう
Nishida Kansuke
Nuxt.js + microCMS + netlify
Nuxt.js + microCMS + netlify
ogawatti
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
Nodejuku01 ohtsu
Nodejuku01 ohtsu
Nanha Park
Development app-with-elixir
Development app-with-elixir
k1complete
VarnishではじめるESI
VarnishではじめるESI
Iwana Chan
Openresty
Openresty
ogawatti
Recomendados
LINQ in Unity
LINQ in Unity
Yoshifumi Kawai
㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみよう
Nishida Kansuke
Nuxt.js + microCMS + netlify
Nuxt.js + microCMS + netlify
ogawatti
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
Nodejuku01 ohtsu
Nodejuku01 ohtsu
Nanha Park
Development app-with-elixir
Development app-with-elixir
k1complete
VarnishではじめるESI
VarnishではじめるESI
Iwana Chan
Openresty
Openresty
ogawatti
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
Ryo Sakamoto
SystemV IPC
SystemV IPC
Masami Ichikawa
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
Doom3 commentary
Doom3 commentary
DADA246
GoogleのSHA-1のはなし
GoogleのSHA-1のはなし
MITSUNARI Shigeo
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
Masahiro Nagano
Slub data structure
Slub data structure
Masami Ichikawa
はじめてのCouch db
はじめてのCouch db
Eiji Kuroda
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
Makoto Setoh
実は怖くないDevOps
実は怖くないDevOps
Masanori Ishigami
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
Kernel fcache-bug
Kernel fcache-bug
MITSUNARI Shigeo
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
CubedKachi
Tottoruby 20110903
Tottoruby 20110903
Takashi SAKAGUCHI
1075: .NETからCUDAを使うひとつの方法
1075: .NETからCUDAを使うひとつの方法
NVIDIA Japan
Slide
Slide
Takefumi MIYOSHI
○○大学の本当にあった怖い話
○○大学の本当にあった怖い話
idkqh7 Nishino
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
fukuoka.ex
静的サイトどこにする?
静的サイトどこにする?
ogawatti
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
SCALR アカウント登録手順
SCALR アカウント登録手順
mnarita
Scalr hands on
Scalr hands on
Haruhiko KAJIKAWA
Más contenido relacionado
La actualidad más candente
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
Ryo Sakamoto
SystemV IPC
SystemV IPC
Masami Ichikawa
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
Doom3 commentary
Doom3 commentary
DADA246
GoogleのSHA-1のはなし
GoogleのSHA-1のはなし
MITSUNARI Shigeo
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
Masahiro Nagano
Slub data structure
Slub data structure
Masami Ichikawa
はじめてのCouch db
はじめてのCouch db
Eiji Kuroda
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
Makoto Setoh
実は怖くないDevOps
実は怖くないDevOps
Masanori Ishigami
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
Kernel fcache-bug
Kernel fcache-bug
MITSUNARI Shigeo
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
CubedKachi
Tottoruby 20110903
Tottoruby 20110903
Takashi SAKAGUCHI
1075: .NETからCUDAを使うひとつの方法
1075: .NETからCUDAを使うひとつの方法
NVIDIA Japan
Slide
Slide
Takefumi MIYOSHI
○○大学の本当にあった怖い話
○○大学の本当にあった怖い話
idkqh7 Nishino
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
fukuoka.ex
静的サイトどこにする?
静的サイトどこにする?
ogawatti
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
La actualidad más candente
(20)
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
SystemV IPC
SystemV IPC
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Doom3 commentary
Doom3 commentary
GoogleのSHA-1のはなし
GoogleのSHA-1のはなし
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
Slub data structure
Slub data structure
はじめてのCouch db
はじめてのCouch db
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
実は怖くないDevOps
実は怖くないDevOps
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Kernel fcache-bug
Kernel fcache-bug
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
開発チームもIaCやってみたい~VSOとDockerの組合せにチャレンジ~
Tottoruby 20110903
Tottoruby 20110903
1075: .NETからCUDAを使うひとつの方法
1075: .NETからCUDAを使うひとつの方法
Slide
Slide
○○大学の本当にあった怖い話
○○大学の本当にあった怖い話
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
静的サイトどこにする?
静的サイトどこにする?
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
Destacado
SCALR アカウント登録手順
SCALR アカウント登録手順
mnarita
Scalr hands on
Scalr hands on
Haruhiko KAJIKAWA
サーバー初心者のためのWordPressサイト構築手順〜付録〜 MacターミナルやTera Termを使用したSSH接続方法など
サーバー初心者のためのWordPressサイト構築手順〜付録〜 MacターミナルやTera Termを使用したSSH接続方法など
IDC Frontier
hbstudy37 doc
hbstudy37 doc
Fujishiro Takuya
SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01
Haruhiko KAJIKAWA
hbstudy37 slide
hbstudy37 slide
Fujishiro Takuya
Idcfクラウドクイズ
Idcfクラウドクイズ
Sanae Taniguchi
僕はまだ10%しかIDCFクラウドを理解していなかった
僕はまだ10%しかIDCFクラウドを理解していなかった
Fujishiro Takuya
脆弱性情報はこうしてやってくる
脆弱性情報はこうしてやってくる
JPCERT Coordination Center
(Vulsで)脆弱性対策をもっと楽に!
(Vulsで)脆弱性対策をもっと楽に!
hogehuga
サーバー初心者のためのWordPressサイト構築手順
サーバー初心者のためのWordPressサイト構築手順
IDC Frontier
Aerospike on IDCF Cloud
Aerospike on IDCF Cloud
IDC Frontier
Destacado
(12)
SCALR アカウント登録手順
SCALR アカウント登録手順
Scalr hands on
Scalr hands on
サーバー初心者のためのWordPressサイト構築手順〜付録〜 MacターミナルやTera Termを使用したSSH接続方法など
サーバー初心者のためのWordPressサイト構築手順〜付録〜 MacターミナルやTera Termを使用したSSH接続方法など
hbstudy37 doc
hbstudy37 doc
SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01
hbstudy37 slide
hbstudy37 slide
Idcfクラウドクイズ
Idcfクラウドクイズ
僕はまだ10%しかIDCFクラウドを理解していなかった
僕はまだ10%しかIDCFクラウドを理解していなかった
脆弱性情報はこうしてやってくる
脆弱性情報はこうしてやってくる
(Vulsで)脆弱性対策をもっと楽に!
(Vulsで)脆弱性対策をもっと楽に!
サーバー初心者のためのWordPressサイト構築手順
サーバー初心者のためのWordPressサイト構築手順
Aerospike on IDCF Cloud
Aerospike on IDCF Cloud
Similar a Hbstudy41 auto scaling
microPCFを使ってみよう
microPCFを使ってみよう
Hiroaki_UKAJI
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
Kiyoshi SATOH
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
Masahito Zembutsu
Circle ci and docker+serverspec
Circle ci and docker+serverspec
Tsuyoshi Yamada
Hadoop on LXC
Hadoop on LXC
俊夫 森
Lxc on cloud
Lxc on cloud
Yukihiko SAWANOBORI
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
Midori Oge
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
Emma Haruka Iwao
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
Tech Summit 2016
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verification
yukihiro kawada
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
Masahito Zembutsu
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
Shigeru UCHIYAMA
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
Docker 18.09 新機能
Docker 18.09 新機能
Akihiro Suda
オトナのDocker入門
オトナのDocker入門
Tsukasa Kato
仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する
junichi anno
Apache cloudstack4.0インストール
Apache cloudstack4.0インストール
Yasuhiro Arai
Similar a Hbstudy41 auto scaling
(20)
microPCFを使ってみよう
microPCFを使ってみよう
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
Circle ci and docker+serverspec
Circle ci and docker+serverspec
Hadoop on LXC
Hadoop on LXC
Lxc on cloud
Lxc on cloud
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verification
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Docker 18.09 新機能
Docker 18.09 新機能
オトナのDocker入門
オトナのDocker入門
仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する
Apache cloudstack4.0インストール
Apache cloudstack4.0インストール
Más de Fujishiro Takuya
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
Fujishiro Takuya
オートスケールアップ Powered by Mackerel
オートスケールアップ Powered by Mackerel
Fujishiro Takuya
実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方
Fujishiro Takuya
Rancher ではじめる マルチクラウドコンテナー
Rancher ではじめる マルチクラウドコンテナー
Fujishiro Takuya
●●●の知らないSBCの世界
●●●の知らないSBCの世界
Fujishiro Takuya
Loves Baremetal-servers, Loves POWER
Loves Baremetal-servers, Loves POWER
Fujishiro Takuya
おこづかいが足りないのでIDCFクラウドで自サイトを作ってみた話
おこづかいが足りないのでIDCFクラウドで自サイトを作ってみた話
Fujishiro Takuya
IDCFクラウド MeetUp2 LT
IDCFクラウド MeetUp2 LT
Fujishiro Takuya
MaxScaleを触ってみた
MaxScaleを触ってみた
Fujishiro Takuya
Hbstudy41 slide
Hbstudy41 slide
Fujishiro Takuya
Más de Fujishiro Takuya
(10)
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
オートスケールアップ Powered by Mackerel
オートスケールアップ Powered by Mackerel
実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方
Rancher ではじめる マルチクラウドコンテナー
Rancher ではじめる マルチクラウドコンテナー
●●●の知らないSBCの世界
●●●の知らないSBCの世界
Loves Baremetal-servers, Loves POWER
Loves Baremetal-servers, Loves POWER
おこづかいが足りないのでIDCFクラウドで自サイトを作ってみた話
おこづかいが足りないのでIDCFクラウドで自サイトを作ってみた話
IDCFクラウド MeetUp2 LT
IDCFクラウド MeetUp2 LT
MaxScaleを触ってみた
MaxScaleを触ってみた
Hbstudy41 slide
Hbstudy41 slide
Hbstudy41 auto scaling
1.
hbstudy#41 × IDCF
クラウドハンズオン Fabric と Monit を使って オートスケーリングを自作してみよう 2013 年 2 月 2 日 @tafujish
2.
hbstudy#41×IDCF クラウドハンズオン 目次 0. この文書について
.................................................................. 3 1. IDCF クラウド上に仮想マシンを作成してみる.......................................... 4 1) ポータルサイトから作業用の仮想マシンを作成 .................................... 4 2) SSH 接続するためのネットワーク設定 ............................................. 4 2. Fabric をインストールして触ってみる................................................ 5 1) 作業用 VM(CentOS 6.3)に SSH ログイン ............................................ 5 2) Fabric をインストール .......................................................... 5 3) 秘密鍵を設置 .................................................................. 5 4) fabfile を作成し実行 ........................................................... 5 3. Fabric から Redis をインストールしてみる............................................ 7 1) EPEL リポジトリを追加し、Redis をインストール .................................. 7 4. Fabric から API 経由で仮想マシンを作成してみる ...................................... 8 1) リポジトリを追加し、API ツールインストール ..................................... 8 2) API キーとシークレットキーを設置 ............................................... 9 3) 仮想マシン作成 ............................................................... 10 4) /etc/hosts に名前登録 ......................................................... 12 5. 作成した仮想マシンを Fabric からセットアップしてみる .............................. 13 1) ユーザー追加 ................................................................. 13 2) sshd 設定 ..................................................................... 13 3) /etc/hosts に名前登録 ......................................................... 14 4) Redis のクライアントをインストール ............................................ 15 5) コンテンツを設置 ............................................................. 15 6) Monit インストール ............................................................ 17 7) Web 公開 ...................................................................... 18 6. 自動でスケールアウトしてみる ..................................................... 18 1) cron スクリプト設置 ........................................................... 19 2) 負荷をかけます ............................................................... 21 7. [Appendix]ロードバランサーに自動追加 ............................................. 22 2 / 24
3.
hbstudy#41×IDCF クラウドハンズオン 0. この文書について この文書は、hbstudy#41
のハンズオンにて、 フロンティアのクラウドサービス セルフタイプ IDC (以 下、IDCF クラウド)を用い、オートスケーリング構成を作成する手順です。 動作検証は行っておりますが、自己責任でどうぞご利用ください。 3 / 24
4.
hbstudy#41×IDCF クラウドハンズオン 1. IDCF
クラウド上に仮想マシンを作成してみる ※IDCF クラウドの操作方法については、エントリーガイド(pp.21-27)を参照してください 1) ポータルサイトから作業用の仮想マシンを作成 https://noahcloud.jp/ へアクセスし、配布したユーザ名/パスワードにてログインします。 以下の設定で仮想マシンを作成します。 テンプレート [LATEST] CentOS 6.3 64-bit VM タイプ M4 ( Hourly ) 2CPU, 4GB RAM ディスク選択 必要ありません 仮想マシン名 任意 グループ名 任意 SSH Keys SSH 鍵生成 ※生成後、秘密鍵をローカルにコピーしてください 2) SSH 接続するためのネットワーク設定 ポータルサイトで TCP22 番を開放するようポートフォーワーディングルールとファイアウォール を設定します。 ※ここでの設定は、仮想マシン作成後(ステータスが Running)になった後に実施してください 「リソース」>「ネットワーク」>「ファイアウォール」にて、TCP22 番を開けます。 この後、HTTP も使うので、TCP80 番も開けてください。 「リソース」>「ネットワーク」>「ポートフォーワーディング」にて、TCP22 番を転送します。 ※ネットワーク設定については、エントリーガイド(pp.29-31)を参照してください 4 / 24
5.
hbstudy#41×IDCF クラウドハンズオン 2. Fabric
をインストールして触ってみる 1) 作業用 VM(CentOS 6.3)に SSH ログイン ローカルの環境から、作成した仮想マシンに SSH 接続します。 2) Fabric をインストール 以下のコマンドで、Python 他必要なパッケージをインストールします。 # yum install python python-devel gcc -y 次に、pip(Python パッケージ管理ツール)をインストールします。 # curl http://python-distribute.org/distribute_setup.py | python # curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python Fabric のインストールは超カンタン。 # pip install fabric fexpect 3) 秘密鍵を設置 Fabric は SSH で接続します。 仮想マシン作成時に保管した SSH 秘密鍵を、 作業用 VM に設置します。 # vi ~/.ssh/id_rsa ~保存した秘密鍵の内容をコピペ~ # chmod 600 ~/.ssh/id_rsa ※SCP 等のファイル転送でもかまいません 4) fabfile を作成し実行 fabfile.py という名前でファイルを作成し、以下の内容を記述します。 今後は、このファイルに追記していくことになります。 ここでの内容は、「uname –s」コマンドでホストタイプを確認する host_type 関数を作成します。 5 / 24
6.
hbstudy#41×IDCF クラウドハンズオン 【~/fabfile.py】 from fabric.api
import * def host_type(): run('uname -s') Fabric は次のように実行します。 # fab –H [ホスト名または IP アドレス] <コマンド> # fab -H localhost host_type [localhost] Executing task 'host_type' [localhost] run: uname -s [localhost] out: Linux [localhost] out: Done. Disconnecting from localhost... done. コマンドオプション等詳細はヘルプをどうぞ。 # fab --help 複数のサーバを指定して実行する場合は、「,」で繋げます。 # fab –H localhost,host1,host2 check_hostname 6 / 24
7.
hbstudy#41×IDCF クラウドハンズオン 3. Fabric
から Redis をインストールしてみる 1) EPEL リポジトリを追加し、Redis をインストール オートスケール用のデータ格納先として Redis を使います。Redis は EPEL リポジトリからパッケー ジインストールします。Fabric のコードは、fabfile.py に追記していきます。 【~/fabfile.py】 from fabric.contrib.files import * def setup_repo_epel(): sudo(""" yum -y localinstall http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm """) def setup_redis(): setup_repo_epel() sudo(""" yum -y install redis """) comment("/etc/redis.conf",r"bind 127.0.0.1") sudo(""" chkconfig redis on service redis restart """) ※epel-release-6-8.noarch.rpm がなければ最新のバージョンに置き換えてください Fabric を実行します。Redis サービスが起動できれば成功。 # fab -H localhost setup_redis [localhost] Executing task 'setup_redis' [localhost] sudo: yum -y localinstall http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm ~略~ [localhost] out: redis-server を起動中: [ OK ] [localhost] out: 7 / 24
8.
hbstudy#41×IDCF クラウドハンズオン [localhost] out: Done. Disconnecting
from localhost... done. 4. Fabric から API 経由で仮想マシンを作成してみる 1) リポジトリを追加し、API ツールインストール IDCF から提供している CloudStack API を実行するためのコマンドラインツールをインストールする ため、IDCF のリポジトリ追加と API ツールを yum インストールします。 【~/fabfile.py】 def install_idcf_api(): run(""" yum -y localinstall http://repo.cloud.idc.jp/Linux/CentOS/6/idc/x86_64/idcf-release-8-0.0.idcf.el6.noarch.rpm yum -y install idcf.compute -y idcf-compute-api -v """) Fabric を実行します。idcf-compute-api コマンドを実行してバージョンがでれば成功。 # fab -H localhost install_idcf_api [localhost] Executing task 'install_idcf_api' [localhost] run: yum -y localinstall ~略~ [localhost] out: idcf-compute-api v0.10.0 [localhost] out: Done. Disconnecting from localhost... done. 8 / 24
9.
hbstudy#41×IDCF クラウドハンズオン 2) API
キーとシークレットキーを設置 API アクセスのための情報を、~/idcfrc に記述します。 【~/.idcfrc】 [account] host=https://api.noahcloud.jp/portal/client/api api_key=ここに API キーを入れる secret_key=ここにシークレットキーを入れる API キーおよび秘密鍵は、IDCF クラウドのポータル右上の「マイプロファイル」をクリックすると 表示されます。(最新のエンドポイントの情報は FAQ を参照します) 9 / 24
10.
hbstudy#41×IDCF クラウドハンズオン 3) 仮想マシン作成 API
ツールを使ってスケールさせる WEB サーバー用仮想マシンを作成します。仮想マシン作成のジョ ブ投入後、作成完了まで確認し続けます。ID は下記のものを利用し、keypare(SSH 秘密鍵)は、作 業用仮想マシン作成時に作成した鍵の名前を指定します。 テンプレート:[LATEST] CentOS 6.3 64-bit 2008 VM タイプ:S2 ( Hourly ) 1CPU, 2GB RAM 22 ゾーン:jp-east-t1v 1 【~/fabfile.py】 import json import os,sys,time SCALE_GROUP = "sclgrp" def setup_idcf_vm(displayname="scale"): resp = local(""" idcf-compute-api deployVirtualMachine --keypair {keypair} --displayname {displayname} --group {group} --templateid {templateid} --serviceofferingid {serviceofferingid} --zoneid {zoneid} """.format(keypair="testkey", #your ssh-key name displayname=displayname, group=SCALE_GROUP, templateid="2008", #(2008) [LATEST] CentOS 6.3 64-bit serviceofferingid="22", #(22) S2 zoneid="1"),capture=True) print resp retval = json.loads(resp, 'UTF-8') ret = retval["deployvirtualmachineresponse"] vm_id = ret["id"] jobid = ret["jobid"] wait_job(jobid) 10 / 24
11.
hbstudy#41×IDCF クラウドハンズオン
print "__vmid__,%d" %vm_id def wait_job(jobid): while True: resp = local(""" idcf-compute-api queryAsyncJobResult --jobid {jobid} """.format(jobid=jobid),capture=True) retval = json.loads(resp, 'UTF-8') ret = retval["queryasyncjobresultresponse"] if ret["jobstatus"] == 1: print resp break else: time.sleep(30) Fabric を実行します。仮想マシンができあがり、IP アドレス等の設定情報が返ってくれば成功。 # fab -H localhost setup_idcf_vm:displayname=scale00 [localhost] Executing task 'setup_idcf_vm' ~略~ [localhost] local: idcf-compute-api queryAsyncJobResult --jobid 123294 { "queryasyncjobresultresponse": { "jobid": 123294, "jobprocstatus": 0, "jobresult": { "virtualmachine": { ~略~ "jobresultcode": 0, "jobresulttype": "object", "jobstatus": 1 } } 11 / 24
12.
hbstudy#41×IDCF クラウドハンズオン Done. 4) /etc/hosts
に名前登録 作業用 VM の hosts に今作成した仮想マシンの名前を「monitor」として登録します。 ※以降の手順では、IP アドレスではなく「monitor」という名前を使います 【~/fabfile.py】 def setup_hosts(ip=None,host_name=None): print ip print host_name if ip and host_name: append("/etc/hosts", ["{0} {1}".format(ip,host_name)], use_sudo=True) Fabric を実行します。 アドレスは、 IP 今作成された仮想マシンの IP アドレスに変更してください。 # fab -H localhost setup_hosts:ip=10.1.2.124,host_name=monitor 12 / 24
13.
hbstudy#41×IDCF クラウドハンズオン 5. 作成した仮想マシンを
Fabric からセットアップしてみる 1) ユーザー追加 作成した仮想マシンに、ユーザー:devops を作成し、sudo の実行権限設定をします。 【~/fabfile.py】 SUDOERS = "devops" def setup_sudoers(user=SUDOERS): run(""" useradd {user} usermod -a -G wheel {user} mkdir -p -m 700 /home/{user}/.ssh cp /root/.ssh/authorized_keys /home/{user}/.ssh/ chown -R {user}:{user} /home/{user} chmod 600 /home/{user}/.ssh/authorized_keys """.format(user=user)) uncomment("/etc/pam.d/su",r"auths+sufficients+pam_wheel.sos+trust use_uid") uncomment("/etc/sudoers",r"%wheelsALL=(ALL)s+NOPASSWD:sALL") Fabric を実行します。devops ユーザーで SSH ログインできれば成功。 # fab -H monitor setup_sudoers [monitor] Executing task 'setup_sudoers' ~略~ Done. Disconnecting from monitor... done. # ssh devops@monitor ~略~ [devops@ホスト名 ~]$ [devops@ホスト名 ~]$ exit # 2) sshd 設定 作成した仮想マシンに、sshd の設定をします。root ログイン禁止、空のパスワード禁止。 13 / 24
14.
hbstudy#41×IDCF クラウドハンズオン 【~/fabfile.py】 def sshd_config(user=SUDOERS):
comment("/etc/ssh/sshd_config",r"^PermitRootLogin yes") uncomment("/etc/ssh/sshd_config",r"PermitEmptyPasswords no") append("/etc/ssh/sshd_config", ["PermitRootLogin no", "AllowUsers {0}".format(user)]) run("service sshd restart") Fabric を実行します。実際にログインして確認しても OK。 失敗して二度とログインできなくなったら仮想マシンを再作成! # fab -H monitor sshd_config [monitor] Executing task 'sshd_config' ~略~ [monitor] out: sshd を起動中: [ OK ] [monitor] out: [monitor] out: Done. Disconnecting from monitor... done. 3) /etc/hosts に名前登録 作成した仮想マシンの hosts にデータ格納先(Redis)サーバを「redis-server」として登録します。 Fabric は先ほど作ったものを利用します。 ※IP アドレスは、作業用 VM の IP アドレスに変更してください。 # ifconfig eth0 ~略~ # fab -u devops -H monitor setup_hosts:ip=10.1.1.94,host_name=redis-server [monitor] Executing task 'setup_hosts' 10.1.2.23 redis-server [monitor] sudo: echo '10.1.2.23 redis-server' >> /etc/hosts Done. Disconnecting from monitor... done. 14 / 24
15.
hbstudy#41×IDCF クラウドハンズオン 4) Redis
のクライアントをインストール Redis のパッケージをインストールするのみです。 【~/fabfile.py】 def setup_redis_cli(): setup_repo_epel() sudo(""" yum -y install redis """) # fab -u devops -H monitor setup_redis_cli [monitor] Executing task 'setup_hosts' ~略~ Done. Disconnecting from monitor... done. 5) コンテンツを設置 Python CGI をコンテンツとして作成します。 今回はホスト名を表示するだけ。 【~/hello_py.cgi】※http://repo.cloud.idc.jp/Tmp/hello_py.cgi に置いてます #!/usr/bin/python # -*- coding: utf-8 -*- html = ''' <HTML> <HEAD> <TITLE>test</TITLE> </HEAD> <BODY> <HR> <DIV ALIGN="center"> <H1>%s</H1> <HR> </DIV> </BODY> 15 / 24
16.
hbstudy#41×IDCF クラウドハンズオン </HTML> ''' import socket name
= socket.gethostname() print html % name 今作成したコンテンツを、サーバーにアップロードします。 【~/fabfile.py】 from fabric.operations import * def setup_cgi(): sudo(""" yum -y install httpd chkconfig httpd on service httpd start """) put("~/hello_py.cgi","/var/www/cgi-bin/hello_py.cgi",use_sudo=True) sudo("chmod 755 /var/www/cgi-bin/hello_py.cgi") run("curl -s http://localhost/cgi-bin/hello_py.cgi | sed -e 's/<[^>]*>//g'") # fab -u devops -H monitor setup_cgi ~略~ [monitor] out: i-1063-23685-VM [monitor] out: Done. Disconnecting from monitor... done. 16 / 24
17.
hbstudy#41×IDCF クラウドハンズオン 6) Monit
インストール WEB サーバの負荷状況は monit から監視します。 まず、Monit の監視設定を作成します。 1 分のロードアベレージが 2 を超えたら、Redis にプッシュします。 【~/loadavg.rc】 check system loadavg if loadavg (1min) > 2 then exec "/usr/bin/redis-cli -h %(redis_server)s rpush scale:%(scale_group)s:up %(host_name)s" ※2 行目の if からは 1 行で書いてください 次に Monit をインストールする Fabfile を作成します。 【~/fabfile.py】 def hostname(): return run("hostname") def setup_monit(): setup_repo_epel() sudo(""" yum -y install monit """) upload_template("loadavg.rc","/etc/monit.d",use_sudo=True,backup=False, context=dict(redis_server="redis-server", host_name=hostname(), scale_group=SCALE_GROUP)) sudo(""" chkconfig monit on service monit restart """) Fabric を実行します。Monit のサービスが起動できれば成功。 # fab -u devops -H monitor setup_monit ~略~ [monitor] out: monit を起動中: monit: generated unique Monit id ~ and stored to '/root/.monit.id' [monitor] out: [ OK ] 17 / 24
18.
hbstudy#41×IDCF クラウドハンズオン Done. Disconnecting from
monitor... done. 7) Web 公開 ポータルサイトで HTTP をロードバランシング設定し公開します。 「リソース」>「ネットワーク」>「ロードバランサー」にて、80 番のルールを作成し、作成した サーバを分散先として登録します。 ※ロードバランサー設定については、エントリーガイド(pp.32)を参照してください http://【公開 IP アドレス】/cgi-bin/hello_py.cgi へ接続し動作確認。 18 / 24
19.
hbstudy#41×IDCF クラウドハンズオン 6. 自動でスケールアウトしてみる 1)
cron スクリプト設置 Redis の状態を見て、スケールアウトさせるスクリプトを設置します。 まず、スクリプトの中で実行する、稼働中の VM の数える Fabric を作成します。 【~/fabfile.py】 def count_idcf_vms(): with hide('running', 'stdout', 'stderr'): resp = local(""" idcf-compute-api listVirtualMachines --state Running """,capture=True) retval = json.loads(resp,'UTF-8') ret = retval["listvirtualmachinesresponse"] count = ret["count"] print count 動作を確認します。 # fab -u devops -H monitor count_idcf_vms [monitor] Executing task 'count_idcf_vms' 2 Done. スケールを制御するスクリプトを設置します。 【~/scale.sh】※http://repo.cloud.idc.jp/Tmp/scale.sh に置いてます #!/bin/bash queue="scale:sclgrp:up" lock_key="scale:sclgrp:lock" incrd_key="scale:sclgrp:incrd" path="`dirname $0`" log_file="scale.log" log() { echo [`date`] $1 >> ${path}/${log_file} 19 / 24
20.
hbstudy#41×IDCF クラウドハンズオン } log "-------------------------" queue_count=$(redis-cli
llen $queue | awk '{print $1}') log "queue_count: $queue_count" if [ $queue_count -gt 0 ]; then vm_name=$(redis-cli lpop $queue | awk '{print $1}') log "queued by: $vm_name" locked=$(redis-cli get $lock_key | awk '{print $1}') incrd=$(redis-cli get $incrd_key | awk '{print $1}') if [ -z "$locked" ]; then locked=0 fi if [ -z "$incrd" ]; then incrd=0 fi log "locked: $locked" log "incrd: $incrd" vm_count=$(fab -f ~/fabfile.py -H localhost count_idcf_vms | awk 'NR==2 {print $0}') log "vm_count: $vm_count" if [ $locked -lt 1 ]; then redis-cli incr $lock_key redis-cli incr $incrd_key fab -f ~/fabfile.py -H localhost setup_idcf_vm:displayname=scale_$incrd redis-cli set $lock_key 0 redis-cli del $queue else log "not deploying new vm" fi fi # cd ~ # chmod +x scale.sh # crontab –e */3 * * * * /root/scale.sh 20 / 24
21.
hbstudy#41×IDCF クラウドハンズオン 2) 負荷をかけます stress
コマンドで負荷をかけます。 【~/fabfile.py】 def setup_stress(): sudo("yum -y install stress") def do_stress(): run("stress --cpu 8 --timeout 10m") stress コマンドをインストール後、実行します。 # fab -u devops -H monitor setup_stress # fab -u devops -H monitor do_stress 以上で、負荷がかかり始め、数分で VM が作成されるはずです。ポータルサイトをご覧ください。 VM が作られるまでの過程を確認するには、monitor サーバーで Monit の動作を確認。 SSH で別セッションを張ってみてください。 [devops@ホスト名 ~]$ tail -f /var/log/monit [JST Dec 6 16:11:33] error : 'loadavg' loadavg(1min) of 3.5 matches resource limit [loadavg(1min)>2.0] [JST Dec 6 16:11:33] info : 'loadavg' exec: /usr/bin/redis-cli redis-server でスケールスクリプトの動作を確認。 # tail -f ~/scale.log [Thu Dec 6 18:34:01 JST 2012] ------------------------- [Thu Dec 6 18:34:01 JST 2012] queue_count: 0 [Thu Dec 6 18:35:01 JST 2012] ------------------------- [Thu Dec 6 18:35:01 JST 2012] queue_count: 1 [Thu Dec 6 18:35:01 JST 2012] queued by: i-1063-16861-VM [Thu Dec 6 18:35:01 JST 2012] locked: 0 [Thu Dec 6 18:35:01 JST 2012] incrd: 0 [Thu Dec 6 18:35:02 JST 2012] vm_count: 2 ポータルから scale_0 という仮想マシンができていることを確認してください。 作成されていれば成功。 21 / 24
22.
hbstudy#41×IDCF クラウドハンズオン 7. [Appendix]ロードバランサーに自動追加 時間が余ればこちらもお試しください。 自動で作成された仮想マシンが、自動でロードバランサーに組み込まれるところを作ります。 ポータルから設定したロードバランサーのルール
ID を確認します。 # idcf-compute-api listLoadBalancerRules { "listloadbalancerrulesresponse": { "count": 1, "loadbalancerrule": [ { "account": "hbstudy1", "algorithm": "roundrobin", "cidrlist": "", "domain": "70000001277", "domainid": 1278, "id": 42849, 以下略 ロードバランサーに追加する Fabric を作成します。 【~/fabfile.py】 def add_balancing_server(vmid): resp = local(""" idcf-compute-api assignToLoadBalancerRule --id {id} --virtualmachineids {virtualmachineids} """.format(id="42849", #your ID of the load balancer rule virtualmachineids=vmid),capture=True) print resp ※ルールの ID は先に確認したものに置き換えてください。 22 / 24
23.
hbstudy#41×IDCF クラウドハンズオン スケールスクリプトを修正します。(赤字のところを追記) 【~/scale.sh】※http://repo.cloud.idc.jp/Tmp/scale2.sh に置いてます #!/bin/bash queue="scale:sclgrp:up" lock_key="scale:sclgrp:lock" incrd_key="scale:sclgrp:incrd" path="`dirname
$0`" log_file="scale.log" log() { echo [`date`] $1 >> ${path}/${log_file} } log "-------------------------" queue_count=$(redis-cli llen $queue | awk '{print $1}') log "queue_count: $queue_count" if [ $queue_count -gt 0 ]; then vm_name=$(redis-cli lpop $queue | awk '{print $1}') log "queued by: $vm_name" locked=$(redis-cli get $lock_key | awk '{print $1}') incrd=$(redis-cli get $incrd_key | awk '{print $1}') if [ -z "$locked" ]; then locked=0 fi if [ -z "$incrd" ]; then incrd=0 fi log "locked: $locked" log "incrd: $incrd" vm_count=$(fab -f ~/fabfile.py -H localhost count_idcf_vms | awk 'NR==2 {print $0}') log "vm_count: $vm_count" if [ $locked -lt 1 ]; then redis-cli incr $lock_key redis-cli incr $incrd_key # fab -f ~/fabfile.py -H localhost setup_idcf_vm:displayname=scale_$incrd 23 / 24
24.
hbstudy#41×IDCF クラウドハンズオン
vm_id=$(fab -f ~/fabfile.py -H localhost setup_idcf_vm:displayname=scale_$incrd | grep "__vmid__" | cut -d',' -f2) fab -f ~/fabfile.py -H localhost add_balancing_server:vmid=$vm_id redis-cli set $lock_key 0 redis-cli del $queue else log "not deploying new vm" fi fi この後、負荷をかけて自動で作成された仮想マシンはロードバランサーに追加されます。 ポータルからロードバランサーの設定を確認してみてください。 この状態では、追加された仮想マシンでは httpd が動おらず、ヘルスチェックに失敗するので HTTP の通信は分散されません。 httpd のインストール、コンテンツのアップロードが必要です。 まだ時間が余っている人は考えてみてはいかがでしょうか。。。。 ここまでの fabfile は以下の URL に置いています。 http://repo.cloud.idc.jp/Tmp/fabfile.py 24 / 24
Descargar ahora