Slide 1

Slide 1 text

CodeDeployでAuto  Scaling   Lifecycleを⼿手軽に利利⽤用する クラスメソッド株式会社 ⼤大瀧  隆太 classmethod.jp 1 DEVIO-‐‑‒MTUP11-‐‑‒TOKYO-‐‑‒010 2014/12/16

Slide 2

Slide 2 text

classmethod.jp 2 About  me •  Ryuta  Otaki    @takipone •  Job  title  :      AWS  Consulting  Div.    Engineer  /  Trainer •  Interest  :      Network  /      Deployment  Tools •  Favorite  AWS  Services      Amazon  Route  53 classmethod.jp 2

Slide 3

Slide 3 text

Agenda •  AWS  Auto  Scalingとは •  AWS  CodeDeployとは •  Auto  Scaling  Lifecycleとは •  CodeDeployのAuto  Scaling対応 •  デモ •  まとめ classmethod.jp 3

Slide 4

Slide 4 text

AWS  Auto  Scalingとは •  EC2を⾃自動起動、削除する機能 •  AMIからインスタンスを作成し、 グループ単位でインスタンスを管理理 •  CloudWatch、ELBと連携 classmethod.jp 4 Auto Scaling group

Slide 5

Slide 5 text

AWS  CodeDeployとは •  re:Invent  2014で発表&リリース •  現在はバージニア、オレゴンリージョンのみ classmethod.jp 5

Slide 6

Slide 6 text

AWS  CodeDeploy雑感 •  Good☆ –  ファイルコピーとスクリプト実⾏行行のみの超シンプ ル構成 –  他のAWSデプロイ系サービスよりも速い –  ローリングアップデート対応 •  Bad!! –  ChefやAnsibleのような、べき等性や複雑な処理理 はできない –  エージェントのインストールが必要 –  リージョンごとに構成を区別しなければならない classmethod.jp 6

Slide 7

Slide 7 text

CodeDeployの記事、いっぱい書いてます! •  特集カテゴリー  CodeDeploy  |    Developers.IO http://dev.classmethod.jp/referencecat/aws-‐‑‒codedeploy/ –  [新サービス]  AWS  CodeDeployを触ってみた  #reinvent –  AWS  CodeDeploy  を使って  Rails  アプリケーションを デプロイしてみた –  AWS  CodeDeployでWindowsのCloudWatchカスタム メトリクス設定を⾃自動化する –  AWS  CodeDeploy  の  AppSpec  を読み解く –  re:Invent  2014で発表された11個のAWS新サービスを 140⽂文字でまとめる  #reinvent –  AWS  CodeDeploy  Agent  をインストールする  Recipe  を 書いてみた –  AWS  CodeDeploy  +  Travis  CI  でデプロイを⾃自動化する –  LambdaでCodeDeployの⾃自動デプロイ機能を実装する classmethod.jp 7

Slide 8

Slide 8 text

Auto  Scaling  Lifecycleとは •  Auto  Scaling配下のインスタンスの状態 を管理理する仕組み classmethod.jp 8

Slide 9

Slide 9 text

Auto  Scaling  Lifecycleとは •  Auto  Scalingの処理理をフックすることで –  アプリのセットアップ完了了までELBへの追加を保留留 –  ログ退避が完了了までTerminateを保留留 といった、きめ細かい状態管理理が可能 •  けど、Auto  Scaling  APIを叩くロジック実装が     必要で、⾯面倒。 –  参考記事  :  【新機能】Auto  Scalingのインスタンス起動/破棄時に初期 処理理/終了了処理理を追加  –  LifeCycleHook機能のご紹介  |   Developers.IO http://dev.classmethod.jp/cloud/aws/autoscaling-‐‑‒lifecyclehook/ classmethod.jp 9

Slide 10

Slide 10 text

Auto  Scaling  Lifecycleとは •  Auto  Scaling配下のインスタンスの状態 を管理理する仕組み classmethod.jp 10 CodeDeployは、 このPending  Stateを ハンドリングしてくれます。

Slide 11

Slide 11 text

Auto  Scalingの  Pendingステータス classmethod.jp 11

Slide 12

Slide 12 text

Demo  (暖かい⽬目でご覧ください classmethod.jp 12

Slide 13

Slide 13 text

CodeDeployの制約 •  “最近の”アプリデータをデプロイするので 最低1回、先にデプロイを実⾏行行しなければ ならない •  Terminate時のフックは無い •  複数アプリケーションの場合、実⾏行行順は 制御できなさそう •  起動時の⾃自動実⾏行行はAuto  Scalingインス タンスのみ classmethod.jp 13

Slide 14

Slide 14 text

まとめ •  CodeDeployはEC2インスタンスの状態を 考慮してくれるデプロイサービス •  ローリングアップデート機能あり •  Auto  Scaling  LifecycleのPending  State を⼿手軽にフックできる⼿手段として有⽤用 •  Thank  you! classmethod.jp 14