View a markdown version of this page

自動化ルール - AWS Compute Optimizer

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

自動化ルール

自動化ルールは、定義された基準とスケジュールに基づいて、推奨されるアクションを自動的に実装します。自動化ルールは、Compute Optimizer Automation AWS リージョンが利用可能なすべての で自動アクションを管理するグローバルリソースです。Compute Optimizer Automation が利用可能なAWSリージョンからオートメーションルールを作成、更新、削除できます。

ルールタイプ

ルールには次の 2 つのタイプがあります。

  • アカウントルール: 推奨アクションをアカウントにのみ適用するルール。

  • 組織ルール: メンバーアカウント全体に推奨されるアクションを一元的に適用するルール。

注記

管理アカウントまたは委任された管理者のみが組織ルールを作成できます。自動化が有効になっているメンバーアカウントのみを選択でき、許可された組織ルールを選択してルールを適用できます。メンバーアカウントは、自分のアカウントに適用される組織ルールの詳細を表示できますが、編集することはできません。組織ルールは、メンバーアカウントのルールの前か後に適用するように設定できます。

ルール条件

ルールを設定するときは、スナップショットやアタッチされていない Amazon EBS ボリュームの削除、Amazon EBS ボリュームタイプのアップグレードなど、ルールが実装する推奨アクションタイプを選択します。AWSリージョンやリソースタグなどの基準を使用して、選択を絞り込みます。次に、現在一致する推奨アクションをプレビューして、条件を検証します。

重要

ルール条件を指定しない場合、Compute Optimizer は、Compute Optimizer Automation AWS リージョンが利用可能なすべての で推奨されるアクションを含め、ルールスコープで選択したアカウントに、選択したすべての推奨アクションタイプを適用します。

オートメーションルールでは、次の推奨アクション属性と比較演算子がサポートされています。

属性 オペレーター フィールドタイプ

現在のボリュームサイズ (GiB)

NumericEquals | NumericNotEquals | NumericLessThan | NumericLessThanEquals | NumericGreaterThan | NumericGreaterThanEquals | NumericEqualsIfExists | NumericNotEqualsIfExists | NumericLessThanIfExists | NumericLessThanEqualsIfExists | NumericGreaterThanIfExists | NumericGreaterThanEqualsIfExists

整数

現在のボリュームタイプ

StringEquals | StringNotEquals | StringEqualsIgnoreCase | StringNotEqualsIgnoreCase | StringLike | StringNotLike | StringEqualsIfExists | StringNotEqualsIfExists | StringEqualsIgnoreCaseIfExists | StringNotEqualsIgnoreCaseIfExists | StringLikeIfExists | StringNotLikeIfExists

String

推定削減額 ($)

NumericEquals | NumericNotEquals | NumericLessThan | NumericLessThanEquals | NumericGreaterThan | NumericGreaterThanEquals | NumericEqualsIfExists | NumericNotEqualsIfExists | NumericLessThanIfExists | NumericLessThanEqualsIfExists | NumericGreaterThanIfExists | NumericGreaterThanEqualsIfExists

Double

ルックバック期間 (日)

NumericEquals | NumericNotEquals | NumericLessThan | NumericLessThanEquals | NumericGreaterThan | NumericGreaterThanEquals | NumericEqualsIfExists | NumericNotEqualsIfExists | NumericLessThanIfExists | NumericLessThanEqualsIfExists | NumericGreaterThanIfExists | NumericGreaterThanEqualsIfExists

整数

AWSリージョン

StringEquals | StringNotEquals | StringEqualsIgnoreCase | StringNotEqualsIgnoreCase | StringLike | StringNotLike | StringEqualsIfExists | StringNotEqualsIfExists | StringEqualsIgnoreCaseIfExists | StringNotEqualsIgnoreCaseIfExists | StringLikeIfExists | StringNotLikeIfExists

String

リソースARN

