こんにちは!中の人です。
前回までのレシピでは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を利用するにあたり以下の様な作業が必要となります。
では、作業をおこなっていきましょう!
1. AWS管理コンソールにログインしてサービスで「OpsWorks」を選択、下記画面を開き左メニューの「Add your first Stack」をクリックします。
Stackの設定
2. Stackの設定画面が表示されるので、必要情報を入力します。
項目名 | 内容 | 備考 |
---|---|---|
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」を選択します。
項目名 | 内容 | 備考 | ||
---|---|---|---|---|
Layer type | 作成するレイヤーの種類を選択します。
今回は「PHP App Server」を選択します。 |
現在はLoadBalancer,App Server,DB,Otherの大きく4種類があります。 | ||
Elastic Load Balancer | App Serverの負荷分散用のロードバランサーを選択します。
今回は「None」を選択します。 |
必要ない場合は「None」を選択します。 |
4. レイヤーの作成を行うと、以下の様な画面が表示されますので、「Add an instance」をクリックします。
instanceの追加
5. 立ち上げる時には「Size」のみ変更し、後はデフォルトで問題ありません。
項目名 | 内容 | 備考 |
---|---|---|
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」をクリックするとサーバが起動します。
※レシピを読み込んでインストールやデプロイなどを行うので、通常の起動よりは時間がかかります。
作成されたIPに対してSSH等を行うことで、サーバへの接続が確認出来ます。
また、yum等で確認するとデフォルトのOSに対してAppサーバとして必要な要素がインストールされていることが確認出来ます。
これで設定は完了です!
いかがでしたでしょうか?
次回は「AWS OpsWorks編~OpsWorksを使ってみよう!パート②~」と題して、OpsWorksの「Apps」の設定方法をお話していきたいと思います。
お楽しみに!