

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

# 使用 Amazon EMR 的好處
<a name="emr-overview-benefits"></a>

使用 Amazon EMR 有許多好處。其中包括透過 提供的彈性， AWS 以及相較於建置您自己的內部部署資源，可用的成本節省。此章節會提供其他好處的概觀和其他資訊的連結，這些資訊可協助您深入探索。

**Topics**
+ [節省成本](#emr-benefits-cost)
+ [AWS 整合](#emr-benefits-integration)
+ [部署](#emr-benefits-deployment)
+ [可擴展性與彈性](#emr-benefits-scalability)
+ [可靠性](#emr-benefits-reliability)
+ [安全](#emr-benefits-security)
+ [監控](#emr-benefits-monitoring)
+ [管理介面](#emr-what-tools)

## 節省成本
<a name="emr-benefits-cost"></a>

Amazon EMR 定價取決於執行個體類型和您部署的 Amazon EC2 執行個體數量以及啟動叢集所在的區域。隨需定價提供低費率，但您可以透過購買預留執行個體或 Spot 執行個體來進一步降低成本。Spot 執行個體可以讓您大幅節省成本，在某些情況下價格可低至隨需定價的十分之一。

**注意**  
如果您搭配 EMR 叢集使用 Amazon S3、Amazon Kinesis 或 DynamoDB ，這些服務將產生額外的費用，會與您的 Amazon EMR 用量分開計費。

**注意**  
在私有子網路中設定 Amazon EMR 叢集時，建議您同時[為 Amazon S3 設定 VPC 端點](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html)。如果您的 EMR 叢集位於沒有 Amazon S3 VPC 端點的私有子網路中，則會產生與 S3 流量關聯的額外 NAT 閘道費用，因為 EMR 叢集與 S3 之間的流量不會保留在 VPC 內。

如需更多關於定價選項和詳細資料的更多資訊，請參閱 [Amazon EMR 定價](https://aws.amazon.com/elasticmapreduce/pricing/)。

## AWS 整合
<a name="emr-benefits-integration"></a>

Amazon EMR 與其他 AWS 服務整合，為您的叢集提供與聯網、儲存、安全性等相關的功能。以下清單提供此整合的多個範例：
+ 包含叢集中節點之執行個體的 Amazon EC2
+ Amazon Virtual Private Cloud (Amazon VPC) 可設定您啟動執行個體所在的虛擬網路
+ Amazon S3 會儲存輸入和輸出資料
+ Amazon CloudWatch 會監控叢集效能和設定警示
+ AWS Identity and Access Management (IAM) 以設定許可
+ AWS CloudTrail 稽核對服務提出的請求
+ AWS Data Pipeline 排程和啟動叢集
+ AWS Lake Formation 探索、編目和保護 Amazon S3 資料湖中的資料

## 部署
<a name="emr-benefits-deployment"></a>

EMR 叢集包含 EC2 執行個體，其會執行您提交到叢集的工作。啟動叢集時，Amazon EMR 會使用您選擇的應用程式 (例如 Apache Hadoop 或 Spark) 設定執行個體。選擇執行個體大小和最適合處理叢集需求的類型：批次處理、低延遲查詢、串流資料或大型資料儲存體。關於 Amazon EMR 可用的執行個體類型詳細資訊，請參閱 [設定 Amazon EMR 叢集硬體和聯網](emr-plan-instances.md)。

Amazon EMR 提供多種在叢集上設定軟體的方法。例如，您可以安裝 Amazon EMR 版本，內含可包括多樣化架構 (例如 Hadoop) 和應用程式 (如 Hive、Pig、或 Spark) 的所選應用程式組。也可以安裝多個 MapR 分發。Amazon EMR 會使用 Amazon Linux，因此您也可以使用 yum 套件管理工具或從來源手動在叢集上安裝軟體。如需詳細資訊，請參閱[當您啟動 Amazon EMR 叢集時設定應用程式](emr-plan-software.md)。

## 可擴展性與彈性
<a name="emr-benefits-scalability"></a>

Amazon EMR 可隨著運算需求變更而提供彈性來擴展或縮減叢集。您可以重新調整叢集來為尖峰工作負載新增執行個體並在尖峰工作負載需求趨於平緩時移除執行個體來控制成本。如需詳細資訊，請參閱[手動調整執行中 Amazon EMR 叢集的大小](emr-manage-resize.md)。

 Amazon EMR 也提供執行多個執行個體群組的選項，讓您可以在一個群組中使用隨需執行個體以保證處理能力，並在另一個群組中使用 Spot 執行個體讓作業完成速度更快並降低成本。您也可以結合不同的執行個體類型，以針對不同 Spot 執行個體類型使用更佳的定價。如需詳細資訊，請參閱[您應何時使用 Spot 執行個體？](emr-plan-instances-guidelines.md#emr-plan-spot-instances)。

此外，Amazon EMR 讓您可以靈活地將多個檔案系統用於輸入、輸出和中繼資料。例如，您可以選擇 Hadoop 分散式檔案系統 (HDFS)，其會在主要和核心節點上執行叢集來處理您無需儲存超過叢集生命週期的資料。您可以選擇 EMR 檔案系統 (EMRFS)，使用 Amazon S3 作為在叢集上執行的應用程式的資料層，以便可以分離運算和儲存，並在叢集生命週期之外保留資料。EMRFS 提供額外好處，可讓您單獨擴展或縮減來符合您的運算和儲存需求。您可以透過調整叢集來擴展運算需求，而您可以透過使用 Amazon S3 來擴展儲存需求。如需詳細資訊，請參閱[使用 Amazon EMR 處理儲存和檔案系統](emr-plan-file-systems.md)。

## 可靠性
<a name="emr-benefits-reliability"></a>

Amazon EMR 在叢集中會監控節點，並在故障時自動終止和更換執行個體。

Amazon EMR 提供組態選項，可控制是自動還是手動終止叢集。如果您將叢集設定為自動終止，叢集會在所有步驟完成後即終止。這稱為暫時性叢集。不過，您可以設定叢集，以在處理完成後繼續執行，因此您可以在不再需要該叢集時手動選擇將其終止。或者，您可以建立一個叢集，直接與已安裝的應用程式互動，然後在您不再需要它時手動終止叢集。這些範例中的叢集稱為*長時間執行的叢集*。

此外，您可以設定終止保護，以避免叢集中的執行個體因為處理時的錯誤或問題而終止。終止保護已啟用時，您可以在終止恢復來自執行個體的資料。這些選項的預設設定會因您是使用主控台、CLI 或 API 來啟動叢集而有所不同。如需詳細資訊，請參閱[使用終止保護來保護 Amazon EMR 叢集免於意外關閉](UsingEMR_TerminationProtection.md)。

## 安全
<a name="emr-benefits-security"></a>

Amazon EMR 利用其他 AWS 服務，例如 IAM 和 Amazon VPC，以及 Amazon EC2 金鑰對等功能，協助您保護叢集和資料。

### IAM
<a name="emr-benefits-iam"></a>

Amazon EMR 會與 IAM 整合以管理許可。您可使用附接至使用者或 IAM 群組的 IAM 政策來定義許可。您在政策定義的許可會決定那些使用者或群組成員可以執行的動作和他們可以存取的資源。如需詳細資訊，請參閱[Amazon EMR 如何搭配 IAM 運作](security_iam_service-with-iam.md)。

此外，Amazon EMR 會使用 Amazon EMR 服務本身的 IAM 角色，和執行個體的 EC2 執行個體設定檔。這些角色會授予服務和執行個體代表您存取其他 AWS 服務的許可。這是 Amazon EMR 服務的預設角色和 EC2 執行個體設定檔的預設角色。預設角色使用 AWS 受管政策，這些政策會在您第一次從主控台啟動 EMR 叢集並選擇預設許可時自動為您建立。您也可以透過 AWS CLI來建立預設的 IAM 角色。如果您想要管理許可，而不是 AWS，您可以選擇服務和執行個體描述檔的自訂角色。如需詳細資訊，請參閱[設定服務和資源的 Amazon EMR 許可的 IAM AWS 服務角色](emr-iam-roles.md)。

### Security groups (安全群組)
<a name="emr-benefits-security-groups"></a>

Amazon EMR 使用安全群組來控制對 EC2 執行個體的傳入和傳出流量。啟動叢集時，Amazon EMR 會使用主執行個體的安全群組和由核心/任務執行個體所共用的安全群組。Amazon EMR 設定安全群組規則，以確保在叢集中執行個體之間的通訊。或者，您可以設定其他安全群組，並將它們指派給您的主要和核心/任務執行個體和以進行更進階的規則。如需詳細資訊，請參閱[使用 Amazon EMR 叢集的安全群組控制網路流量](emr-security-groups.md)。

### 加密
<a name="emr-benefits-encryption"></a>

Amazon EMR 支援選用的 Amazon S3 伺服器端和用戶端加密搭配 EMRFS，有助於保護您儲存於 Amazon S3 的資料。使用伺服器端加密時，Amazon S3 會在上傳後加密資料。

使用用戶端加密，加密及解密程序會在您 EMR 叢集上的 EMRFS 用戶端進行。您可以使用 AWS Key Management Service (AWS KMS) 或您自己的金鑰管理系統來管理用戶端加密的根金鑰。

如需詳細資訊，請參閱[使用 EMRFS 屬性指定 Amazon S3 加密](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-emrfs-encryption.html)。

### Amazon VPC
<a name="emr-benefits-vpc"></a>

Amazon EMR 支援在 Amazon VPC 的虛擬私有雲端 (VPC) 中啟動叢集。VPC 是 中的隔離虛擬網路， AWS 可讓您控制網路組態和存取的進階層面。如需詳細資訊，請參閱[在 Amazon EMR 的 VPC 中設定聯網](emr-plan-vpc-subnet.md)。

### AWS CloudTrail
<a name="emr-benefits-cloudtrail"></a>

Amazon EMR 與 CloudTrail 整合，以記錄由 AWS 您的帳戶提出或代表您的帳戶提出之請求的相關資訊。您可以利用此資訊，追蹤哪些使用者正在存取您的叢集，以及進行請求所使用的 IP 地址。如需詳細資訊，請參閱[使用 記錄 AWS EMR API 呼叫 AWS CloudTrail](logging-using-cloudtrail.md)。

### Amazon EC2 金鑰對
<a name="emr-benefits-key-pairs"></a>

您可以監控和與您的叢集互動，方法是在遠端電腦和主節點形成安全的連接。您可以使用 Secure Shell (SSH) 網路通訊協定來進行連接，或使用 Kerberos 進行身分驗證。如果您使用的是 SSH，則需要 Amazon EC2 金鑰對。如需詳細資訊，請參閱[針對 Amazon EMR 的 SSH 登入資料使用 EC2 金鑰對](emr-plan-access-ssh.md)。

## 監控
<a name="emr-benefits-monitoring"></a>

您可以使用 Amazon EMR 管理介面和日誌檔案來對叢集問題 (例如故障或錯誤) 進行疑難排解。Amazon EMR 可在 Amazon S3 中封存日誌檔案，因此您甚至可以在叢集終止後儲存日誌並對問題進行疑難排解。Amazon EMR 還在 Amazon EMR 主控台中提供可選的偵錯工具，以根據步驟、作業和任務瀏覽日誌檔案。如需詳細資訊，請參閱[設定 Amazon EMR 叢集記錄和偵錯](emr-plan-debugging.md)。

Amazon EMR 會與 CloudWatch 互動，以針對叢集和叢集內的作業，追蹤其效能指標。您可以根據各種指標設定警示，例如叢集是否閒置或所用儲存體的百分比。如需詳細資訊，請參閱[使用 CloudWatch 來監控 Amazon EMR 指標](UsingEMR_ViewingMetrics.md)。

## 管理介面
<a name="emr-what-tools"></a>

 您有多種方式可以與 Amazon EMR 互動：
+ **主控台** - 這是一個圖形使用者介面，可用於啟動和管理叢集。有了它，您填寫 Web 表單，以指定要啟動叢集的詳細資訊、檢視現有叢集的詳細資訊、偵錯和終止叢集。使用主控台是 Amazon EMR 入門的最簡單方式；不需任何程式設計知識。此主控台可在線上取得，網址為 [https://console.aws.amazon.com/elasticmapreduce/home](https://console.aws.amazon.com/elasticmapreduce/home)。
+ **AWS Command Line Interface (AWS CLI)** — 您在本機電腦上執行的用戶端應用程式，用於連線至 Amazon EMR 並建立和管理叢集。 AWS CLI 包含一組功能豐富的 Amazon EMR 專用命令。您可以使用它來撰寫指令碼，該指令碼會將啟動和管理叢集的程序自動化。如果您偏好使用命令列，使用 AWS CLI 是最佳選項。如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [Amazon EMR](https://docs.aws.amazon.com/cli/latest/reference/emr/index.html)。
+ **軟體開發套件 (SDK)** - 軟體開發套件提供的函數可呼叫 Amazon EMR 來建立和管理叢集。您可以使用他們來撰寫應用程式，該應用程式會將建立和管理叢集的程序自動化。使用軟體開發套件是擴展或自訂 Amazon EMR 功能的最佳選項。目前在以下軟體開發套件中可使用 Amazon EMR：Go、Java、.NET (C\$1 和 VB.NET)、Node.js、PHP、Python 和 Ruby。如需關於這些軟體開發套件的詳細資訊，請參閱[適用於 AWS的工具](https://aws.amazon.com/tools/)和 [Amazon EMR 範本程式碼與程式庫](https://docs.aws.amazon.com/code-library/latest/ug/emr_code_examples.html)。
+ **Web 服務 API** - 低層級的介面，可用來使用 JSON 直接呼叫 Web 服務。使用 API 是建立呼叫 Amazon EMR 之自訂軟體開發套件的最佳選項。如需詳細資訊，請參閱 [Amazon EMR API 參考](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/Welcome.html)。