教學課程:從不同的裝載檔案系統 VPC - Amazon Elastic File System

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

教學課程:從不同的裝載檔案系統 VPC

在本教學課程中,您將設定EC2執行個體掛接位於不同虛擬私有雲 (VPC) 中的EFS檔案系統。您可以使用EFS安裝幫助程序執行此操作。掛載協助程式是 amazon-efs-utils 工具組的一部分。如需 amazon-efs-utils 的相關資訊,請參閱 安裝 Amazon EFS 工具

用戶端VPC和您的EFS檔案系統VPC必須使用VPC對等連線或VPC傳輸閘道來連線。當您使用VPC對等連線或傳輸閘道進行連線時VPCs,其中的EC2執行個體VPC可以存取另一個中的EFS檔案系統VPC,即使VPCs屬於不同帳戶也是如此。

注意

不支援將 Amazon EFS 與基於 Microsoft 視窗的用戶端搭配使用。

必要條件

若要完成此自學課程,您必須具備下列項目:

  • 在使用此程序之前,會先在EC2執行個體上安裝工具amazon-efs-utils集。如需安裝 amazon-efs-utils 的指示,請參閱安裝 Amazon EFS 工具

  • 下列其中一項:

    • EFS檔案系統所VPC在位置與EC2執行處理所在位VPC置之間的VPC對等連線。VPC對等連線是兩VPCs者之間的網路連線。這種類型的連線可讓您使用私人網際網路通訊協定第 4 版 (IPv4) 或網際網路通訊協定第 6 版 (IPv6) 位址,在它們之間路由流量。您可以使用VPC對等連接VPCs在相同 AWS 區域 或之間 AWS 區域進行連接。如需詳細資訊,請參閱 Amazon 對VPC等互連指南中的建立和接受VPC對等連線。

    • 連接EFS檔案系統所VPC在位置和EC2執行個體所在位VPC置的傳輸閘道。傳輸閘道是一個網路傳輸中樞,可用來互連VPCs與內部部署網路。如需詳細資訊,請參閱 Amazon 交通閘道指南中的VPC傳輸閘道入門

步驟 1:判斷掛載目標之可用區域的識別碼

為了確保檔案系統的高可用性,建議您一律使用與用NFS戶端位於相同可用區域中的EC2掛載目標 IP 位址。如果您正在掛載另一個帳戶中的EFS檔案系統,請確定用戶NFS端和EFS掛載目標位於相同的可用區域識別碼中。此要求適用的原因是,可用區域名稱在各個帳戶間可能會有不同。

判斷EC2執行個體的可用區域 ID
  1. 連線到您的 EC2 執行個體。如需詳細資訊,請參閱 Amazon EC2 使用者指南的 Connect 到您的EC2執行個體

  2. 使用下列describe-availability-zonesCLI命令判斷EC2執行個體所在的可用區域 ID。

    [ec2-user@ip-10.0.0.1] $ aws ec2 describe-availability-zones --zone-name { "AvailabilityZones": [ { "State": "available", "ZoneName": "us-east-2b", "Messages": [], "ZoneId": "use2-az2", "RegionName": "us-east-2" } ] }

    可用區域 ID 會在 ZoneId 屬性 use2-az2 中傳回。

步驟 2:決定掛載目標 IP 位址

現在您已知道EC2執行個體的可用區域 ID,現在可以擷取位於相同可用區域 ID 中之掛載目標的 IP 位址。

判斷同一個可用區域ID 中的掛載目標 IP 地址
  • 使用describe-mount-targetsCLI指令擷取 use2-az2 AZ ID 中檔案系統的掛載目標 IP 位址,如下所示。

    $ aws efs describe-mount-targets --file-system-id file_system_id { "MountTargets": [ { "OwnerId": "111122223333", "MountTargetId": "fsmt-11223344", =====> "AvailabilityZoneId": "use2-az2", "NetworkInterfaceId": "eni-048c09a306023eeec", "AvailabilityZoneName": "us-east-2b", "FileSystemId": "fs-01234567", "LifeCycleState": "available", "SubnetId": "subnet-06eb0da37ee82a64f", "OwnerId": "958322738406", =====> "IpAddress": "10.0.2.153" }, ... { "OwnerId": "111122223333", "MountTargetId": "fsmt-667788aa", "AvailabilityZoneId": "use2-az3", "NetworkInterfaceId": "eni-0edb579d21ed39261", "AvailabilityZoneName": "us-east-2c", "FileSystemId": "fs-01234567", "LifeCycleState": "available", "SubnetId": "subnet-0ee85556822c441af", "OwnerId": "958322738406", "IpAddress": "10.0.3.107" } ] }

    use2-az2可用區域ID 中的掛載目標 IP 地址為 10.0.2.153。

