本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用主控台為 Amazon EFS 設定 Amazon ECS 檔案系統
了解如何搭配 Amazon Word 使用 Amazon Elastic File System (Amazon ECS) 檔案系統。 EFS
步驟 1:建立 Amazon ECS 叢集
使用下列步驟建立 Amazon ECS 叢集。
建立新叢集 (Amazon ECS 主控台)
開始之前,請指派適當的 IAM 許可。如需詳細資訊,請參閱Amazon ECS 叢集範例。
在 https://console.aws.amazon.com/ecs/ v2
開啟主控台。 -
從導覽列中選取要使用的「區域」。
-
在導覽窗格中,選擇叢集。
-
在 Clusters (叢集) 頁面上,選擇 Create cluster (建立叢集)。
-
在叢集組態下的叢集名稱中,輸入叢集名稱的
EFS-tutorial
。 -
(選用) 若要變更任務和服務啟動的 VPC 和子網路,請在網路下執行下列任何操作:
-
若要移除子網路,請在 Subnets (子網路) 下,對您要移除之每一個子網路選擇 X。
-
若要變更為預設 VPC 以外的 VPC,請在 VPC 下選擇現有的 VPC,然後在子網路下,選取每個子網路。
-
-
若要將 Amazon EC2 執行個體新增至叢集,請展開基礎設施,然後選取 Amazon EC2 執行個體。接下來,設定作為容量提供者的 Auto Scaling 群組:
-
若要建立 Auto Scaling 群組,請從 Auto Scaling 群組 (ASG) 中選取建立新群組,然後提供群組的下列詳細資訊:
-
在作業系統/架構中,選擇 Amazon Linux 2。
-
針對 EC2 執行個體類型,選擇
t2.micro
。對於 SSH 金鑰對,選擇在連線到執行個體時證明您身分的配對。
-
在容量中,輸入
1
。
-
-
-
選擇 Create (建立)。
步驟 2:建立 Amazon EC2 執行個體和 Amazon EFS 檔案系統的安全群組
在此步驟中,您會為 Amazon EC2 執行個體建立安全群組,允許連接埠 80 上的傳入網路流量,以及建立允許從容器執行個體傳入存取的 Amazon EFS 檔案系統。
使用下列選項為您的 Amazon EC2 執行個體建立安全群組:
-
安全群組名稱 - 為您的安全群組輸入唯一的名稱。
-
VPC - 您先前為叢集識別的 VPC。
-
傳入規則
-
類型 - HTTP
-
資源來源 - 0.0.0.0/0。
-
使用下列選項為您的 Amazon EFS 檔案系統建立安全群組:
-
安全群組名稱 - 為您的安全群組輸入唯一的名稱。例如:
EFS-access-for-sg-
。dc025fa2
-
VPC - 您先前為叢集識別的 VPC。
-
傳入規則
-
類型 - NFS
-
來源 - 使用您為執行個體建立的安全群組 ID 進行自訂。
-
如需有關如何建立安全群組的資訊,請參閱 Amazon EC2 使用者指南中的為您的 Amazon Word 執行個體建立安全群組。 EC2
步驟 3:建立 Amazon EFS 檔案系統
在此步驟中,您會建立 Amazon EFS 檔案系統。
為 Amazon EFS 任務建立 Amazon ECS 檔案系統。
-
在 Word 開啟 Amazon Elastic File System 主控台。 https://console.aws.amazon.com/efs/
-
選擇 Create file system (建立檔案系統)。
-
輸入檔案系統的名稱,然後選擇容器執行個體託管的 VPC。根據預設,指定 VPC 中的每個子網路都會收到掛載目標,該目標使用該 VPC 的預設安全群組。然後,選擇自訂。
注意
本教學課程假設您的 Amazon EFS 檔案系統、Amazon ECS 叢集、容器執行個體和任務位於相同的 VPC 中。如需從不同 VPC 安裝檔案系統的詳細資訊,請參閱 Amazon VPC 使用者指南中的逐步解說:從不同 Word 安裝檔案系統。 EFS
-
在檔案系統設定頁面上,設定選用設定,然後在效能設定下,為您的檔案系統選擇高載輸送量模式。設定完設定之後,請選取下一步。
-
(選用) 為您的檔案系統新增標籤。例如,您可以在 Name (名稱) 鍵旁的 Value (值) 欄中輸入名稱,藉此為檔案系統指定不會重複的一名稱。
-
(選用) 啟用生命週期管理,以避免在不常存取的儲存體上浪費成本。如需詳細資訊,請參閱 Amazon Elastic File System 使用者指南中的 EFS 生命週期管理。
-
(選用) 啟用加密。選取核取方塊以啟用靜態 Amazon EFS 檔案系統的加密。
-
-
在網路存取頁面的掛載目標下,將每個可用區域的現有安全群組組態替換為您為 步驟 2:建立 Amazon EC2 執行個體和 Amazon EFS 檔案系統的安全群組 中的檔案系統建立的安全群組,然後選擇下一步。
-
您不需要為本教學課程設定檔案系統政策,因此您可以選擇下一步略過此區段。
-
檢閱您的檔案系統選項,然後選擇建立以完成程序。
-
從檔案系統畫面中,記錄檔案系統 ID。在下一個步驟中,您將在 Amazon ECS 任務定義中參考此值。
步驟 4:將內容新增至 Amazon EFS 檔案系統
在此步驟中,您將 Amazon EFS 檔案系統掛載至 Amazon EC2 執行個體,並將內容新增至該執行個體。這是為了在本教學課程中進行測試,以說明資料的持久性。使用此功能時,通常您會擁有應用程式或其他將資料寫入 Amazon EFS 檔案系統的方法。
建立 Amazon EC2 執行個體並掛載 Amazon EFS 檔案系統
-
在 EC2 開啟 Amazon https://console.aws.amazon.com/ec2/
主控台。 -
選擇 Launch Instance (啟動執行個體)。
-
在應用程式和作業系統映像 (Amazon Machine Image) 下,選取 Amazon Linux 2 AMI (HVM)。
-
在執行個體類型中,保留預設執行個體類型
t2.micro
。 -
在金鑰對 (登入) 下,選取 SSH 存取執行個體的金鑰對。
-
在網路設定下,選取VPC您為 Amazon EFS 檔案系統和 Amazon Word 叢集指定的 ECS。選取子網路和在 步驟 2:建立 Amazon EC2 執行個體和 Amazon EFS 檔案系統的安全群組 中建立的執行個體安全群組。設定執行個體的安全群組。確認已啟用自動指派公有 IP。
-
在設定儲存體下,選擇檔案系統的編輯按鈕,然後選擇 EFS。選取您在 步驟 3:建立 Amazon EFS 檔案系統 中建立的檔案系統。您可以選擇性地變更掛載點,或保留預設值。
重要
您必須先選擇子網路,然後才能將檔案系統新增至執行個體。
-
清除自動建立並連接安全群組。保持選取另一個核取方塊。選擇 Add shared file system (新增共用檔案系統)。
-
在進階詳細資訊下,確保使用者資料指令碼自動填入 Amazon EFS 檔案系統掛載步驟。
-
在摘要下,確定執行個體數量為 1。選擇啟動執行個體。
-
在啟動執行個體頁面上,選擇檢視所有執行個體以查看執行個體的狀態。初始時,您的執行個體狀態為
PENDING
。當狀態變更為RUNNING
且執行個體通過所有狀態檢查之後,執行個體即可供使用。
現在,您可以連線至 Amazon EC2 執行個體,並將內容新增至 Amazon EFS 檔案系統。
連線至 Amazon EC2 執行個體,並將內容新增至 Amazon EFS 檔案系統
-
SSH建立的 Amazon EC2 執行個體的 Word。如需詳細資訊,請參閱 Amazon SSH 使用者指南中的使用 Word 連線至 Linux 執行個體。 EC2
-
從終端機視窗中,執行 df -T命令以確認 Amazon EFS 檔案系統是否已掛載。在下列輸出中,我們已反白顯示 Amazon EFS 檔案系統掛載。
$ df -T Filesystem Type 1K-blocks Used Available Use% Mounted on devtmpfs devtmpfs 485468 0 485468 0% /dev tmpfs tmpfs 503480 0 503480 0% /dev/shm tmpfs tmpfs 503480 424 503056 1% /run tmpfs tmpfs 503480 0 503480 0% /sys/fs/cgroup /dev/xvda1 xfs 8376300 1310952 7065348 16% /
127.0.0.1:/ nfs4 9007199254739968 0 9007199254739968 0% /mnt/efs/fs1
tmpfs tmpfs 100700 0 100700 0% /run/user/1000 -
導覽至 Amazon EFS 檔案系統掛載所在的目錄。在上述範例中,即為
/mnt/efs/fs1
。 -
建立名為
index.html
且具有下列內容的檔案:<html> <body> <h1>It Works!</h1> <p>You are using an Amazon EFS file system for persistent container storage.</p> </body> </html>
步驟 5:建立任務定義
以下任務定義會建立名稱為 efs-html
的資料磁碟區。nginx
容器會將主機資料磁碟區掛載在 NGINX 根目錄 /usr/share/nginx/html
。
使用 Amazon ECS 主控台建立新的任務定義
在 https://console.aws.amazon.com/ecs/ v2
開啟主控台。 -
在導覽窗格中,選擇 Task Definitions (任務定義)。
-
選擇建立新任務定義,使用 JSON 建立新任務定義。
-
在 JSON 編輯器方塊中,複製並貼上下列 JSON 文字,
fileSystemId
以 Amazon EFS 檔案系統的 ID 取代 。{ "containerDefinitions": [ { "memory": 128, "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ], "essential": true, "mountPoints": [ { "containerPath": "
/usr/share/nginx/html
", "sourceVolume": "efs-html
" } ], "name": "nginx", "image": "nginx" } ], "volumes": [ { "name": "efs-html
", "efsVolumeConfiguration": { "fileSystemId": "fs-1324abcd
", "transitEncryption": "ENABLED
" } } ], "family": "efs-tutorial", "executionRoleArn":"arn:aws:iam::111122223333:role/ecsTaskExecutionRole
" }注意
您可以將下列許可新增至 Amazon ECS 任務執行 IAM 角色,以允許 Amazon ECS 代理程式在啟動時尋找並掛載 Amazon EFS 檔案系統至任務。
-
elasticfilesystem:ClientMount
-
elasticfilesystem:ClientWrite
-
elasticfilesystem:DescribeMountTargets
-
elasticfilesystem:DescribeFileSystems
-
-
選擇 Create (建立)。
步驟 6:執行任務並檢視結果
現在,您的 Amazon EFS 檔案系統已建立,並且有 Web 內容可供 NGINX 容器使用,您可以使用您建立的任務定義來執行任務。NGINX Web 伺服器提供簡單的 HTML 頁面。如果您更新 Amazon EFS 檔案系統中的內容,這些變更會傳播到也掛載該檔案系統的任何容器。
任務會在您為叢集定義的子網路中執行。
使用主控台執行任務並檢視結果
在 https://console.aws.amazon.com/ecs/ v2
開啟主控台。 -
在 Clusters (叢集) 頁面上,選取要在哪個叢集中執行獨立任務。
決定您要從中啟動服務的資源。
啟動服務的資源 步驟 叢集
-
在叢集頁面,選取您要在哪個叢集中建立服務。
-
在 Tasks (任務) 標籤中,選擇 Run new task (執行新任務)。
啟動類型 -
在 Task (任務) 頁面中,選擇任務定義。
-
如果有多個修訂版,則請選取修訂版。
-
依序選擇 Create (建立)、Run task (執行任務)。
-
-
(選用) 選擇已排程的任務在叢集基礎設施中的分佈方式。展開 Compute configuration (運算組態),然後執行下列操作:
分發方法 步驟 啟動類型 -
在運算選項區段中,選取啟動類型。
-
針對啟動類型,選擇 EC2。
-
-
針對 Application type (應用程式類型),選擇 Task (任務)。
-
在任務定義中,選擇您先前建立的
efs-tutorial
任務定義。 -
在所需任務中,輸入
1
。 -
選擇 Create (建立)。
-
在叢集頁面上,選擇基礎設施。
-
在容器執行個體下,選擇要連線的容器執行個體。
-
在容器執行個體頁面的聯網下,記錄執行個體的公有 IP 或公有 DNS。
-
開啟瀏覽器並輸入公有 IP 地址。您應該看到下列訊息:
It works! You are using an Amazon EFS file system for persistent container storage.
注意
如果您未看到該訊息,請確認您容器執行個體的安全群組,允許連接埠 80 上的入站網路流量,且檔案系統的安全群組允許來自容器執行個體的入站存取。