AWS CloudShell
可直接从浏览器运行 AWS CLI 和各种开发工具的托管 Shell 环境,无需配置认证信息
概述
AWS CloudShell 是从管理控制台一键启动的基于浏览器的 Shell 环境。预装了 AWS CLI v2、Python、Node.js、Git、jq、vim 等主要工具,无需本地环境搭建即可操作 AWS 资源和执行脚本。登录控制台的用户 IAM 认证信息会自动继承,无需配置访问密钥。主目录分配了 1 GB 持久存储,可在会话间保留文件和脚本。
执行环境的规格与限制
CloudShell 在基于 Amazon Linux 2023 的容器环境中运行,每个会话分配独立的执行环境。可用 1 vCPU、2 GB 内存,对于轻量脚本执行和资源操作性能足够。预装了 AWS CLI v2、Python、Node.js、Git、jq、SAM CLI、CDK CLI,还可以通过 pip install 或 npm install 添加包。主目录 (/home/cloudshell-user) 附带 1 GB 免费持久存储,可在会话间保留脚本和配置文件。Azure Cloud Shell 挂载 Azure Files 共享存储 (5 GB) 需要额外的存储账户费用,而 CloudShell 无需创建额外资源。
在紧急故障排查中的优势
CloudShell 最能发挥作用的场景是生产环境的故障响应。无需为本地环境的 AWS CLI 配置或凭证问题烦恼,可以从控制台立即打开 Shell 开始调查。登录控制台的用户 IAM 认证信息会自动继承,无需配置访问密钥。AWS CLI 相关书籍 (Amazon) 中学到的命令可以立即在此环境中尝试。但需要注意,会话在 20 分钟无操作后会自动超时,不适合长时间的批处理。
VPC 连接与区域注意事项
CloudShell 的默认环境可以进行互联网出站通信,但无法访问 VPC 内的私有资源 (RDS、ElastiCache 等)。要操作私有子网内的资源,需要指定 VPC 环境启动 CloudShell,此时互联网访问会受限,需要另外配置 NAT Gateway。此外,CloudShell 是按区域独立的环境,从东京区域启动的 CloudShell 操作弗吉尼亚区域的资源时需要指定 --region 选项。日常使用中,将获取所有区域 EC2 实例列表的单行命令或用 jq 汇总 S3 存储桶访问日志的脚本保存在主目录中,可以随时复用,非常高效。