了解如何為 Amazon ECS 設定 FSx for Windows File Server 檔案系統 - Amazon Elastic Container Service

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

了解如何為 Amazon ECS 設定 FSx for Windows File Server 檔案系統

了解如何啟動 Amazon ECS 最佳化 Windows 執行個體,該執行個體託管 FSx for Windows File Server 檔案系統和可存取檔案系統的容器。若要這麼做,請先建立 AWS Directory Service AWS Managed Microsoft Active Directory。然後,您可以使用 Amazon EC2 執行個體和任務定義建立 FSx for Windows File Server 檔案伺服器檔案系統和叢集。您可以設定容器的任務定義,以使用 FSx for Windows File Server 檔案系統。最後,您將測試檔案系統。

每次啟動或刪除 Active Directory 或 FSx for Windows File Server 檔案系統時,需要 20 至 45 分鐘。請準備保留至少 90 分鐘以完成教學課程,或在幾個工作階段中完成教學課程。

教學課程的先決條件

  • 管理使用者。請參閱 設定以使用 Amazon ECS。

  • (選用) 用於透過 RDP 存取連線至 EC2 Windows 執行個體的 PEM 金鑰對。如需有關如何建立金鑰對的資訊,請參閱《Amazon EC2 使用者指南》中的 Amazon EC2 金鑰對和 Amazon EC2 Amazon EC2執行個體Amazon EC2

  • 具有至少一個公有、一個私有子網路和一個安全群組的 VPC。您可以使用預設 VPC。您不需要 NAT 閘道或裝置。 AWS Directory Service 不支援與 Active Directory 搭配的網路位址轉譯 (NAT)。為了可以運作,Active Directory、FSx for Windows File Server 檔案系統、ECS 叢集和 EC2 執行個體必須位於 VPC 內。如需 VPCs和作用中目錄的詳細資訊,請參閱建立 VPC建立 AWS Managed Microsoft AD 的先決條件

  • IAM ecsInstanceRole 和 ecsTaskExecutionRole 許可與您的帳戶建立關聯。這些服務連結的角色可讓服務代表您進行 API 呼叫,並存取容器、機密、目錄和檔案伺服器。

步驟 1:建立 IAM 存取角色

使用 AWS Management Console建立叢集。
  1. 請參閱 Amazon ECS 容器執行個體 IAM 角色 來檢查您是否擁有 ecsInstanceRole,並查看如何在沒有的情況下建立一個。

  2. 建議您針對實際生產環境中的最低許可自訂角色政策。為了完成本教學課程,請確認下列 AWS 受管政策已連接至您的 ecsInstanceRole。連接政策 (如果尚未連接)。

    • AmazonEC2ContainerServiceforEC2Role

    • AmazonSSMManagedInstanceCore

    • AmazonSSMDirectoryServiceAccess

    連接 AWS 受管政策。

    1. 開啟 IAM 主控台

    2. 在導覽窗格中,選擇 Roles (角色)。

    3. 選擇 AWS 受管角色

    4. 選擇 Permissions, Attach policies. (許可、連接政策。)。

    5. 若要縮小可連接的政策,請使用 Filter (篩選)。

    6. 選取適用的政策,然後選擇 Attach Policy (連接政策)。

  3. 請參閱 Amazon ECS 任務執行 IAM 角色 來檢查您是否擁有 ecsTaskExecutionRole,並查看如何在沒有的情況下建立一個。

    建議您針對實際生產環境中的最低許可自訂角色政策。為了完成本教學課程,請確認下列 AWS 受管政策已連接至您的 ecsTaskExecutionRole。連接政策 (如果尚未連接)。使用上一節中提供的程序來連接 AWS 受管政策。

    • SecretsManagerReadWrite

    • AmazonFSxReadOnlyAccess

    • AmazonSSMReadOnlyAccess

    • AmazonECSTaskExecutionRolePolicy

步驟 2:建立 Windows Active Directory (AD)

  1. 請遵循 Directory Service 管理指南建立 AWS Managed Microsoft AD AWS 中所述的步驟。使用您在本教學課程中指定的 VPC。在建立 AWS Managed Microsoft AD 的步驟 3 中,儲存使用者名稱和管理員密碼,以供後續步驟使用。此外,記下未來步驟的完整目錄 DNS 名稱。您可以在建立 Active Directory 時完成下列步驟。

  2. 建立要在下列步驟中使用的 AWS Secrets Manager 秘密。如需詳細資訊,請參閱《Secrets Manager 使用者指南》中的 Secrets Manager 入門。 AWS

    1. 開啟 Secrets Manager 主控台

    2. 按一下 Store a new secret (存放新機密)。

    3. 選取 Other type of secrets (其他機密類型)。

    4. 對於 Secret key/value (機密鍵/值),在第一個資料列中建立具有值 admin 的索引鍵 username。按一下 + Add row (+ 新增列)。

    5. 在新資料列中,建立索引鍵 password。針對值,輸入您在建立 AWS 受管 AD 目錄的步驟 3 中輸入的密碼。

    6. 按一下 Next (下一步) 按鈕。

    7. 提供機密名稱和描述。按一下 Next (下一步)

    8. 按一下 Next (下一步)。按一下 Store (存放)。

    9. Secrets (機密) 頁面清單上,按一下您剛才建立的機密。

    10. 儲存新機密的 ARN,以便在後續步驟中使用。

    11. 您可以繼續進行下一個步驟,同時建立 Active Directory。

步驟 3:驗證並更新安全群組

在此步驟中,您會驗證並更新您正在使用的安全群組的規則。為此,您可以使用為 VPC 建立的預設安全群組。

驗證並更新安全群組。

您需要建立或編輯安全群組,以便連接埠可以接收和傳送資料,請參閱 FSx for Windows File Server 使用者指南中的 Amazon VPC 安全群組。您可以藉由建立安全群組傳入規則完成此操作,規則顯示在以下傳入規則資料表的第一列。此規則允許來自網路界面 (及其關聯執行個體) 的傳入流量,而這些網路界面會指派給安全群組。您建立的所有雲端資源都位於同一 VPC 內,並連接至相同的安全群組。因此,此規則允許所需的流量往來於 FSx for Windows File Server 檔案系統、Active Directory 和 ECS 執行個體。其他傳入規則允許流量提供網站和 RDP 存取服務,以便連線至您的 ECS 執行個體。

下表顯示本教學課程所需的安全群組傳入規則。

Type 通訊協定 連接埠範圍 來源

所有流量

全部

全部

sg-securitygroup

HTTPS

TCP

443

0.0.0.0/0

RDP

TCP

3389

您的筆記型電腦 IP 地址

下表顯示本教學課程所需的安全群組傳出規則。

Type 通訊協定 連接埠範圍 目的地

所有流量

全部

全部

0.0.0.0/0

  1. 開啟 EC2 主控台並從左側選單選取 Security Groups (安全群組)。

  2. 從現在顯示的安全群組清單中,選取您要用於本教學課程的安全群組左側的核取方塊。

    隨即顯示您的安全群組詳細資訊。

  3. 編輯傳入和傳出規則,方法是選取 Inbound rules (傳入規則) 或 Outbound rules (傳出規則) 索引標籤,然後選擇 Edit inbound rules (編輯傳入規則) 或 Edit outbound rules (編輯傳出規則) 按鈕。編輯規則以與上表中顯示的規則相符。在本教學稍後建立 EC2 執行個體之後,請使用 EC2 執行個體的公有 IP 地址編輯傳入規則 RDP 來源,如 Amazon EC2 使用者指南中的使用 RDP 連線至 Windows 執行個體中所述。

步驟 4:建立 FSx for Windows File Server 檔案系統

