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

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

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

了解如何啟動 Amazon ECS最佳化的 Windows 執行個體,該執行個體託管FSx適用於 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金鑰對。如需有關如何建立金鑰對的資訊,請參閱 Windows 執行個體使用者指南中的 Amazon EC2金鑰對和 Windows 執行個體。

  • VPC 具有至少一個公有和一個私有子網路,以及一個安全群組的 。您可以使用預設 VPC。您不需要NAT閘道或裝置。 AWS Directory Service 不支援使用 Active Directory 進行網路地址轉譯 (NAT)。若要運作,Windows File Server 檔案系統、ECS叢集和EC2執行個體FSx的 Active Directory 必須位於您的 內VPC。如需 VPCs和 Active Directory 的詳細資訊,請參閱 Amazon VPC主控台精靈組態AWS Managed Microsoft AD 先決條件

  • IAM ecsInstanceRole 和 ecsTaskExecution角色許可會與您的帳戶相關聯。這些服務連結角色允許 服務代表您API呼叫和存取容器、秘密、目錄和檔案伺服器。

步驟 1:建立IAM存取角色

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

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

    • AmazonEC2ContainerServiceforEC2Role

    • AmazonSSMManagedInstanceCore

    • AmazonSSMDirectoryServiceAccess

    連接 AWS 受管政策。

    1. 開啟IAM主控台

    2. 在導覽窗格中,選擇角色

    3. 選擇 AWS 受管角色

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

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

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

  3. 請參閱 Amazon ECS任務執行IAM角色 以檢查您是否具有ecsTaskExecution角色,並查看在沒有角色時如何建立角色。

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

    • SecretsManagerReadWrite

    • AmazonFSxReadOnlyAccess

    • AmazonSSMReadOnlyAccess

    • AmazonECSTaskExecutionRolePolicy

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

  1. 請遵循目錄服務管理指南建立受 AWS 管 AD 目錄 AWS 中所述的步驟。使用VPC您為本教學課程指定的 。在步驟 3 建立您的 AWS 受管 AD 目錄中,請儲存使用者名稱和密碼,以便在後續步驟中使用。另外,請記下完整網域名稱,以供後續步驟使用。您可以繼續在建立 Active Directory 時完成以下步驟。

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

    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 Windows File Server 使用者指南 中的 Amazon VPC 安全群組所述。您可以藉由建立安全群組傳入規則完成此操作,規則顯示在以下傳入規則資料表的第一列。此規則允許來自網路界面 (及其關聯執行個體) 的傳入流量,而這些網路界面會指派給安全群組。您建立的所有雲端資源都位於相同的 內,VPC並連接到相同的安全群組。因此,此規則允許 流量視需要與 FSx 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主控台,然後從左側功能表中選取安全群組

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

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

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

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

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

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

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

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

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

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

  6. 針對儲存類型 ,選擇 HDD

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

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

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

  10. 針對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. 展開基礎設施 ,清除 AWS Fargate (無伺服器),然後選擇 Amazon EC2執行個體

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

      • 作業系統/架構中,選擇 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命令來擷取託管您 的區域AMI名稱VPC。如需詳細資訊,請參閱擷取 Amazon ECS最佳化AMI中繼資料。

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

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

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

    3. EC2儀表板 中,選擇啟動執行個體

    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. 進階詳細資訊 下,IAM例如設定檔 ,選擇 ecsInstanceRole

    13. 使用下列使用者資料設定 Amazon ECS容器執行個體。在進階詳細資訊 下,將下列指令碼貼到使用者資料欄位中,取代 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. 選擇建立新任務定義 使用 建立新任務定義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 檔案系統狀態為可用。可用之後,您可以使用您建立的任務定義來執行任務。任務一開始會建立容器,使用HTML檔案系統在它們之間隨機切換檔案。在隨機切換之後,Web 伺服器會提供簡單的HTML頁面。

注意

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

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

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

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

  4. 針對啟動類型 ,選擇 EC2

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

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

  7. 容器 下,當容器 1 狀態為 時STOPPED,選取容器 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 刪除 Windows File Server 檔案系統。
  1. 開啟 Amazon FSx主控台

  2. 選擇您剛建立之FSx適用於 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 (刪除機密)。