Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CodeDeployでAuto Scaling Lifecycleを手軽に利用する

Ecd0c945f6911dbf75358a8addee15f7?s=47 takipone
December 16, 2014

CodeDeployでAuto Scaling Lifecycleを手軽に利用する

【AWS勉強会】CM re:Growth 2014 TOKYOで発表したスライドです。

Ecd0c945f6911dbf75358a8addee15f7?s=128

takipone

December 16, 2014
Tweet

Transcript

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

    2014/12/16
  2. 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
  3. Agenda •  AWS  Auto  Scalingとは •  AWS  CodeDeployとは •  Auto

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

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

  6. AWS  CodeDeploy雑感 •  Good☆ –  ファイルコピーとスクリプト実⾏行行のみの超シンプ ル構成 –  他のAWSデプロイ系サービスよりも速い – 

    ローリングアップデート対応 •  Bad!! –  ChefやAnsibleのような、べき等性や複雑な処理理 はできない –  エージェントのインストールが必要 –  リージョンごとに構成を区別しなければならない classmethod.jp 6
  7. 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
  8. Auto  Scaling  Lifecycleとは •  Auto  Scaling配下のインスタンスの状態 を管理理する仕組み classmethod.jp 8

  9. 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
  10. Auto  Scaling  Lifecycleとは •  Auto  Scaling配下のインスタンスの状態 を管理理する仕組み classmethod.jp 10 CodeDeployは、

    このPending  Stateを ハンドリングしてくれます。
  11. Auto  Scalingの  Pendingステータス classmethod.jp 11

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

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

    •  起動時の⾃自動実⾏行行はAuto  Scalingインス タンスのみ classmethod.jp 13
  14. まとめ •  CodeDeployはEC2インスタンスの状態を 考慮してくれるデプロイサービス •  ローリングアップデート機能あり •  Auto  Scaling  LifecycleのPending

     State を⼿手軽にフックできる⼿手段として有⽤用 •  Thank  you! classmethod.jp 14