在您的安全群組經過驗證和更新,且您的 Active Directory 已建立並處於作用中狀態之後,請在與您的 Active Directory 相同的 VPC 中建立 FSx for Windows File Server 檔案系統。請依照下列步驟,建立 FSx for Windows File Server 檔案系統,以供您的 Windows 任務使用。

建立第一個檔案系統。
  1. 開啟 Amazon FSx 主控台

  2. 在儀表板上,選擇 Create file system (建立檔案系統) 以啟動檔案系統建立精靈。

  3. Select file system type (選取檔案系統類型) 頁面中,選擇 FSx for Windows File Server,然後選擇 Next (下一步)。Create file system (建立檔案系統) 頁面隨即顯示。

  4. File system details (檔案系統詳細資訊) 區段中,輸入檔案系統的名稱。命名檔案系統可讓您更輕鬆地尋找和管理檔案系統。您最多可使用 256 個 Unicode 字元。允許的字元如下:英文字母、數字、空格和特殊字元加號 (+)、減號 (-)、等號 (=)、句點 (.)、下劃線 (_)、冒號 (:) 和斜線 (/)。

  5. 對於 Deployment type (部署類型),請選擇 Single-AZ (單一可用區),部署在單一可用區域中部署的檔案系統。單一可用區 2 是最新一代的單一可用區域檔案系統,支援 SSD 和 HDD 儲存。

  6. 對於 Storage type (儲存類型),請選擇 EBS

  7. 對於 Storage capacity (儲存容量),請輸入最小儲存容量。

  8. 保留 Throughput capacity (輸送容量) 的預設設定。

  9. 網路與安全區段中,選擇您為 AWS Directory Service 目錄選擇的相同 Amazon VPC。

  10. 對於 VPC Security Groups (VPC 安全群組) 下,選擇您在步驟 3:驗證並更新您的安全群組中驗證的安全群組。

  11. 對於 Windows authentication (Windows 身分驗證),選擇 AWS 受管 Microsoft Active Directory,然後從清單中選擇您的 AWS Directory Service 目錄。

  12. 對於 Encryption (加密),請保留 aws/fsx (default) (aws/fsx (預設)) 的預設 Encryption key (加密金鑰) 設定。

  13. 請保留 Maintenance preferences (維護偏好設定) 的預設設定。

  14. 按一下 Next (下一步) 按鈕。

  15. 檢閱顯示在 Create file system (建立檔案系統) 頁面上的檔案系統組態。請注意建立檔案系統後,您可以修改哪些檔案系統設定,以供參考。選擇 Create file system (建立檔案系統)

  16. 請注意檔案系統 ID。您會在稍後的步驟中需要使用。

    您可以在建立 FSx for Windows File Server 檔案系統時,繼續建立叢集和 EC2 執行個體的後續步驟。

步驟 5:建立 Amazon ECS 叢集。

使用 Amazon ECS 主控台建立叢集
  1. 開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2

  2. 從導覽列中選取要使用的「區域」。

  3. 在導覽窗格中,選擇叢集

  4. Clusters (叢集) 頁面上,選擇 Create cluster (建立叢集)。

  5. 叢集組態下的叢集名稱中,輸入 windows-fsx-cluster

  6. 展開基礎設施、clear AWS Fargate (serverless),然後選取 Amazon EC2 執行個體

    1. 若要建立 Auto Scaling 群組,請從 Auto Scaling group (ASG) (Auto Scaling 群組 (ASG)) 中選取 Create new group (建立新群組),然後提供有關該群組的下列詳細資訊:

      • 作業系統/架構中,選擇 Windows Server 2019 Core

      • 對於 EC2 執行個體類型,選擇 t2.medium 或 t2.micro。

  7. 選擇 Create (建立)。

步驟 6:建立 Amazon ECS 最佳化的 Amazon EC2 執行個體

建立 Amazon ECS Windows 容器執行個體。

建立 Amazon ECS 執行個體
  1. 使用 aws ssm get-parameters 命令擷取託管 VPC 的區域 AMI 名稱。如需詳細資訊,請參閱擷取 Amazon ECS 最佳化 AMI 中繼資料

  2. 使用 Amazon EC2 主控台來啟動執行個體。

    1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

    2. 從導覽列中選取要使用的「區域」。

    3. EC2 儀表板中,選擇 Launch instance (啟動執行個體)。

    4. Name (名稱) 輸入唯一的名稱。

    5. 針對應用程式和作業系統映像 (Amazon Machine Image),在搜尋欄位中,輸入您擷取到的 AMI 名稱。

    6. 對於執行個體類型,選擇 t2.medium 或 t2.micro。

    7. Key pair (login) (金鑰對 (登入)) 欄位中,選擇一個金鑰對。如果您未指定金鑰對,則

    8. 網路設定下,針對 VPC子網路,選擇您的 VPC 和公有子網路。

    9. Network settings (網路設定) 下的 Security group (安全群組) 欄位中,選擇一個現有的安全群組,或建立一個新的安全群組。確定您選擇的安全群組具有在 教學課程的先決條件 中定義的輸入和輸出規則

    10. Network settings (網路設定) 下的 Auto-assign Public IP (自動指派公有 IP) 欄位中,選取 Enable (啟用)。

    11. 展開進階詳細資訊,然後針對網域加入目錄,選取您建立的 Active Directory 的 ID。啟動 EC2 執行個體時,此選項網域會加入您的 AD。

    12. Advanced details (進階詳細資料) 下的 IAM instance profile (IAM 執行個體設定檔) 欄位中,選擇 ecsInstanceRole

    13. 利用下列使用者資料設定您的 Amazon ECS 容器執行個體。在 Advanced details (進階詳細資料) 下的 User data (使用者資料) 欄位中,貼入下列指令碼,以您的叢集名稱取代 cluster_name

      <powershell> Initialize-ECSAgent -Cluster windows-fsx-cluster -EnableTaskIAMRole </powershell>
    14. 準備就緒後,請選取 acknowledgment (確認) 欄位,再選擇 Launch Instances (啟動執行個體)。

    15. 會有確認頁面讓您知道您的執行個體正在啟動。選擇 View Instances (檢視執行個體) 關閉確認頁面並返回主控台。

  3. 開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2

  4. 在導覽窗格中選擇叢集,然後選擇 windows-fsx-cluster

  5. 選擇基礎設施索引標籤,並確認您的執行個體已在 windows-fsx-cluster 叢集註冊。

步驟 7:註冊 Windows 任務定義

您必須先註冊任務定義,才能在您的 Amazon ECS 叢集中執行 Windows 容器。以下任務定義範例會顯示簡單的網頁。任務會啟動兩個可存取 FSx 檔案系統的容器。第一個容器會將 HTML 檔案寫入檔案系統。第二個容器從檔案系統下載 HTML 檔案並為網頁提供服務。

  1. 開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2

  2. 在導覽窗格中,選擇 Task Definitions (任務定義)。

  3. 選擇 Create new task definitio (建立新任務定義)、Create new task definition with JSON (使用 JSON 建立新的任務定義)。

  4. 在 JSON 編輯器方塊中,取代任務執行角色的值和有關 FSx 檔案系統的詳細資訊,然後選擇儲存

    { "containerDefinitions": [ { "entryPoint": [ "powershell", "-Command" ], "portMappings": [], "command": ["New-Item -Path C:\\fsx-windows-dir\\index.html -ItemType file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>It Works!</h2> <p>You are using Amazon FSx for Windows File Server file system for persistent container storage.</p>' -Force"], "cpu": 512, "memory": 256, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "essential": false, "name": "container1", "mountPoints": [ { "sourceVolume": "fsx-windows-dir", "containerPath": "C:\\fsx-windows-dir", "readOnly": false } ] }, { "entryPoint": [ "powershell", "-Command" ], "portMappings": [ { "hostPort": 443, "protocol": "tcp", "containerPort": 80 } ], "command": ["Remove-Item -Recurse C:\\inetpub\\wwwroot\\* -Force; Start-Sleep -Seconds 120; Move-Item -Path C:\\fsx-windows-dir\\index.html -Destination C:\\inetpub\\wwwroot\\index.html -Force; C:\\ServiceMonitor.exe w3svc"], "mountPoints": [ { "sourceVolume": "fsx-windows-dir", "containerPath": "C:\\fsx-windows-dir", "readOnly": false } ], "cpu": 512, "memory": 256, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "essential": true, "name": "container2" } ], "family": "fsx-windows", "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole", "volumes": [ { "name": "fsx-windows-dir", "fsxWindowsFileServerVolumeConfiguration": { "fileSystemId": "fs-0eeb5730b2EXAMPLE", "authorizationConfig": { "domain": "example.com", "credentialsParameter": "arn:arn-1234" }, "rootDirectory": "share" } } ] }

