[AWS]EC2オートスケール時のデプロイ実装手順と運用について

 

[AWS]SSM経由でAnsibleを実行

  • 事前にオースケール元となるBase AMIのインスタンスを作成
  • EC2のログインをSSM化してログインできるように
  • SSM経由でAnsibleを実行できるように
    • Nginx confやphp-fpm www.confなど適用できること
    • Base Imageに対してAnsibleでパッケージ等インストール
  • リリース時のデプロイスクリプト
    • ソースコードをrsyncして転送できるように
    • aws-cliでrunningしているインスタンスをtag名で取ってくるように
  • GitHub Actions
    • ssmのインストール
    • デプロイシェルスクリプトをhookして実行
    • Masterマージ
  • オートスケール(Terraform化)
    • AMI化をしておく(Base AMI)
    • ユーザーデータ
      • リポジトリをgit pull
    • AMIでCPU30%以上になったらインスタンスをMax 6台に
    • CPU10%以下でインスタンス2台
  • abコマンドで負荷テスト
    • インスタンス台数が増えていることを確認
  • Base AMIを更新する場合
    • Auto Scaling グループから手動で最新のAMIを指定してローリングアップデートができていること

  • autoscale.tf


Base AMI(Golden Image)の運用方法

  • base-amiを起動する
  • Ansibleで適用/または手動で設定ファイルなどを変更
  • git pullをしてソースは最新に
  • フロントをbuildしておく
  • base-amiを停止する
  • AMIを取得する
  • 起動設定からアクション > base-amiの起動テンプレートからbase-ami_xxxxxxxxxx > アクションからテンプレート変更(新しいバージョンを作成)
  • 自分のAMIから先程取得したAMIを指定し、テンプレートのバージョンを選択し保存
  • Auto Scaling グループ > base-ami > インスタンスの更新(90/300に指定して)からローリングアップデート(約10分待つ)

Was this helpful?

0 / 0

コメントを残す