步驟 3:新增掛載目標的主機項目

您現在可以在EC2執行個體上的/etc/hosts檔案中建立項目,將掛載目標 IP 位址對應至EFS檔案系統的主機名稱。

新增掛載目標的主機項目
  1. 將掛載目標 IP 位址的行新增至EC2執行個體的/etc/hosts檔案。該項目使用的格式為 mount-target-IP-Address file-system-ID.efs.region.amazonaws.com。您可以利用下列命令來將該行新增至檔案。

    echo "10.0.2.153 fs-01234567.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
  2. 請確定EC2執行個體和掛載目標的VPC安全性群組具有允許存取EFS檔案系統 (視需要) 的規則。如需詳細資訊,請參閱 針對 Amazon EC2 執行個體使用VPC安全群組和掛接目標

步驟 4:使用掛載輔助程EFS式掛載檔案系統

若要掛載EFS檔案系統,請先在EC2執行個體上建立掛載目錄。然後,使用 EFS mount Helper,您可以使用 AWS Identity and Access Management (IAM) 授權或EFS存取點來掛載檔案系統。如需詳細資訊,請參閱 用IAM來控制檔案系統資料存取使用 Amazon EFS 存取點

建立掛載目錄
  • 您可以使用下列命令來建立掛載檔案系統的目錄。

    $ sudo mkdir /mnt/efs/
使用IAM授權掛載檔案系統
  • 使用下面的命令來安裝使用IAM授權的文件系統。

    $ sudo mount -t efs -o tls,iam file-system-id /mnt/efs/
使用EFS存取點掛載檔案系統
  • 使用下列指令來使用EFS存取點掛載檔案系統。

    $ sudo mount -t efs -o tls,accesspoint=access-point-id file-system-id /mnt/efs/

現在您已經掛載了EFS檔案系統,您可以使用下列程序對其進行測試。

測試EFS檔案系統連線
  1. 使用下列命令,將目錄變更為您建立的新目錄。

    $ cd ~/mnt/efs
  2. 建立子目錄,並將該子目錄的擁有權變更為EC2執行個體使用者。接著,使用下列命令導覽至新目錄。

    $ sudo mkdir getting-started $ sudo chown ec2-user getting-started $ cd getting-started
  3. 透過下列命令建立文字檔。

    $ touch test-file.txt
  4. 透過以下命令列出目錄內容。

    $ ls -al

因此,會建立以下檔案。

-rw-rw-r-- 1 username username 0 Nov 15 15:32 test-file.txt

您也可以透過將項目新增至 /etc/fstab 檔案以自動掛載檔案系統。如需詳細資訊,請參閱 在現有 EC2 Linux 執行個體上啟用自動掛載

警告

使用 _netdev 選項,此選項用於在自動掛載檔案系統時識別網路檔案系統。如果_netdev遺失,您的EC2執行個體可能會停止回應。此結果是因為網路檔案系統在運算執行個體開始聯網後需要初始化。如需詳細資訊,請參閱 自動掛載失敗且執行個體沒有回應

步驟 5:清理資源並保護您的 AWS 帳戶

完成此教學課程之後,請執行下列步驟來清理您的資源並保護您 AWS 帳戶的.

清理資源並保護您的 AWS 帳戶
  1. 使用下列指令卸載EFS檔案系統。

    $ sudo umount ~/efs
  2. 在中開啟 Amazon Elastic File System 主控台https://console.aws.amazon.com/efs/

  3. 從EFS檔案系統清單中選擇要刪除的檔案系統。

  4. 針對 Actions (動作),選擇 Delete file system (刪除檔案系統)

  5. 在 [永久刪除檔案系統] 對話方塊中,輸入您要刪除之EFS檔案系統的檔案系統 ID,然後選擇 [刪除檔案系統]。

  6. 在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

  7. 在導覽窗格中,選擇安全群組

  8. 選取您在此教學課程中新增規則的安全性群組名稱。

    警告

    請勿刪除您的預設安全性群組VPC。

  9. Actions (動作) 中,選擇 Edit inbound rules (編輯傳入規則)

  10. 選擇在您新增之傳入規則結尾的 X 並選擇 Save (儲存)