SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所

「AWS OpsWorks」で環境一式を自動構築

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第6回

  • X ポスト
  • このエントリーをはてなブックマークに追加

Layerの作成

 次に、Instanceを作成する際の雛形となるLayerを作成します。

 Stackの画面からAdd a layerを選択するか、Management Consoleの左側のメニューからLayersを選択し、+Layerを選択すると図3のような画面が開きます。

図3.Layer登録画面(Rails App Server)
図3.Layer登録画面(Rails App Server)

 プルダウンメニューの選択肢からも分かるように、さまざまなLayer typeが標準で用意されています。標準で用意されているLayerの中には、バージョンなどの追加の設定項目を指定できるものもあります。例えば図2に映っているRails App Serverの場合、Rubyのバージョンの選択や、Rails stack(Passengerを使うかUnicornを使うか)の選択などもこの画面から設定できるようになっています。自分で好きなLayerを作りたい場合は、Customを選択すると最低限の項目を含む雛形が作成されます。

 今回はPHPのサンプルアプリを動かすので、Layer typeの中からPHP App Serverを選択して追加します。OpsWorksは5/14からELBを利用できるようになったので、今回はELBも指定してみました。ELBを指定する場合は、OpsWorksで利用するリージョン内に事前に手動でELBを作成しておいてください。

図4.Layer登録画面(PHP App Server)
図4.Layer登録画面(PHP App Server)

 PHP App Serverの登録時の画面には最低限の項目しかありませんでしたが、一度Layerを作成した後にEdit画面を開くと、実行するRecipeの追加や割り当てるSecurity Groupの選択、EBSボリュームの追加、Auto Healing機能の有効化などさまざまな設定が追加で行えます。

 今回はデフォルトのまま利用するので次に進みます。

Instanceの追加

 次に、先ほど作成したLayerにInstanceを追加します。Instanceには常時稼働する「24/7」というタイプの他に、スケジュールに応じて起動停止するTime-based、負荷に応じて起動停止するLoad-basedを加えた3種類があります。今回は常時稼働する24/7のInstanceを1台追加しましょう。

 左のメニューからInstancesを選択し、先ほど作成したPHP App ServerのLayerの所にあるAdd an instanceを選択すると、図5のようなフォームが現れます。

図5.Instance登録フォーム
図5.Instance登録フォーム

 今回はサンプルアプリを動かすだけなので、Sizeはm1.smallで十分でしょう。その他の欄には、基本的にStackの設定項目の所で決めた値がデフォルト値として入っています。問題なければAdd instanceを選択して追加してください。

 Instanceを追加した時点では、まだOpsWorksに登録されただけで、EC2 Instanceは存在していません。追加後にInstancesの画面からstartを選択すると、EC2 Instanceが作成されてChefにより自動的に構築が行われます。Instance Typeにm1.smallを指定した場合、構築には10分程度かかりました。構築が完了してStatusがOnlineになったら次へ進みましょう。

アプリケーションのデプロイ

 最後にアプリケーションの登録とデプロイを行います。画面左のメニューからAppsを選択してAdd an appを選択すると、デプロイするアプリの登録画面が開きます。

図6.App登録画面
図6.App登録画面

 今回はAWSのUser Guide内で使われていたサンプルアプリである、SimplePHPAppをデプロイします。設定するのは、App Name、App Type、Repository Type、Repository URLの4か所です。App Nameは自由につけて構いません。残りの3か所はUser Guide内の記述に従い、App TypeはPHP、Repository TypeはGit、Repository URLは、git://github.com/amazonwebservices/opsworks-demo-php-simple-app.gitを指定してAdd appを実行します。

 今回はAWSが公開しているGit Repositoryを指定しましたが、アプリケーションコードの置き場所はGitやSVNのリポジトリのほかに、S3のパスやHTTPでアクセスできるURLなども指定できます。

 追加するとApp画面に登録したアプリケーションの一覧が表示されるので、Actionの中にあるDeployを選択してデプロイ画面を開きます。

図7.Deploy画面
図7.Deploy画面

 今回は特に変更する箇所はないので、そのままDeployを実行します。Advancedの欄を開くと、ChefのRecipeに与える追加のJSONを指定したり、デプロイを実行するLayerやInstanceを個別に指定することもできます。

実際にアクセス

 デプロイ処理が完了すると、アプリケーションにアクセス可能な状態となっています。ELBを登録した場合はInstances画面のVisit URLを、ELBなしなら個別のInstanceのPublic IPを開いてみると、以下の画面が確認できると思います。

図8.Simple PHP Appの画面
図8.Simple PHP Appの画面

 以上がOpsWorksを利用する際の基本的な流れです。今回はLayerは1つだけでしたが、実際に利用する際はもう少し多様なLayerを追加したり、自作したChefのRecipeを追加する形になると思います。その場合も多少設定する箇所が増えるだけで、基本的な流れは変わりません。

次のページ
AWS OpsWorksの特徴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧

もっと読む

この記事の著者

高橋 和也(TIS株式会社)(タカハシ カズヤ)

TIS株式会社 コーポレート本部 戦略技術センターに所属。運用業務やAWSをはじめとするクラウドサービスの検証を経て、現在はOSSとして公開中のZabbix拡張ツールであるHyClops for Zabbixの開発や、OSSアプリケーション実行基盤であるISHIGAKI Templateの開発に携わる。Tech-Sketch : http://tech-sketch.jp

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7304 2013/08/08 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング