

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

# 自動化ルール
<a name="automation-rules"></a>

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

## ルールタイプ
<a name="automation-rules-type"></a>

ルールには次の 2 つのタイプがあります。
+ アカウントルール: 推奨アクションをアカウントにのみ適用するルール。
+ 組織ルール: メンバーアカウント全体に推奨されるアクションを一元的に適用するルール。

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

## ルール条件
<a name="automation-rules-criteria"></a>

ルールを設定するときは、スナップショットやアタッチされていない 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 リファレンスの[「条件](https://docs.aws.amazon.com/compute-optimizer/latest/APIReference/API_automation_Criteria.html)」を参照してください。

### 比較演算子
<a name="automation-rules-comparison-operators"></a>

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

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

#### 文字列条件演算子
<a name="automation-rules-string-operators"></a>

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


| 条件演算子 | 説明 | 
| --- | --- | 
| `StringEquals` | 完全一致、大文字と小文字が区別されます。 | 
| `StringNotEquals` | 完全一致が否定され、大文字と小文字が区別されます。 | 
| `StringEqualsIgnoreCase` | 完全一致。大文字と小文字は無視されます。 | 
| `StringNotEqualsIgnoreCase` | 一致が否定され、大文字と小文字は無視されます。 | 
| `StringLike` | 大文字と小文字の区別がある一致。値には、文字列内の任意の場所に複数文字の一致ワイルドカード (`*`) を含めることができます。文字列の部分一致検索を行うには、ワイルドカードを指定する必要があります。 | 
| `StringNotLike` | 符号反転の一致には、大文字と小文字の区別があります。値には、文字列内の任意の場所に複数文字の一致ワイルドカード (`*`) を含めることができます。 | 

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

#### 数値条件演算子
<a name="automation-rules-numeric-operators"></a>

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


| 条件演算子 | 説明 | 
| --- | --- | 
| `NumericEquals` | 正確な数値マッチング。 | 
| `NumericNotEquals` | 負の数値マッチング。 | 
| `NumericLessThan` | 「Less than」マッチング。 | 
| `NumericLessThanEquals` | 「Less than or equals」の一致。 | 
| `NumericGreaterThan` | 「より大きい」マッチング。 | 
| `NumericGreaterThanEquals` | 「より大きいか等しい」マッチング。 | 

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

### IfExists 演算子
<a name="automation-rules-ifexists-operators"></a>

任意の比較演算子 ( など`StringLikeIfExists`) `IfExists`に追加して、指定した属性が推奨アクションに**ない場合**の条件の評価方法を変更します。
+ 基本演算子では、存在しない属性は **false** に評価され、推奨されるアクションはルール**から除外**されます。
+ `...IfExists` バリアントでは、存在しない属性は **true** に評価され、推奨されるアクション**が含まれます**。

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

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

### ルール条件の例
<a name="automation-rules-criteria-examples"></a>

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

次のルール条件では、 **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 にあります

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

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

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

条件設定:


| 属性 | オペレーター | 値 | 
| --- | --- | --- | 
| AWSリージョン | `StringEquals` | `us-east-1`, `us-west-2` | 
| ルックバック期間 (日) | `NumericGreaterThanEquals` | `32` | 
| リソースタグ (キー: `automation-opt-out`) | `StringNotLikeIfExists` | `*` | 

## スケジュール
<a name="automation-rules-schedule"></a>

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

## ルールの順序
<a name="automation-rules-order"></a>

デフォルトでは、ルールはルールグループ内でルール順序 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