StringEquals | StringNotEquals | StringEqualsIgnoreCase | StringNotEqualsIgnoreCase | StringLike | StringNotLike | StringEqualsIfExists | StringNotEqualsIfExists | StringEqualsIgnoreCaseIfExists | StringNotEqualsIgnoreCaseIfExists | StringLikeIfExists | StringNotLikeIfExists

String

リソースタグ

StringEquals | StringNotEquals | StringEqualsIgnoreCase | StringNotEqualsIgnoreCase | StringLike | StringNotLike | StringEqualsIfExists | StringNotEqualsIfExists | StringEqualsIgnoreCaseIfExists | StringNotEqualsIgnoreCaseIfExists | StringLikeIfExists | StringNotLikeIfExists

リソースタグ

再起動が必要

StringEquals | StringNotEquals | StringEqualsIgnoreCase | StringNotEqualsIgnoreCase | StringLike | StringNotLike | StringEqualsIfExists | StringNotEqualsIfExists | StringEqualsIgnoreCaseIfExists | StringNotEqualsIgnoreCaseIfExists | StringLikeIfExists | StringNotLikeIfExists

String

属性ごとに最大 20 個の条件を指定でき、条件ごとに 20 個の値を指定できます。詳細については、AWS Compute Optimizerオートメーション API リファレンスの「条件」を参照してください。

比較演算子

ルール条件で比較演算子を使用して、推奨アクション属性を指定した値と照合します。

重要

ルール基準で指定した属性が推奨アクションに存在しない場合、値は一致せず、条件は false であり、推奨アクションはルールから除外されます。このロジックは、 属性が存在しない場合に true と評価される演算子を除くすべての比較...IfExists演算子に適用されます。...IfExists 演算子は、推奨アクションに 属性が存在する (存在する) かどうかをテストします。

文字列条件演算子

文字列条件演算子を使用すると、推奨アクション属性と指定した文字列を比較するルール条件を定義できます。

条件演算子 説明

StringEquals

完全一致、大文字と小文字が区別されます。

StringNotEquals

完全一致が否定され、大文字と小文字が区別されます。

StringEqualsIgnoreCase

完全一致。大文字と小文字は無視されます。

StringNotEqualsIgnoreCase

一致が否定され、大文字と小文字は無視されます。

StringLike

大文字と小文字の区別がある一致。値には、文字列内の任意の場所に複数文字の一致ワイルドカード (*) を含めることができます。文字列の部分一致検索を行うには、ワイルドカードを指定する必要があります。

StringNotLike

符号反転の一致には、大文字と小文字の区別があります。値には、文字列内の任意の場所に複数文字の一致ワイルドカード (*) を含めることができます。

注記

の値として*単独で を使用すると、存在するすべての値StringLikeと一致します。と組み合わせた場合StringNotLike、 の値は「何も一致しない*」を意味し、属性が存在するすべての推奨アクションを効果的に除外します。たとえば、 を値Applicationを持つタグキーStringNotLikeで使用すると、Applicationタグの値に関係なく、 タグを持つ推奨アクションは*除外されます。

数値条件演算子

数値条件演算子を使用すると、推奨されるアクション属性を整数または 10 進数と比較するルール条件を定義できます。

条件演算子 説明

NumericEquals

正確な数値マッチング。

NumericNotEquals

負の数値マッチング。

NumericLessThan

「Less than」マッチング。

NumericLessThanEquals

「Less than or equals」の一致。

NumericGreaterThan

「より大きい」マッチング。

NumericGreaterThanEquals

「より大きいか等しい」マッチング。

たとえば、Lookback period 属性NumericGreaterThanEqualsで を使用して、レコメンデーションの生成に使用されるルックバック期間が 32 日以上である推奨アクションのみを自動化するルールを作成できます。

IfExists 演算子

任意の比較演算子 ( などStringLikeIfExists) IfExistsに追加して、指定した属性が推奨アクションにない場合の条件の評価方法を変更します。

  • 基本演算子では、存在しない属性は false に評価され、推奨されるアクションはルールから除外されます。

  • ...IfExists バリアントでは、存在しない属性は true に評価され、推奨されるアクションが含まれます

