LoginSignup
16
17

More than 5 years have passed since last update.

AWS CodeDeployを使ってみる

Last updated at Posted at 2014-11-16

AWSの新作codedeployを試してみます

マニュアルも読まずにコンソールからポチポチといきます

まず、使えるリージョンはまだ2つしかない模様
新機能がバージニアなのは鉄板ですね

スクリーンショット 2014-11-15 19.25.28.png

リージョンを選んでウェルカム画面

スクリーンショット 2014-11-15 19.25.42.png

アプリケーションは今回はsampleとして用意されているものを使ってみます。

スクリーンショット 2014-11-15 19.25.47.png

ところで、こんな風にWEBのコンソールでsampleが用意されているものってありましたっけ?

さらにぽちぽち進みます

スクリーンショット 2014-11-15 19.25.52.png

AmazonLinuxを選択して起動
ここでwindowsを選択してもサンプルのアプリケーションは同じWEBの画面でした。
違いは後述
codedeployで利用するVMを起動すると

スクリーンショット 2014-11-15 19.27.38.png

CloudFormationで起動するので、そっちのコンソールみろ的なダイヤログが出ましたので、
覗いてみると

スクリーンショット 2014-11-15 19.27.52.png

デプロイが始まっていました。
VMの起動は、CloudFormationを使って起動していました。
サンプルだからでしょうか?

CloudFromationのDescriptionを見てみると

Create instances ready for CodeDeploy: Create up to 3 Amazon EC2 instances with an associated instance profile and install the AWS CodeDeploy Agent. 
**WARNING** This template creates one or more Amazon EC2 instances. You will be billed for the AWS resources used if you create a stack from this template.

3つインスタンスを起動するようです。
スクリーンショット 2014-11-15 19.34.42.png

codeDeployのダイヤログには、CloudFormationので CREATE_COMPLETE となってから、次へ進めとありますので、しばし待機します

スクリーンショット 2014-11-15 19.36.16.png

CREATE_COMPLETEになったので、次に進みます

アプリケーションに名前をつけます
スクリーンショット 2014-11-15 19.36.32.png

アプリケーションを設定します

スクリーンショット 2014-11-15 19.37.06.png

ここでサンプルの中身が取得出来るので、見てみると

スクリーンショット 2014-11-15 19.37.57.png

このような中身でした

ちなみに、window用だとこんな感じ

スクリーンショット 2014-11-15 20.43.38.png

中身の違いは、パッケージのインストールとOSコマンドの違いだけでした
この中のappspec.ymlが鍵のようなので、中身を見てみると

AmazonLinuxの場合

version: 0.0
os: linux
files:
  - source: /index.html
    destination: /var/www/html/
hooks:
  BeforeInstall:
    - location: scripts/install_dependencies
      timeout: 300
      runas: root
    - location: scripts/start_server
      timeout: 300
      runas: root
  ApplicationStop:
    - location: scripts/stop_server
      timeout: 300
      runas: root

windowsの場合

version: 0.0
os: windows
files:
  - source: \index.html
    destination: C:\inetpub\wwwroot
hooks:
  BeforeInstall:
    - location: \before-install.bat
      timeout: 900

アプリケーションフックと思われる書式とhttpのルートフォルダが記載れていました

scriptsの中身は
AmazonLinuxの場合

#!/bin/bash
service httpd start
#!/bin/bash
isExistApp = `pgrep httpd`
if [[ -n  $isExistApp ]]; then
    service httpd stop        
fi
#!/bin/bash
yum install -y httpd

windowsの場合のbefore-install.bat

REM Install Internet Information Server (IIS). 
c:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -Command Import-Module -Name ServerManager
c:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -Command Install-WindowsFeature Web-Server

コマンドがそのままでした

次にデプロイグループを設定

スクリーンショット 2014-11-15 19.41.56.png

EC2のインスタンスにタグをつけて管理するみたいです
ここで、さきほどCloudFormationで起動したVM以外にも同じタグがついていた場合、instanceの数がタグに反応して増えます

また、タグ名はautoscallingグループの名前も付けることが出来るみたいです

サービスロールの設定
スクリーンショット 2014-11-15 19.42.31.png
createとuseが使えますが、useの時点でcodedeploy用のロールが作られていました
恐らくWEBのサンプル専用に作られえるものでしょう

作られているロールはこのような感じです

スクリーンショット 2014-11-15 19.43.48.png

デプロイの設定をします
スクリーンショット 2014-11-15 19.44.16.png

以下の3つの設定が出来る模様
都度1回
30分に1回
全体で1回
今回は1回のやつを選択

最後に設定一覧が出て問題なければ実行

スクリーンショット 2014-11-15 19.46.00.png

アプリケーションのデプロイが開始されます
スクリーンショット 2014-11-15 19.46.31.png

しばらくすると、viewに変化
スクリーンショット 2014-11-15 19.47.00.png

さらに待つと、3ノードにデプロイが完了
スクリーンショット 2014-11-15 19.48.32.png

では、アプリケーションにアクセス・・・といっても、どこのURLにアクセスして良いかわからないので、3つのVMのどれかのpublicIPにhttpアクセスしてみると
スクリーンショット 2014-11-15 19.49.36.png

アプリケーションが表示されました。
試しに他のVMのIPにしても同じものが表示されました。
なお、Linux/Windowsどちらで試しても同じ結果となりました。

稼働中はこのような表示になるようです
スクリーンショット 2014-11-15 19.53.54.png
スクリーンショット 2014-11-15 19.50.28.png

さて、デプロイできたので、今度は削除してみます
上記の画面の済にあるDeleteボタンをクリックすると

スクリーンショット 2014-11-15 19.53.57.png

このような表示が出て、さらに続行するも・・・消えませんでした
正確にはアプリケーションは削除されましたが、VMは削除されませんでした
そこで
cloudformationから消してみます
スクリーンショット 2014-11-15 19.54.54.png
スクリーンショット 2014-11-15 19.54.58.png
スクリーンショット 2014-11-15 19.55.08.png
スクリーンショット 2014-11-15 19.55.19.png

消えました(当たり前

総評

opsworkと被っているレイヤにも思えますが、chefが書けないといったエンジニアに向けた設定ファイルベースのサービスという感じに思えました
また、windows版があるのでエンタープライズでwindowsバリバリのシステムの移行にももしかしたら使えるかもしれません。

詳細は、WEBのマニュアルを参照されると良いと思います

近日中に、custom版、およびCLIでも試してみたいと思います

16
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
17