Amazon Web Services操作界面
项目描述
Aegea 是一个命令行界面(CLI),为亚马逊网络服务(AWS)账户的运维人员提供了一系列基本命令和终端仪表板。Aegea 允许您使用 cloud-init 配置管理包来构建 AMI 和 Docker 镜像,管理配置角色,启动和监控实例和服务,以及管理包括 ELB、RDS 和 AWS Batch 在内的 AWS 资源。Aegea 被设计为与现有的 AWS CLI 和 boto3 功能性相结合使用。Aegea 可以与 MiniWDL 等工具结合使用,以编排大规模 MLOps 和基因组工作流程。
安装
pip install aegea
运行 aws configure 以配置将被 aws 和 aegea 命令使用的 IAM 访问凭证。您可以在 https://console.aws.amazon.com/iam/home#/users 创建新的 IAM 密钥。有关详细信息,请参阅 AWS CLI 文档。
Aegea 命令
以下是 Aegea 命令套件的一些亮点。运行 aegea --help 以查看完整命令列表。
命令 |
主要功能 |
---|---|
aegea ls |
列出正在运行的 EC2 实例 |
aegea launch |
启动 EC2 实例并指定选项,例如 spot tenancy、AMI、实例类型等。 |
aegea ssh,aegea scp |
连接到正在运行的实例,使用 AWS Systems Manager 或其他选项传输文件 |
aegea batch |
提交、管理和监控 AWS Batch 作业 |
aegea ecs |
监控 ECS 集群并运行 Fargate 任务 |
aegea build-ami |
使用 cloud-init 配置脚本构建 EC2 AMI |
aegea build-docker-image |
使用 Dockerfile 或 cloud-init 脚本构建 AWS ECR Docker 镜像 |
aegea logs |
使用S3导出下载AWS CloudWatch日志内容 |
aegea grep |
使用CloudWatch日志洞察查询AWS CloudWatch日志内容 |
aegea cost |
列出由AWS成本探测器生成的AWS成本报告 |
aegea secrets |
列出和管理存储在AWS Secrets Manager中的机密 |
aegea cloudtrail |
查询AWS CloudTrail事件以审计您的AWS账户的安全性 |
Aegea启动
aegea launch 命令用于启动EC2实例。它集成了对AWS SSM/EC2实例连接、运行时cloud-init配置、自动定位Aegea构建的AMIs或最新的Ubuntu或Amazon Linux AMIs、自动存储配置和其他选项的支持。
Aegea SSH
aegea ssh 命令(及其变体 aegea scp)是一个SSH配置包装器,与AWS Systems Manager 和 EC2实例连接 集成,以提供SSH连接到您的实例,无需打开任何入站端口(如果您的实例操作系统未配置SSM,请使用 aegea ssh --no-ssm 以打开直接连接)。aegea ssh 通过名称安全解析实例地址并预先获取其公钥,无需首次使用即信任。
Visual Studio Code远程开发集成
Visual Studio Code 提供了一个 远程开发扩展包,允许您的VSCode IDE远程连接到AWS实例。要使用VSCode与aegea ssh,请打开远程SSH插件设置(命令面板 > Remote-SSH: 设置)并在“Remote.SSH: 路径”设置下输入 aegea-ssh 可执行文件的路径(例如,/usr/local/bin/aegea-ssh)。完成此操作后,您可以使用“Remote-SSH: 连接到主机”面板命令通过名称或ID连接到任何由aegea启动的实例(例如,先运行 aegea launch my-test-instance,然后在 连接到主机 对话框中输入 my-test-instance)。请注意,VSCode将使用默认的AWS CLI配置文件进行身份验证。
Aegea批量
AWS Batch API 允许您在Docker容器中运行非交互式命令行工作流程,代表您管理账户中的AWS ECS、Fargate和EC2/Spot。使用 aegea batch 命令系列与AWS Batch交互。关键命令是 aegea batch submit 用于提交作业。
运行 aegea batch submit --command "echo 'hello world'" --memory 4096 --vcpus 2 --watch 以运行一个需要分配4 GB RAM和2个核心给Docker容器的批量作业,并执行指定的命令。
您还可以使用 aegea batch submit --execute FILE。这将读取FILE(任何类型的shell脚本或ELF可执行文件)并在作业的Docker容器中执行它。
您的批量作业的并发性和成本由计算环境中的“最大vCPUs”设置控制。要更改 aegea batch 所使用的默认计算环境的容量或其他设置,请访问 https://console.aws.amazon.com/batch/home?region=us-east-1#/compute-environments,选择“aegea_batch”,然后单击“编辑”。
批量与ECS Fargate
ECS Fargate API 是 AWS 基于容器的虚拟化平台 Firecracker 的接口。ECS Fargate 允许您在完全管理的容器中运行工作负载:您的账户中没有运行的实例;您按容器使用时间计费,容器启动时间仅需10秒,而 EC2 实例需要数分钟。
AWS Batch 可以在您的账户中的 ECS 容器实例(连接到 ECS 的 EC2 实例,Batch 进行管理)或直接在 ECS Fargate 容器中运行您的作业。虽然 Fargate 容器启动速度更快,但它们的 CPU 和内存限制较低,为 4 个 CPU 和 30 GB RAM(与 EC2 上的 96 个 CPU 和 768 GB RAM 相比)。
默认情况下,aegea batch 将创建并使用一个使用 ECS Fargate 的 AWS Batch 计算环境和工作队列,但您可以通过将 --compute-type 选项设置为 aegea batch create-compute-environment 来控制这一点。
Aegea 还支持通过 aegea ecs run 命令直接使用 ECS Fargate,而无需 Batch。大多数 aegea batch 语义都适用于 aegea ecs,它通过“一次性”ECS RunTask API 与 ECS 交互。
配置管理
Aegea 支持从可配置的源数组中摄取配置。每个源都是一个 JSON 或 YAML 文件。遵循第一个源的配置源将使用递归字典合并更新配置。源按以下优先级顺序列出
命令行选项(值比所有其他源优先)
任何列在冒号分隔的变量 AEGEA_CONFIG_FILE 中的源
用户配置源,~/.config/aegea/config.yml
站点范围配置源,/etc/aegea/config.yml
从 base_config.yml 中的配置默认值
数组合并运算符:当加载一系列配置源时,Aegea 使用递归字典合并来合并源。此外,当原始配置值是一个列表时,Aegea 支持数组操作符,这允许您扩展和修改在底层配置中定义的数组。例如,要为使用 aegea launch 启动的所有实例启用完全的 S3 访问,请将以下内容添加到 ~/.config/aegea/config.yml
launch: iam_policies: $append: AmazonS3FullAccess
要启用 S3 和 SQS 访问,并在 aegea ls 中列出实例的私有 IP 地址和可用区,请添加以下内容
launch: iam_policies: $extend: - AmazonS3FullAccess - AmazonSQSFullAccess ls: columns: $extend: - private_ip_address - placement.AvailabilityZone
要获取可以设置的可用配置参数列表,请运行 aegea configure 或查看 https://github.com/kislyuk/aegea/blob/develop/aegea/base_config.yml。有关数组合并运算符的正式描述,请参阅 https://github.com/kislyuk/tweak#array-merge-operators。
构建 AMI 和 Docker 镜像
Aegea 包含一个轻量级的配置管理系统,用于基于 cloud-init 构建机器镜像(支持 Docker 镜像和 AMI)。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。