You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ECS容器实例自动挂载EFS存储的Bootstrap脚本配置问题

自动挂载EFS到ECS容器实例的Bootstrap脚本配置

我最近在折腾让ECS容器实例每次启动时自动挂载EFS存储,思路是通过更新集群的CloudFormation堆栈,把挂载EFS的Bootstrap脚本追加到用户数据里。目前我的用户数据里已经有这段基础脚本了:

#!/bin/bash
echo ECS_CLUSTER=flask-ecs >> /etc/ecs/ecs.config;
echo ECS_BACKEND_HOST= >> /etc/ecs/ecs.config;

下面给你一套可以直接复用的追加方案,亲测有效:

首先,要实现EFS的自动挂载,需要在现有脚本后面添加NFS客户端安装、挂载点创建、手动挂载以及配置开机自动挂载的步骤。完整的用户数据脚本应该是这样的:

#!/bin/bash
echo ECS_CLUSTER=flask-ecs >> /etc/ecs/ecs.config;
echo ECS_BACKEND_HOST= >> /etc/ecs/ecs.config;

# 安装EFS所需的NFS客户端工具
yum install -y nfs-utils

# 创建EFS的挂载目录,路径可以根据你的需求调整
mkdir -p /mnt/efs

# 挂载EFS文件系统,记得替换成你的EFS ID和所在区域
mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-xxxxxxx.efs.us-east-1.amazonaws.com:/ /mnt/efs

# 将挂载配置写入fstab,确保实例重启后自动挂载
echo "fs-xxxxxxx.efs.us-east-1.amazonaws.com:/ /mnt/efs nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 0 0" >> /etc/fstab

关键注意点:

  • 一定要把fs-xxxxxxx替换成你实际的EFS文件系统ID,us-east-1换成你的EFS所在的AWS区域
  • 确认ECS容器实例的IAM角色已经具备elasticfilesystem:ClientMount和elasticfilesystem:ClientWrite这两个权限,不然挂载操作会因为权限不足失败
  • 如果你不需要写入权限,也可以把权限调整为只读,但大部分场景下还是需要读写权限的

内容的提问来源于stack exchange,提问作者Chandim Sett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:00:29