

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

# 設定和使用掛載點
<a name="mountpoint-usage"></a>

若要使用適用於 Amazon S3 的掛載點，您的主機需要有效的 AWS 登入資料，才能存取您要掛載的 Amazon S3 儲存貯體或儲存貯體。如需不同的身分驗證方式，請參閱 GitHub 上的 [AWS  憑證](https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md#aws-credentials)。

例如，您可以為此目的建立新的 AWS Identity and Access Management (IAM) 使用者和角色。請確定此角色可存取您要掛載的一或多個儲存貯體。您可以使用執行個體設定檔將 [IAM 角色傳遞](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)至您的 Amazon EC2 執行個體。

**Topics**
+ [使用適用於 Amazon S3 的掛載點](#using-mountpoint)
+ [在掛載點中設定快取](#mountpoint-caching)

## 使用適用於 Amazon S3 的掛載點
<a name="using-mountpoint"></a>

使用適用於 Amazon S3 的掛載點執行下列操作：

1. 掛載您的 Amazon S3 儲存貯體。

   1. 您可以使用 `mount-s3` 命令手動掛載 Amazon S3 儲存貯體。

      在下列範例中，將 `amzn-s3-demo-bucket` 取代為您的 S3 儲存貯體名稱，並將 `~/mnt` 取代為您主機上要掛載 S3 儲存貯體的目錄。

      ```
      mkdir ~/mnt
      mount-s3 amzn-s3-demo-bucket ~/mnt
      ```

      由於掛載點用戶端預設會在背景執行，因此您現在可透過 `~/mnt` 目錄存取 Amazon S3 儲存貯體中的物件。

   1. 或者，自掛載點 v1.18 起，您可以在執行個體啟動或重新啟動時設定 Amazon S3 儲存貯體的自動掛載。

      對於現有或執行中的 Amazon EC2 執行個體，請在 Linux 系統的 `/etc/fstab` 目錄中尋找 `fstab` 檔案。然後，將一行新增至您的 `fstab` 檔案。例如，若要使用字首 `example-prefix/` 將 *amzn-s3-demo-bucket* 掛載到系統路徑 `/mnt/mountpoint`，請參閱以下內容。若要使用下列範例，請以您自己的資訊取代*使用者輸入預留位置*。

      ```
      s3://amzn-s3-demo-bucket/example-prefix/ /mnt/mountpoint mount-s3 _netdev,nosuid,nodev,nofail,rw 0 0
      ```

      如需範例中使用的選項說明，請參閱下表。    
<a name="auto-mount-commands"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/mountpoint-usage.html)

      對於新的 Amazon EC2 執行個體，您可以修改 Amazon EC2 範本上的使用者資料，並設定 `fstab` 檔案，如下所示。若要使用下列範例，請以您自己的資訊取代*使用者輸入預留位置*。

      ```
      #!/bin/bash -e
      MP_RPM=$(mktemp --suffix=.rpm)
      curl https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm > $MP_RPM
      yum install -y $MP_RPM
      rm $MP_RPM
      
      MNT_PATH=/mnt/mountpoint
      echo "s3://amzn-s3-demo-bucket/ ${MNT_PATH} mount-s3 _netdev,nosuid,nodev,rw,allow-other,nofail" >> /etc/fstab
      mkdir $MNT_PATH
      
      systemctl daemon-reload
      mount -a
      ```

1. 透過掛載點存取 Amazon S3 儲存貯體中的物件。

   在本機上掛載儲存貯體後，您可以使用常見的 Linux 命令 (例如 `cat` 或 `ls`) 來使用您的 S3 物件。適用於 Amazon S3 的掛載點會將您 Amazon S3 儲存貯體中的金鑰解譯為檔案系統路徑，方法是使用正斜線 (`/`) 字元分割金鑰。例如，如果您的儲存貯體中有物件金鑰 `Data/2023-01-01.csv`，那麼您的掛載點檔案系統中將會有名為 `Data` 的目錄，且當中會有名為 `2023-01-01.csv` 的檔案。

   適用於 Amazon S3 的掛載點會刻意不對檔案系統實作完整的 [POSIX](https://en.wikipedia.org/wiki/POSIX) 標準規格。掛載點會針對需要透過檔案系統介面對儲存在 Amazon S3 中的資料進行高輸送量讀取和寫入存取權的工作負載最佳化，否則不會依賴檔案系統功能。如需詳細資訊，請參閱 GitHub 上的適用於 Amazon S3 的掛載點[檔案系統行為](https://github.com/awslabs/mountpoint-s3/blob/main/doc/SEMANTICS.md)。需要更豐富的檔案系統語意的客戶應考慮其他 AWS 檔案服務，例如 [Amazon Elastic File System (Amazon EFS) ](https://aws.amazon.com/efs/) 或 [Amazon FSx](https://aws.amazon.com/fsx/)。

   

1. 使用 `umount` 命令卸載 Amazon S3 儲存貯體。此命令會卸載 S3 儲存貯體並結束掛載點。

   若要使用下列範例命令，請將 `~/mnt` 取代為您的 S3 儲存貯體掛載所在主機上的目錄。

   ```
   umount ~/mnt
   ```
**注意**  
若要取得此命令的選項清單，請執行 `umount --help`。

如需其他掛載點組態的詳細資訊，請參閱 GitHub 上的 [Amazon S3 儲存貯體組態](https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md#s3-bucket-configuration)及[檔案系統組態](https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md#file-system-configuration)。

## 在掛載點中設定快取
<a name="mountpoint-caching"></a>

適用於 Amazon S3 的掛載點支援不同類型的資料快取。若要加速重複讀取請求，您可以選擇加入下列各項：
+ **本機快取** – 您可以在 Amazon EC2 執行個體儲存體或 Amazon Elastic Block Store 磁碟區中使用本機快取。如果您從同一個運算執行個體重複讀取相同的資料，而且您的本機執行個體儲存體中有未使用的空間可容納重複讀取的資料集，則應該選擇加入本機快取。
+ **共用快取** – 您可以在 S3 Express One Zone 上使用共用快取。如果您從多個運算執行個體重複讀取小型物件，或者如果您不知道重複讀取的資料集大小並想要利用快取大小的彈性，則應該選擇加入共用快取。選擇加入之後，掛載點會在使用 S3 Express One Zone 的目錄儲存貯體中保留大小最多為 1 MB 的物件。
+ **結合本機快取與共用快取** – 如果您在本機快取中有未使用的空間，但也想要一個跨多個執行個體的共用快取，您可以選擇同時加入本機快取和共用快取。

在掛載點中快取非常適合在多次讀取過程中，重複讀取未變更的相同資料的使用案例。例如，您可以使用快取搭配需要多次讀取訓練資料集的機器學習訓練任務，以提高模型準確度。

如需如何在掛載點中設定快取的詳細資訊，請參閱下列範例。

**Topics**
+ [本機快取](#local-cache-example)
+ [共用快取](#shared-cache-example)
+ [結合本機快取與共用快取](#shared-local-cache-example)

### 本機快取
<a name="local-cache-example"></a>

您可以使用 `--cache CACHE_PATH` 旗標選擇加入本機快取。在下列範例中，請將 *`CACHE_PATH`* 取代為要將資料快取至其中的目錄檔案路徑。將 *`amzn-s3-demo-bucket`* 取代為您的 Amazon S3 儲存貯體名稱，並將 *`~/mnt`* 取代為您主機上要掛載 S3 儲存貯體的目錄。

```
mkdir ~/mnt
mount-s3 --cache CACHE_PATH amzn-s3-demo-bucket ~/mnt
```

如果您在掛載 Amazon S3 儲存貯體時選擇加入本機快取，掛載點會在設定的快取位置建立一個空的子目錄 (如果該子目錄尚未存在)。當您第一次掛載儲存貯體時，以及當您卸載時，掛載點會刪除本機快取的內容。

**重要**  
如果您啟用本機快取，掛載點會將來自您所掛載 Amazon S3 儲存貯體的未加密物件內容保留在掛載時提供的本機快取位置。為了保護您的資料，您應該使用檔案系統存取控制機制來限制對資料快取位置的存取。

### 共用快取
<a name="shared-cache-example"></a>

如果您從多個運算執行個體重複讀取小型物件 (最多 1 MB)，或者您重複讀取的資料集大小通常超過本機快取的大小，則應該在 [S3 Express One Zone](https://aws.amazon.com/s3/storage-classes/express-one-zone/) 中使用共用快取。當您從多個執行個體重複讀取相同的資料時，這可避免對掛載的 Amazon S3 儲存貯體提出多餘的請求，進而改善延遲。

選擇加入共用快取之後，您需要為 S3 Express One Zone 之目錄儲存貯體中快取的資料支付費用。您也需要為針對 S3 Express One Zone 之目錄儲存貯體中資料提出的請求支付費用。如需詳細資訊，請參閱 [Simple Storage Service (Amazon S3) 定價](https://aws.amazon.com/s3/pricing/)。掛載點絕不會從目錄儲存貯體刪除快取的物件。為了管理儲存成本，您應該[在目錄儲存貯體上設定生命週期政策](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-lifecycle.html)，以便 Amazon S3 在您指定的一段時間之後，使 S3 Express One Zone 中快取的資料過期。如需詳細資訊，請參閱 GitHub 上的[適用於 Amazon S3 的掛載點快取組態](https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md#caching-configuration)。

若要在將 Amazon S3 儲存貯體掛載至運算執行個體時選擇加入 S3 Express One Zone 中的快取，請使用 `--cache-xz` 旗標，並指定目錄儲存貯體做為快取位置。在下列範例中，取代*使用者輸入預留位置*。

```
mount-s3 amzn-s3-demo-bucket ~/mnt --cache-xz amzn-s3-demo-bucket--usw2-az1--x-s3
```

### 結合本機快取與共用快取
<a name="shared-local-cache-example"></a>

如果您在執行個體上有未使用的空間，但也想要使用跨多個執行個體的共用快取，您可以選擇同時加入本機快取和共用快取。使用此快取組態，當您在本機儲存體中快取所需的資料時，您可以避免從相同的執行個體對目錄儲存貯體中的共用快取提出多餘的讀取請求。這可以降低成本並提高效能。

 若要在掛載 Amazon S3 儲存貯體時選擇同時加入本機快取和共用快取，您可以使用 `--cache` 和 `--cache-xz` 旗標同時指定這兩個快取位置。若要使用下列範例來選擇同時加入本機快取和共用快取，請取代*使用者輸入預留位置*。

```
mount -s3 amzn-s3-demo-bucket ~/mnt --cache /path/to/mountpoint/cache --cache -xz amzn-s3-demo-bucket--usw2-az1--x-s3
```

如需詳細資訊，請參閱 GitHub 上的[適用於 Amazon S3 的掛載點快取組態](https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md#caching-configuration)。

**重要**  
如果您啟用共用快取，掛載點會將物件內容從您掛載的 Amazon S3 儲存貯體複製到您提供做為共用快取位置的 S3 目錄儲存貯體，以供任何具有 S3 目錄儲存貯體存取權的呼叫者進行存取。為了保護您的快取資料，您應該遵循[Amazon S3 的安全最佳實務](security-best-practices.md)，以確保您的儲存貯體使用正確的政策且無法公開存取。您應該使用專用於掛載點共用快取的目錄儲存貯體，並僅將存取權授予掛載點用戶端。