ITとかCockatielとか

技術のこととか。飼鳥(オカメインコ)のこととか。気になったこととか。基本的には備忘録。

AWS Auto Scaling

Auto Scaling

概要

  • EC2インスタンスを自動増減できる。
  • メリットは高可用性、耐障害性、コスト効率化。
  • スケーリングは「起動設定」と「グループ」を設定したうえで、「ポリシー」または「スケジュール」により行われる。
  • 利用は無料。

水平スケーリング

  • Auto Scaling では水平スケーリングを行う。
  • 水平スケーリングは、インスタンス数を変更することで対応する。

垂直スケーリングはシステムサイズの変更(システムの設計変更)が発生するためスケールさせずらい。

Auto Scaling の設定

起動設定

項目 概要
AMI Amazon Machine Image
AWS EC2 - ITとかCockatielとか 参照
インスタンスタイプ AWS EC2 - ITとかCockatielとか 参照
IAMロール
ユーザーデータ 後述。
ストレージ 起動するEC2のストレージを設定する。
セキュリティグループ AWS EC2 - ITとかCockatielとか 参照
キーペア AWS EC2 - ITとかCockatielとか 参照

Auto Scaling グループ

項目 概要
起動名設定 名称を設定する。
アベイラビリティゾーン
(サブネット)
ELBのターゲットグループ AWS ELB - ITとかCockatielとか 参照
インスタンス 最小、最大、希望数
通知 スケーリングアクション時の通知設定。
タグ 判別のためのタグを設定する。。

Auto Scaling ポリシー

  • ターゲットポリシー
    メトリクスポリシー(CPUの平均使用率など)に応じ、EC2インスタンスを最小~最大数の間で調整する。
  • シンプルポリシー
    CloudWatchのアラームによりスケーリングを行う。
    クールダウン機能により、スケーリングアクションが連続して発生することを防ぐ。
  • ステップポリシー
    複数段階でのインスタンス追加、削除を設定する。
    ウォームアップ機能によりインスタンスが連続して追加されることを防ぐ。

スケジュール

  • 時間を指定したスケジュールによるスケーリング設定も可能。

アプリケーションデプロイの自動化

  • 前提として、EC2インスタンスはステートレスで設計する。
  • バージョンアップ等のデプロイを自動化するためには、ブートストラップという設計パターンを適用する。

ユーザーデータ

  • EC2の初回起動時に自動実行されるスクリプト
  • 最新モジュール取得や設定値の取得設定を仕込むことで、最新バージョンのインスタンスを起動できる。

メタデータ

  • 設定値の取得時に参照する情報。
  • パブリックIPアドレスの取得などが行える。