

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

# EMR Notebooks 的需求、發行版本的差異和安全性
<a name="emr-managed-notebooks-considerations"></a>

**注意**  
EMR Notebooks 可在 主控台中做為 EMR Studio Workspaces 使用。主控台中的**建立工作區**按鈕可讓您建立新的筆記本。若要存取或建立工作區，EMR Notebooks 使用者需要其他 IAM 角色許可。如需詳細資訊，請參閱 [主控台中的 Amazon EMR Notebooks 是 Amazon EMR Studio Workspaces](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-migration.html) 和 [Amazon EMR 主控台](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html)。

當您使用 EMR 筆記本建立叢集和開發解決方案時，請考慮以下要求、發行版本的差異、安全資訊和其他考量事項。

## 叢集要求
<a name="considerations-limitations"></a>
+ **啟用 Amazon EMR 封鎖公開存取** – 對叢集的傳入存取權可讓叢集使用者執行筆記本核心。請確定只有授權的使用者可以存取叢集。強烈建議您將封鎖公開存取保持啟用狀態，並將傳入 SSH 流量限制為只有受信任的來源。如需詳細資訊，請參閱[使用 Amazon EMR 封鎖公開存取](emr-block-public-access.md)及[使用 Amazon EMR 叢集的安全群組控制網路流量](emr-security-groups.md)。
+ **使用相容叢集** – 附接至筆記本的叢集必須符合下列要求：
  + 僅支援使用 Amazon EMR 建立的叢集。您可以在 Amazon EMR 內獨立建立叢集，然後附接 EMR 筆記本，也可以在建立 EMR 筆記本時建立相容叢集。
  + 僅支援使用 Amazon EMR 發行版本 5.18.0 及更新版本建立的叢集。請參閱 [依叢集發行版本分類的功能差異](#considerations-cluster-version)。
  + 不支援搭配使用 Amazon EC2 執行個體與 AMD EPYC 處理器所建立的叢集 (例如 m5a.\$1 和 r5a.\$1 執行個體類型)。
  + EMR Notebooks 僅適用於將 `VisibleToAllUsers` 設為 `true` 時建立的叢集。`VisibleToAllUsers` 預設為 `true`。
  + 叢集必須在 EC2-VPC 中啟動。可支援公有和私有子網路。未支援 EC2-Classic 平台。
  + 叢集啟動時必須已安裝 Hadoop、Spark 和 Livy。可以安裝其他應用程式，但 EMR Notebooks 目前只支援 Spark 叢集。
**重要**  
對於 Amazon EMR 版本 5.32.0 及更新版本，或 6.2.0 及更新版本，您的叢集也必須執行 Jupyter Enterprise Gateway 應用程式，才能與 EMR Notebooks 搭配使用。
  + 不支援使用 Kerberos 身分驗證的叢集。
  + 與 整合的叢集僅 AWS Lake Formation 支援安裝筆記本範圍的程式庫。不支援在叢集上安裝核心和程式庫。
  + 不支援具有多個主節點的叢集。
  + 不支援使用以 Graviton2 為基礎的 Amazon EC2 執行個體的叢集。 AWS Graviton2 

## 依叢集發行版本分類的功能差異
<a name="considerations-cluster-version"></a>

強烈建議您將 EMR Notebooks 與使用 Amazon EMR 發行版本 5.30.0、5.32.0 或更新版本或 6.2.0 或更新版本建立的叢集搭配使用。透過這些版本，EMR Notebooks 會在附接的 Amazon EMR 叢集上執行核心。核心和程式庫可以直接安裝在叢集主節點上。搭配使用 EMR Notebooks 與這些叢集版本有下列好處：
+ **提升效能 ** – 筆記本核心會在您選擇的 EC2 執行個體類型的叢集上執行。舊版會在無法調整大小、存取或自訂的特殊執行個體上執行核心。
+ **新增和自訂核心的能力** – 可以使用 `conda` 和 `pip` 連線到叢集來安裝核心套件。此外，在筆記本儲存格內使用終端機命令支援 `pip` 安裝。在早期版本中，只有預先安裝的核心可用 (Python、PySpark、Spark 和 SparkR)。如需詳細資訊，請參閱[在叢集主節點上安裝核心和 Python 程式庫](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel)。
+ **安裝 Python 程式庫的能力** – 可以使用 `conda` 和 `pip`，[在叢集主節點上安裝 Python 程式庫](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel)。我們建議您使用 `conda`。對於早期版本，只支援 PySpark 的 [筆記本範圍庫](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-custom-libraries-limitations)。


**依叢集發行版本支援的 EMR Notebooks 功能**  

| 叢集發行版本 | 針對 PySpark 的筆記本範圍庫 | 叢集上的核心安裝 | 在主節點上安裝 Python 程式庫 | 
| --- | --- | --- | --- | 
|  早於 5.18.0  |  不支援 EMR Notebooks  | 
|  5.18.0–5.25.0  |  否  |  否  |  否  | 
|  5.26.0–5.29.0  |  [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-custom-libraries-limitations)  |  否  |  否  | 
|  5.30.0  |  [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-custom-libraries-limitations)  |  [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel)  |  [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel)  | 
|  6.0.0  |  否  |  否  |  否  | 
| 5.32.0 及更新版本，以及 6.2.0 及更新版本 | [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-custom-libraries-limitations) | [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel) | [是](emr-managed-notebooks-installing-libraries-and-kernels.md#emr-managed-notebooks-cluster-kernel) | 

## 同時附接 EMR Notebooks 的限制
<a name="emr-managed-notebooks-cluster-limits"></a>

在建立支援筆記本的叢集時，請考慮叢集主節點的 EC2 執行個體類型。這個 EC2 執行個體的記憶體限制，會決定筆記本的數量 (這些是已經準備就緒的筆記本，可在叢集上同時執行程式碼和查詢)。


| 主節點 EC2 執行個體類型 | EMR Notebooks 的數量 | 
| --- | --- | 
|  \$1.medium  |  2  | 
|  \$1.large  |  4  | 
|  \$1.xlarge  |  8  | 
|  \$1.2xlarge  |  16  | 
|  \$1.4xlarge  |  24  | 
|  \$1.8xlarge  |  24  | 
|  \$1.16xlarge  |  24  | 

## Jupyter 筆記本和 Python 版本
<a name="considerations-versions"></a>

EMR Notebooks 會執行 [Jupyter 筆記本版本 6.0.2](https://jupyter-notebook.readthedocs.io/en/stable/changelog.html#release-6-0-2) 和 Python 3.6.5，無論附接叢集的 Amazon EMR 發行版本為何。

## 安全相關考量
<a name="considerations-notebooks-security"></a>

**使用加密的 S3 位置**  
如果您在 Amazon S3 中指定加密位置來儲存筆記本檔案，則必須將 [EMR Notebooks 的服務角色](emr-managed-notebooks-service-role.md) 設定為金鑰使用者。預設服務角色為 `EMR_Notebooks_DefaultRole`。如果您使用 AWS KMS 金鑰進行加密，請參閱《 AWS Key Management Service 開發人員指南》中的在 [AWS KMS 中使用金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-users-crypto)，以及[新增金鑰使用者的支援文章](https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-access-default-encryption/)。

**將 Cookie 與託管網域搭配使用**  
為了增強可能與 Amazon EMR 搭配使用的主控台外應用程式的安全性，應用程式託管網域會在公用尾碼清單 (PSL) 中註冊。這些託管網域的範例包括：`emrstudio-prod.us-east-1.amazonaws.com`、`emrnotebooks-prod.us-east-1.amazonaws.com`、`emrappui-prod.us-east-1.amazonaws.com`。為了加強安全性，如果您需要在預設網域名稱中設定敏感性 Cookie，我們建議您使用具 `__Host-` 前置詞的 Cookie。這將有助於保護您的網域免受跨站請求偽造 (CSRF) 攻擊。如需詳細資訊，請參閱《Mozilla 開發人員網路》**中的 [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) 頁面。