50
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS CodeDeploy でデプロイを自動化する

Last updated at Posted at 2017-06-20
1 / 11

AWS CodeDeploy を使ってデプロイを自動化したときの資料です。


Before


EC2 + UserData

  • AMIから新しいインスタンスを作成
  • UserDataでGithubからコードをpull
  • Capistranoで自分自身にアプリをデプロイ
  • ELBに新しいインスタンスを追加
  • ELBから古いインスタンスを退役
  • 古いインスタンスを削除

before.png


ここが問題

  • インスタンスの作成〜削除が手作業
    • 膨大な手順書
    • 作業ミス
  • スクリプトの終了がログ以外から確認できない
    • サーバに入ってcloud-init-output.logを監視

After


CodeDeploy

  • EC2インスタンスへのファイル配置とスクリプト実行の自動化・管理ツール

CodeDeployの利用方法

事前準備

  1. アプリケーションを作成
  2. デプロイグループを作成
    • デプロイ対象 (EC2のタグ名 / AutoScalingGroup)
    • デプロイ方法 (1台ずつ / 半分ずつ / すべて一度に)
  3. EC2にcodedeploy-agentをインストール
  4. AppSpecファイルを配置
    • ファイルの配置場所を指定: files
    • 各イベントで実行するスクリプトを指定:hooks

デプロイ

  1. リビジョンを作成
    • S3 / Github にファイルをアップロード
    • リビジョンとして登録
  2. デプロイを実行
    • 使用するリビジョンを指定(デフォルトは最新)
    • AWS CLI / マネジメントコンソールから実行

after.png


ここがうれしい

  • インスタンスの作成〜削除がすべて自動化
  • デプロイ開始と終了がSlack通知で確認できる
  • デプロイの経過がモニタリングできる
  • デプロイの結果と所要時間が記録される
  • マネジメントコンソールからも実行できるので、段階的に移行できる
  • CodeDeployの利用自体は無料
50
36
0

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
50
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?