IfExists は、特定のリソースのグループをルールから除外しても、フィルタリングするタグが付いていないリソースを含める場合に役立ちます。たとえば、1 つのチームが所有するリソースを除くすべてを含めることができます。ベースStringNotEqualsteam = の場合、TeamA のリソースはTeamA除外されますが、teamタグがまったく付いていないすべてのリソースも除外されるため、含めるリソースは除外されます。を追加してIfExists、タグのないリソースを範囲内に保持します。

  • StringNotEquals は、 team タグが 以外の値に設定されているリソースのみに一致しますTeamA。タグのないリソースは除外されます。

  • StringNotEqualsIfExists は、teamタグのないリソース、 以外の値に設定されているリソースを照合しますTeamA。タグ付きリソース team = のみが除外TeamAされます。

IfExists は、リソース所有者が自動化から独自のリソースを除外できるようにする場合にも役立ちます。所有者automation-opt-outが除外するリソースに適用する などの専用のオプトアウトタグを指定できます。この場合、タグの存在は値ではなく重要です。そのため、automation-opt-outタグキー*の値StringNotLikeIfExistsとともに を使用します。* ワイルドカードは任意の値と一致するため、Compute Optimizer はタグを持つすべてのリソースを除外します。IfExists バリアントはタグを持たないリソースを範囲内に保持します。タグのないすべてのリソースも除外されます。

ルール条件の例

例: 特定のリージョンに推奨アクションのみを含める

次のルール条件では、 AWSリージョン属性StringEqualsで を使用して、 us-east-1または のリソースの推奨アクションに一致しますus-west-2。条件に複数の値を指定すると、値には OR 関係があります。推奨されるアクションは、属性値がいずれかの値と一致する場合に条件に一致します。

条件設定:

属性 オペレーター

AWSリージョン

StringEquals

us-east-1, us-west-2

評価:

属性値 結果

us-east-1

一致

us-west-2

一致

eu-west-1

一致なし

例: 最小ルックバック期間で生成された推奨アクションのみを含める

次のルール条件は、Lookback 期間 (日数) 属性NumericGreaterThanEqualsで を使用して、レコメンデーションの生成に使用されるルックバック期間が 32 日以上の推奨アクションのみを自動化します。これにより、推奨されるアクションが自動化される前に、より長い観察期間が必要になります。

条件設定:

属性 オペレーター

ルックバック期間 (日)

NumericGreaterThanEquals

32

評価:

属性値 結果

32

一致

14

一致なし

例: リソースが特定のチームに属していない限り、推奨されるアクションを含める

多くのアカウントで Compute Optimizer Automation を有効にし、1 つのチームのリソースをルールから除外したいプラットフォームチームを考えてみましょう。チームはすでに他の目的でリソースにteamタグを付けていますが、すべてのリソースにタグを付けているわけではありません。タグ付けされたリソース team = を除外しながら、オートメーションを広く適用したいと考えていますTeamA

次のルール条件は、タグキー teamと値 を使用して、リソースタグ属性StringNotEqualsIfExistsで を使用しますTeamA。推奨アクションは、リソースにteamタグがまったくない場合、またはタグが 以外の値に設定されている場合に含まれますTeamA。多くのリソースには タグが付いていないため、 IfExists はそれらを範囲内に保持します。タグのないリソースはすべて除外されます。

条件設定:

属性 オペレーター タグキー

リソースタグ

StringNotEqualsIfExists

team

TeamA

評価:

推奨アクション状態 結果 説明

リソースに team タグがありません

一致

属性は存在せず、存在しない属性は true とIfExists評価されます。

リソースのタグ team = web

一致

タグが存在し、値が と一致しませんTeamA

リソースのタグ team = TeamA

一致なし

タグが存在し、値が と一致するためTeamA、推奨されるアクションは除外されます。

例: リソースにオプトアウトタグがない限り、推奨されるアクションを含める

