

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用自動終止政策進行 Amazon EMR 叢集清除
<a name="emr-auto-termination-policy"></a>

自動終止政策可讓您協調叢集清除，而不需要監控和手動終止未使用的叢集。將自動終止政策新增至叢集時，您可以指定叢集應自動關閉之前的閒置時間量。

視發行版本而定，Amazon EMR 會使用不同的標準將叢集標記為閒置。下表概述 Amazon EMR 如何確定叢集閒置。


****  

| 如果使用... | 叢集視為閒置的條件... | 
| --- | --- | 
| Amazon EMR 5.34.0 及更新版本，以及 6.4.0 及更新版本 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/emr/latest/ManagementGuide/emr-auto-termination-policy.html)  | 
| Amazon EMR 版本 5.30.0 - 5.33.0 和 6.1.0 - 6.3.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/emr/latest/ManagementGuide/emr-auto-termination-policy.html)  Amazon EMR 會將叢集標記為閒置，即使您具有作用中的 Python3 核心，也可能會自動終止叢集。這是因為執行 Python3 核心不會在叢集上提交 Spark 作業。若要將自動終止與 Python3 核心搭配使用，建議您使用 Amazon EMR 6.4.0 版或更新版本。   | 

**注意**  
Amazon EMR 6.4.0 及更新版本支援叢集上的檔案，以偵測主節點上的活動：`/emr/metricscollector/isbusy`。使用叢集執行 Shell 指令碼或非 YARN 應用程式時，您可以定期觸控或更新 `isbusy` 以告知 Amazon EMR 此叢集未閒置。

您可以在建立叢集時附接自動終止政策，或將政策新增至現有叢集。若要變更或停用自動終止，您可以更新或移除政策。

## 考量事項
<a name="emr-auto-termination-considerations"></a>

使用自動終止政策之前，請考慮下列功能和限制：
+ 在下文中 AWS 區域，Amazon EMR 自動終止適用於 Amazon EMR 6.14.0 及更高版本：
  + 亞太區域 (台北) (ap-east-2)
  + 亞太區域 (墨爾本) (ap-southeast-4)
  + 亞太區域 (馬來西亞) (ap-southeast-5)
  + 亞太區域 (紐西蘭) (ap-southeast-6)
  + 亞太區域 (泰國) (ap-southeast-7)
  + 加拿大西部 (卡加利) (ca-west-1)
  + 歐洲 (西班牙) (eu-south-2)
  + 墨西哥 (中部) (mx-central-1)
+ 在下文中 AWS 區域，Amazon EMR 自動終止適用於 Amazon EMR 5.30.0 和 6.1.0 及更高版本：
  + 美國東部 (維吉尼亞北部) (us-east-1)
  + 美國東部 (俄亥俄) (us-east-2)
  + 美國西部 (奧勒岡) (us-west-2)
  + 美國西部 (加利佛尼亞北部) (us-west-1)
  + 非洲 (開普敦) (af-south-1)
  + 亞太區域 (香港) (ap-east-1)
  + 亞太地區 (孟買) (ap-south-1)
  + 亞太區域 (海德拉巴) (ap-south-2)
  + 亞太地區 (首爾) (ap-northeast-2)
  + 亞太地區 (大阪) (ap-northeast-3)
  + 亞太地區 (新加坡) (ap-southeast-1)
  + 亞太地區 (雪梨) (ap-southeast-2)
  + 亞太區域 (雅加達) (ap-southeast-3)
  + 亞太地區 (東京) (ap-northeast-1)
  + 加拿大 (中部) (ca-central-1)
  + 南美洲 (聖保羅) (sa-east-1)
  + 歐洲 (法蘭克福) (eu-central-1)
  + 歐洲 (蘇黎世) (eu-central-2)
  + 歐洲 (愛爾蘭) (eu-west-1)
  + 歐洲 (倫敦) (eu-west-2)
  + 歐洲 (米蘭) (eu-south-1)
  + 歐洲 (巴黎) (eu-west-3)
  + 歐洲 (斯德哥爾摩) (eu-north-1)
  + 以色列 (特拉維夫) (il-central-1)
  + 中東 (阿拉伯聯合大公國) (me-central-1)
  + 中國 (北京) (cn-north-1)
  + 中國 (寧夏) (cn-northwest-1)
  + AWS GovCloud （美國東部） (us-gov-east-1)
  + AWS GovCloud （美國西部） (us-gov-west-1)
