助け合いフォーラム

AWS

AWS ソリューションアーキテクト - アソシエイト(SAA-C02)
問題ID : 24789
問題を開く
Auto Scalingのライフサイクルフックで実現可能なことはどれか(2つ選択)

正解

スケールアウトによって新たに追加したインスタンスに初期化スクリプトを実行させる

スケールインによって終了するインスタンスにログを収集・退避させる

解説

ライフサイクルフックは、スケーリング発生によるEC2インスタンスの起動または終了時に任意の処理を実行する機能です。例えば、スケールアウト(リソースの増加)によって新たに追加したインスタンスに初期化スクリプトを実行させたり、スケールイン(リソースの削減)によって終了するインスタンスにログを収集・退避させるといった処理を行えます。

したがって正解は
・スケールアウトによって新たに追加したインスタンスに初期化スクリプトを実行させる
・スケールインによって終了するインスタンスにログを収集・退避させる
です。

その他の選択肢については、以下のとおりです。

・スケールアウトが発生した際に起動するリソースを設定する
「起動設定」で実現可能なことなので、誤りです。

・平均CPU使用率が30%になるように自動的にスケーリングする
「ターゲット追跡スケーリング」で実現可能なことなので、誤りです。

・スケジュールした日時に1回のみ、または定期的なスケジュールで自動的にスケーリングする
「スケジュールに基づくスケーリング」で実現可能なことなので、誤りです。

参考

【AWS Auto Scaling】
AWS Auto ScalingはAWSリソースを負荷状況や設定したスケジュールに従って、自動的にスケーリングする機能です。スケーリングとは、スケールアウト(リソースの増加)またはスケールイン(リソースの削減)を実施することです。Amazon EC2やAmazon ECS、Amazon DynamoDBなどで利用できます。
Auto ScalingはELBと組み合わせて利用することが多く、ELBのターゲットグループ配下のリソースに障害が発生した時や負荷が増大した時に、Auto Scalingが自動的に新規のリソースを立ち上げてELBのターゲットグループに追加します。逆に負荷が低くなっている時は、ターゲットグループ内のリソースを減らすこともできます。
Auto Scalingを利用することによって、システムの可用性やコストパフォーマンスの向上に繋がります。


【Auto Scalingグループ】
Auto Scalingグループは自動スケーリング対象の管理単位です。Auto Scalingグループ内でのリソースの最小数および最大数や、スケールアウト/インの実行条件などを指定します。

[Auto Scalingグループの主な設定項目]


【Auto Scalingのヘルスチェック】
Auto Scalingには、Auto Scalingグループのリソースを対象にしたヘルスチェック機能があります。ヘルスチェックのタイプは「EC2」と「ELB」があり、「EC2」はインスタンスの「ステータスチェック」の結果を確認し、「ELB」は応答状態の確認をします。リソースがEC2インスタンスの場合は強制的に「EC2」が有効になっており、「EC2」と「ELB」を両方有効にすることもできます。
また、リソースが起動してから初回のヘルスチェックまでの待機時間として「ヘルスチェックの猶予期間」を設定できます。ヘルスチェックの猶予期間を設定することにより、リソースが起動してアプリケーションなどが立ち上がる前にヘルスチェックが実行されてしまい、ヘルスチェックが異常になってしまうのを防ぎます。
Auto Scalingのヘルスチェックで異常となったリソースは、自動的に終了されます。

[Auto Scalingのヘルスチェックの設定画面]


[EC2のステータスチェックの画面]


【Auto Scalingの起動設定】
Auto Scalingグループで、スケールアウトが発生した時に起動するリソースを設定します。例えばEC2インスタンスの場合は、AMIやインスタンスタイプ、セキュリティグループなどEC2インスタンスを作成するための設定と同じ項目を指定します。

【オートスケールの終了ポリシー】
Auto Scalingグループでスケールインが発生した時に、どの優先順位でリソースを終了するかを設定します。リソース数が最も多いAZ内で、以下の中から選択した優先順位でリソースが削除されます。
・最も起動時刻が過去のリソース
・最も起動時刻が新しいリソース
・最も作成時刻が過去の起動設定を利用して起動されたリソース
・次の課金タイミングが最も早いリソース
デフォルトの場合は「最も作成時刻が過去の起動設定を利用して起動されたリソース」が選択されます。
スケールイン時に特定のリソースが終了されないようにするには、「インスタンスの保護」を有効にする必要があります。

【スケーリングの発生条件】
スケーリングはリソースの負荷状況やスケジュールに従って自動的に実施させる他、手動で実施することもできます。

■動的スケーリング
CPUやネットワークなどのパフォーマンスの負荷状況に応じて、自動的にスケールアウト/インを実施します。動的スケーリングを利用するには、スケーリングの発生条件となるメトリクスと、スケールアウト/インのアクションを「動的スケーリングポリシー」に設定します。

動的スケーリングは、スケーリングの発生条件によって「シンプルスケーリング」「ステップスケーリング」「ターゲット追跡スケーリング」の3つのタイプに分かれています。
○シンプルスケーリング
特定のメトリクス(CPU使用率などシステムのパフォーマンスに関するデータ)に対する1つのしきい値に基づいて、インスタンスを増減します。
下記の例では、300秒間の平均CPU使用率が50%を超えたら、インスタンスを1台追加するように設定しています。


○ステップスケーリング
特定のメトリクスに対する複数のしきい値に基づいて、インスタンスの増減を段階的に行います。
下記の例では、300秒間の平均CPU使用率が50%を超えたらインスタンスを1台追加し、90%を超えたら2台追加するように設定しています。


○ターゲット追跡スケーリング
特定のメトリクスが指定した目標値になるように、インスタンスを増減します。増減するインスタンス数はAWS側で調整されます。
下記の例では、平均CPU使用率が30%になるように設定しています。


■スケジュールに基づくスケーリング
スケジュールした日時に1回のみ、または定期的なスケジュールで自動的にスケールアウト/インを実施します。
下記の画面では、毎日午前8時30分からインスタンス数を4台にするように設定しています。


■手動スケーリング
作業者がバッチ処理など負荷の高い作業をする前に手動でリソースを増やしたり、作業後に減らしたりできます。
手動スケーリングはAuto Scalingグループの設定画面にて行います。「希望するキャパシティ」に必要なリソース数を、リソースの「最小」以上、「最大」以下の数で入力します。


【ライフサイクルフック】
ライフサイクルフックは、スケーリング発生によるEC2インスタンスの起動または終了時に任意の処理を実行する機能です。例えば、スケールアウトによって新たに追加したインスタンスに初期化スクリプトを実行させたり、スケールインによって終了するインスタンスにログを収集・退避させるといった処理を行えます。

上に戻る

選択肢の誤字

公開日 2022/06/28

正答選択肢「スケールインによって終了するインスタンスにログを収集・退避させる」
についてですが、
「~~~インスタンス ログを収集・退避させる」
ではなく、
「~~~インスタンス ログを収集・退避させる」
ではないでしょうか。
ご確認よろしくお願いいたします。

2022/06/28 23:19

こんばんは。
問題の主題である「ライフサイクルフック」がスケールインによって終了するインスタンスに任意の処理を実行させる機能なので、「スケールインによって終了するインスタンスに(インスタンス自身の)ログを収集・退避させる」ということかと思います。


コメント

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?