リソース所有者は、専用のオプトアウトタグを適用することで、個々のリソースをオートメーションから除外できます。この例では、所有者は除外するリソースに automation-opt-out タグを追加します。

次のルール条件は、タグキー automation-opt-outと値 を使用して、リソースタグ属性StringNotLikeIfExistsで を使用します** ワイルドカードは任意の値と一致するため、タグを持つリソースはすべて除外されます。リソースに automation-opt-out タグがない場合、推奨されるアクションが含まれます。

条件設定:

属性 オペレーター タグキー

リソースタグ

StringNotLikeIfExists

automation-opt-out

*

評価:

推奨アクション状態 結果 説明

リソースに automation-opt-out タグがありません

一致

属性は存在せず、存在しない属性は true とIfExists評価されます。

リソースのタグ automation-opt-out = true

一致なし

タグが存在し、任意の値*と一致するため、推奨されるアクションは除外されます。

リソースのタグ automation-opt-out = temporary

一致なし

タグが存在し、任意の値*と一致するため、推奨されるアクションは除外されます。

例: 複数の条件を組み合わせる

複数の条件を組み合わせて、ルールの範囲を絞り込むことができます。推奨アクションをルール (AND ロジック) に含めるには、すべての条件が一致している必要があります。

次の設定は、EBS ボリュームが推奨するアクションを自動化します。

  1. us-east-1 と us-west-2 にあります

  2. 少なくとも 32 日間のルックバック期間で生成された。

  3. 自動化をオプトアウトしない (automation-opt-outタグなし)。

このルールには、3 つの条件がすべて同時に満たされた場合にのみ推奨されるアクションが含まれます。

条件設定:

属性 オペレーター

AWSリージョン

StringEquals

us-east-1, us-west-2

ルックバック期間 (日)

NumericGreaterThanEquals

32

リソースタグ (キー: automation-opt-out)

StringNotLikeIfExists

*

スケジュール

頻度 (毎日、毎週、または毎月)、開始時刻、終了時刻、タイムゾーンを指定して、ルールを実行するスケジュールを設定します。このウィンドウ中に、Compute Optimizer は指定された条件に一致する推奨アクションの実装を開始します。開始されるアクションの数は、スケジュールされた時間枠の期間、Compute Optimizer Automation の同時実行数の制限、および各アクションの完了に必要な時間によって異なります。自動アクションは、自動化ワークフローのすべてのステップが完全に完了するまで「進行中」と表示されます。AWSリージョンごとにアカウントごとに最大 100 のアクションを同時に進行中にできます。

ルールの順序

デフォルトでは、ルールはルールグループ内でルール順序 1 (最高優先度) で作成されます。たとえば、管理アカウントがメンバーアカウントルールの後に適用されるように設定された組織ルールを作成すると、そのグループ内のすべてのルールの中で最も高い優先度である 1 のルール順序を受け取ります。ルールグループとルールの順序は、アカウントの推奨アクションが複数のルールに一致するときに適用されるルールを決定します。Compute Optimizer は、ルールの実行がスケジュールされているタイミングに関係なく、ルール順序の値が最も低いアクティブなルールにアクションを割り当てます (優先順位が最も高い)。

たとえば、推奨されるアクションが次の表のすべてのルールと一致する場合、Compute Optimizer はそれを Rule-C に割り当て、Rule-C のスケジュールに従って実装します。

ルールグループ ルールの順序 ルール名 ステータス スケジュール

メンバーアカウントルールの前に評価される組織ルール

1

ルール A

非アクティブ

毎週月曜日の 12:00~13:00 UTC

2

ルール B

非アクティブ

毎日 12:00~13:00 UTC

メンバーアカウントのルール

1

ルール C

アクティブ

毎月 15 日の 12:00 から 13:00 UTC

2

ルール - D

非アクティブ

毎月 15 日の 12:00 から 13:00 UTC

メンバーアカウントルールより前の組織ルール

1

ルール E

非アクティブ

毎週月曜日の 12:00~13:00 UTC

2

ルール - F

アクティブ

毎日 12:00~13:00 UTC