步驟 8:執行任務並檢視結果

在執行任務之前,請確認 FSx for Windows File Server 檔案系統的狀態為 Available (可用)。可用之後,您可以使用您建立的任務定義來執行任務。透過使用檔案系統建立相互之間隨機顯示 HTML 檔案的容器,以啟動任務。隨機顯示後,Web 伺服器提供簡單的 HTML 頁面。

注意

您可能無法從 VPN 內連線至網站。

使用 Amazon ECS 主控台執行任務並檢視結果。
  1. 開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2

  2. 在導覽窗格中選擇叢集,然後選擇 windows-fsx-cluster

  3. 選擇任務索引標籤,然後選擇執行新任務

  4. 針對 Launch Type (啟動類型),選擇 EC2

  5. 在部署組態下,針對任務定義選擇 fsx-windows,然後選擇建立

  6. 當您的任務狀態為執行中時,請選擇任務 ID。

  7. 容器下,當容器 1 狀態為已停止時,選取容器 2 以檢視容器的詳細資訊。

  8. container2 的容器詳細資訊下,選取網路繫結,然後按一下與容器關聯的外部 IP 地址。您的瀏覽器將會開啟並顯示以下訊息。

    Amazon ECS Sample App
    It Works! 
    You are using Amazon FSx for Windows File Server file system for persistent container storage.
    注意

    可能需要幾分鐘的時間才會顯示訊息。如果幾分鐘後您未看到此訊息,請檢查您是否未在 VPN 中執行,並確認容器執行個體的安全群組,允許連接埠 443 上的傳入網路 HTTP 流量。

步驟 9:清除

注意

刪除 FSx for Windows File Server 檔案系統或 AD 需要 20 到 45 分鐘的時間。您必須等到 FSx for Windows File Server 檔案系統刪除操作完成後,才能開始 AD 刪除操作。

刪除 FSx for Windows File Server 檔案系統。
  1. 開啟 Amazon FSx 主控台

  2. 選取您剛建立之 FSx for Windows File Server 檔案系統左側的選項按鈕。

  3. 選擇動作

  4. 選取 Delete file system (刪除檔案系統)。

刪除 AD。
  1. 開啟 AWS Directory Service 主控台

  2. 選擇您剛建立之 AD 左側的選項按鈕。

  3. 選擇動作

  4. 選擇 Delete directory (刪除目錄)。

刪除叢集。
  1. 開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2

  2. 在導覽窗格中選擇叢集,然後選擇 fsx-windows-cluster

  3. 選擇 Delete cluster (刪除叢集)

  4. 輸入短語,然後選擇刪除

終止 EC2 執行個體。
  1. 開啟 Amazon EC2 主控台

  2. 從左側選單中,選取 Instances (執行個體)。

  3. 勾選您建立之 EC2 執行個體左側的核取方塊。

  4. 按一下執行個體狀態終止執行個體

刪除密碼。
  1. 開啟 Secrets Manager 主控台

  2. 選取您為此逐步解說所建立的機密。

  3. 按一下 Actions (動作)。

  4. 選擇 Delete secret (刪除機密)。