AWS OpsWorks編~OpsWorksを使ってみよう!パート①~


こんにちは!中の人です。

前回までのレシピではAmazon EC2編ということでお話していたかと思いますが、今回からは『AWS OpsWorks編』ということで、AWSのベータ版サービスであるAWS OpsWorksを使った運用の自動化について4回にわたって記述していきます。

その前に、AWS OpsWorksに関する情報をご紹介しましょう!

今回のレシピよりお話するAWS OpsWorksですが、つい先日、AWSより新たに以下の機能の追加が発表されました。

・ ELBのサポート
・ Amazon CloudWatchのメトリクス監視ビューの追加
・ 利用できるAmazon EC2インスタンスタイプにマイクロインスタンスが追加

これによりシステム運用がより簡単になり、効率的に作業をおこなうことができますね!
※AWS OpsWorksの機能追加の詳細に関するAWS公式ブログはこちら

それでは、AWS OpsWorksを使っていきましょう!
まずは、AWS OpsWorksが何なのかということですが・・・


OpsWorksとは

 

 

Chefベースのアプリケーション管理サービスで、起動・設定・デプロイ・アンデプロイ・停止といった事を管理することができ、
OpsWorksを利用することで、セットアップやデプロイ時の人的ミスや工数負荷を減らす、といった運用の自動化をすることが出来ます。
Chefと異なりセットアップなしにGUI上で設定するだけで利用可能な事が魅力で、既存のChefのレシピをそのまま利用することも可能です。


OpsWorksの特徴

 

 

・ 時間や負荷に応じた自動起動や障害時の自動復旧ができる
・ セットアップなしにChefが利用でき、世の中に数多く公開されているChefのレシピが利用できる
・ EC2では自分で構築が必要だったRAIDやカスタムメトリクスで監視する必要があったメモリ監視など、便利な機能が追加されている

OpsWorksはベータ版ですが、日々の機能追加が非常に早く、先ほど上記でご紹介したような様々な機能が追加されております。
RDSなどその他のサービスへの対応が楽しみですね!

なお、OpsWorksを利用するにあたり以下の様な作業が必要となります。
では、作業をおこなっていきましょう!

201305230201

1. AWS管理コンソールにログインしてサービスで「OpsWorks」を選択、下記画面を開き左メニューの「Add your first Stack」をクリックします。


Stackの設定

 

 

2. Stackの設定画面が表示されるので、必要情報を入力します。

201305230202

項目名 内容 備考
Name Stack管理用の名称です。「MyFirstStack」など任意の名称を付けて下さい。 a-z, A-Z, 0-9, -, _, (, ), :, +, @, ?, !, /, ., ‘, ” ,(64文字以内)
Default operating system Stack内で起動させるEC2の標準OSを選択します。 .
Region Stackを利用するリージョンを選択します。 Availability ZoneやSSHキーなどの設定と連動します。
Default Availability Zone Stack内で起動させる標準zoneを選択します。 任意でOK
IAM Role Stackに対するIAMロールを設定出来ます。 デフォルトのままでOK
Default SSH key Stack内で標準SSH keyを選択します。 セキュリティとして個別のキーを割り当てている場合は「Do not user a default SSH key」を選択
Hostname theme EC2に自動で割り振られるhost名のルールを選びます Baked Goods(焼き菓子名)、Clouds(雲の名前)やFruits(フルーツ名)などユニークなものもありますが、日本人には馴染みが無いので「Layer Dependent」がオススメ
Stack color 複数のスタックを管理するために色が割り振れます ブラウザのiconもStack Colorになります。
Advanced
Default root device type EC2のルートデバイスを選択出来ます。 .
Use Custom Chef Cookbooks カスタムレシピを使う場合は「Yes」にします リポジトリのURLを登録
Custom Chef JSON カスタムレシピをjson形式で追加することができます。 .

小ネタですが、US EastでZone Aを利用したところ、いくつかのインスタンスは在庫切れで立ちあげられませんでした…。そんなこともあるんですね。


Layerの設定

 

 

3. 起動させると以下の様な画面が表示されるので、「Add a layer」を選択します。

201305230203

項目名 内容 備考
Layer type 作成するレイヤーの種類を選択します。

今回は「PHP App Server」を選択します。

現在はLoadBalancer,App Server,DB,Otherの大きく4種類があります。
Elastic Load Balancer App Serverの負荷分散用のロードバランサーを選択します。

今回は「None」を選択します。

必要ない場合は「None」を選択します。

4. レイヤーの作成を行うと、以下の様な画面が表示されますので、「Add an instance」をクリックします。

201305230204


instanceの追加

 

 

5. 立ち上げる時には「Size」のみ変更し、後はデフォルトで問題ありません。

201305230205

項目名 内容 備考
Hostname ルールがなければデフォルトでOKです。 Stack設定の「Hostname theme」を変えると自動的に割り振られる名前が変わります。
Size インスタンスサイズを指定します。 デフォルトがc1.mediumですので、忘れずに変更して下さい!
Availability Zone ゾーンを選択します。 .
Advanced . .
Scaling type 24/7稼働(常に利用)、時間指定・負荷指定での起動を指定出来ます。 .
SSH Key ログインする場合、必要なキーを選択肢ます。 .
Operating system OSを選択します。 利用するレシピによってはAmazon Linux未対応の場合がありますので、その場合はUbuntuを選択するとうまくいくことがあります。
Architecture OSのビット数を選択します。 .
Root device type EC2のルートデバイスを選択出来ます。 .

5. 以下の様な画面が表示されるので「Start」をクリックするとサーバが起動します。
※レシピを読み込んでインストールやデプロイなどを行うので、通常の起動よりは時間がかかります。

201305230206

作成されたIPに対してSSH等を行うことで、サーバへの接続が確認出来ます。
また、yum等で確認するとデフォルトのOSに対してAppサーバとして必要な要素がインストールされていることが確認出来ます。

これで設定は完了です!

いかがでしたでしょうか?

次回は「AWS OpsWorks編~OpsWorksを使ってみよう!パート②~」と題して、OpsWorksの「Apps」の設定方法をお話していきたいと思います。
お楽しみに!