+ 未指定時間量時，閒置逾時預設為 60 分鐘 (一小時)。您可以指定最短閒置逾時為一分鐘，最長閒置逾時為 7 天。
+ 透過 Amazon EMR 6.4.0 及更新版本，當您使用 Amazon EMR 主控台建立新叢集時，依預設啟用自動終止。
+ 當您為叢集啟用自動終止時，Amazon EMR 會發佈高解析度 Amazon CloudWatch 指標。您可以使用這些指標，來追蹤叢集活動和閒置。如需詳細資訊，請參閱[叢集容量指標](UsingEMR_ViewingMetrics.md#emr-metrics-managed-scaling)。
+ 當您使用非 YARN 型應用程式 (例如 Presto、Trino 或 HBase) 時，不支援自動終止。
+ 若要使用自動終止，metrics-collector 程序必須能夠連接至公有 API 端點，才能在 API Gateway 中自動終止。如果您搭配 使用私有 DNS 名稱 Amazon Virtual Private Cloud，自動終止將無法正常運作。為了確保自動終止正常運作，建議您採取下列其中一個動作：
  + 從 Amazon VPC 移除 API Gateway 介面 VPC 端點。
  + 遵循[從 VPC 連接至 API Gateway API 時，為什麼會收到 HTTP 403 禁止錯誤？](https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-vpc-connections/)中的指示進行操作以停用私有 DNS 名稱設定。
  + 改為在私有子網路中啟動叢集。如需詳細資訊，請參閱 [私有子網路](emr-clusters-in-a-vpc.md#emr-vpc-private-subnet) 的主題。
+ (EMR 5.30.0 及更新版本) 如果您將主要安全群組的預設**允許所有**傳出規則移除為 0.0.0.0/，則必須新增規則以允許安全群組的傳出 TCP 連線，以便在連接埠 9443 上進行服務存取。用於服務存取的安全群組也必須允許來自主要安全群組的連接埠 9443 上的輸入 TCP 流量。如需有關設定安全群組的詳細資訊，請參閱[適用於主要執行個體的 Amazon EMR 受管安全群組 (私有子網路)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-man-sec-groups.html#emr-sg-elasticmapreduce-master-private)。

## 使用自動終止的許可
<a name="emr-auto-termination-permissions"></a>

在套用和管理 Amazon EMR 的自動終止政策之前，您需要先將下列範例 IAM 許可政策中列出的許可附接至管理 EMR 叢集的 IAM 資源。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": {
      "Sid": "AllowAutoTerminationPolicyActions",
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:PutAutoTerminationPolicy",
        "elasticmapreduce:GetAutoTerminationPolicy",
        "elasticmapreduce:RemoveAutoTerminationPolicy"
      ],
      "Resource": "<your-resources>"
    }
}
```

## 附接、更新或移除自動終止政策
<a name="emr-auto-termination-attach"></a>

本章節包含可協助您從 Amazon EMR 叢集附接、更新或移除自動終止政策的指示。在使用自動終止政策之前，確保您具有必要的 IAM 許可。請參閱 [使用自動終止的許可](#emr-auto-termination-permissions)。

------
#### [ Console ]

**使用主控台建立叢集時連接自動終止政策**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr) 開啟 Amazon EMR 主控台。

1. 在左側導覽窗格中的 **EC2 上的 EMR** 下，選擇**叢集**，然後選擇**建立叢集**。

1. 在**叢集終止**下，選取**閒置時間後終止叢集**。

1. 指定叢集自動終止之前所花費的閒置小時數和分鐘數。預設閒置時間為 1 小時。

1. 選擇適用於您的叢集的任何其他選項。

1. 若要啟動您的叢集，請選擇**建立叢集**。

**使用主控台在執行中的叢集上連接、更新或移除自動終止政策**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr) 開啟 Amazon EMR 主控台。

1. 在左側導覽窗格中的 **EC2 上的 EMR** 下，選擇**叢集**，然後選取您要更新的叢集。

1. 在叢集詳細資訊頁面的**屬性**標籤上，尋找**叢集終止**，然後選取**編輯**。

1. 選取或清除**啟用自動終止**以開啟或關閉此功能。如果開啟自動終止，請指定叢集自動終止之前所花費的閒置小時數和分鐘數。然後選擇**儲存變更**以確認。

------
#### [ AWS CLI ]

**開始之前**

在您使用自動終止政策之前，建議您更新為最新版本的 AWS CLI。如需說明，請參閱[安裝、更新和解除安裝 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)。

**使用 連接或更新自動終止政策 AWS CLI**
+ 您可以使用 `aws emr put-auto-termination-policy` 命令在叢集上附接或更新自動終止政策。

  下列範例會為 *IdleTimeout* 指定 3,600 秒。如果您未指定 *IdleTimeout*，此值預設為一小時。

  ```
  aws emr put-auto-termination-policy \
  --cluster-id <your-cluster-id> \
  --auto-termination-policy IdleTimeout=3600
  ```
**注意**  
包含 Linux 行接續字元 (\$1) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows，請將其移除或取代為插入符號 (^)。

  您也可以在使用 `aws emr create-cluster` 命令時指定 `--auto-termination-policy` 的值。如需在 中使用 Amazon EMR 命令的詳細資訊 AWS CLI，請參閱 [AWS CLI 命令參考](https://docs.aws.amazon.com/cli/latest/reference/emr)。

**使用 移除自動終止政策 AWS CLI**
+ 使用 `aws emr remove-auto-termination-policy` 命令從叢集移除自動終止政策。如需在 中使用 Amazon EMR 命令的詳細資訊 AWS CLI，請參閱 [AWS CLI 命令參考](https://docs.aws.amazon.com/cli/latest/reference/emr)。

  ```
  aws emr remove-auto-termination-policy --cluster-id <your-cluster-id>
  ```

------