我希望能够找出正在运行并标记有特定值的 ec2 机器。
我使用了以下命令:
aws ec2 describe-instances --filter Name=tag:Name,Values=worker1 \
--filter Name=instance-state-name,Values=running
Run Code Online (Sandbox Code Playgroud)
它基本上返回 ec2 机器的所有正在运行的实例。
如何使 aws cli 将过滤器视为条件组合?即仅名为“worker1”的活动机器
我在创建的新实例上遇到了 EC2 API 工具超时的问题。
昨天我拍了一张服务器的图像,在该服务器上工具运行良好。我对其运行的软件和初始化脚本进行了一些更改,以支持我们的新部署系统。
今天,我为它设置了一个新的 Launch Configuration,并生成了一个新实例。我从原来的实例登录到这个实例,因为它只有一个私有 IP。现在,为了我们的部署,我需要能够访问带有特定标签的快照,这在原始实例上运行良好,但在新实例上它只是超时:
Unknown problem connecting to host: 'https://ec2.eu-west-1.amazonaws.com'
Unable to execute HTTP request: Connect to ec2.eu-west-1.amazonaws.com:443 timed out
Run Code Online (Sandbox Code Playgroud)
我觉得这是一个配置问题,有什么办法可以让您了解我做错了什么?
澄清:
任何帮助都感激不尽。
我想使用AWS RDS 命令行工具来创建数据库的快照。my-databasecreate-db-snapshot
我在IAM中创建了一个特殊的备份角色,其策略允许我描述、复制和创建快照。它看起来像这样(我用 x 替换了敏感 ID):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmtxxxxxxxxxxxxxx",
"Effect": "Allow",
"Action": [
"rds:CopyDBSnapshot",
"rds:CreateDBSnapshot",
"rds:DescribeDBSnapshots",
"rds:DescribeEventCategories",
"rds:DescribeEvents"
],
"Resource": [
"arn:aws:rds:eu-west-1:xxxxxxxxxxxxxx:db:my-database"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
配置 CLI 工具并aws configure输入该用户的密钥后,我尝试通过执行以下命令来制作快照:
aws rds create-db-snapshot \
--db-snapshot-identifier "my-database-backup-$(date +%d-%m-%Y-%Hh%Mm)" \
--db-instance-identifier "my-database"
Run Code Online (Sandbox Code Playgroud)
这会导致一条错误消息:
调用 CreateDBSnapshot 操作时发生客户端错误 (AccessDenied):用户:arn:aws:iam::xxxxxxxxxxxxxx:user/automated-tasks 无权对资源执行:rds:CreateDBSnapshot:arn:aws:rds:eu-west -1:xxxxxxxxxxxxxx:快照:我的数据库备份-24-11-2014-11h07m
我认为这很奇怪,因为它表示拒绝访问具有我为参数指定的名称的资源(--db-snapshot-identifier与参数相反)--db-instance-identifier。
如果我有足够的权限来创建应用于实例的快照,那么我本身不应该具有该快照的创建权限吗?
无论如何,我尝试将策略中的资源更改为 RDS 中的所有内容:
"Resource": [
"arn:aws:rds:eu-west-1:xxxxxxxxxxxxxx:*"
]
Run Code Online (Sandbox Code Playgroud)
我希望这会起作用,因为现在我的角色对我帐户的 RDS ARN 内的所有内容都具有创建快照权限,但事实并非如此。
有谁知道为什么我的命令返回错误?
简而言之 - 操作系统 Amazon Linux 或 Ubuntu。一个 EC2 实例(或 OpsWorks 实例?)正在运行。每天启动第二个实例,使用最新的安全更新更新它,安装我的应用程序。关闭第一实例。每天重复...
AWS文档指出:
默认情况下,AWS OpsWorks 会在设置过程中自动安装最新更新... 我们建议您... 创建并启动新实例以替换您当前的在线实例。然后删除当前实例。新实例将在安装过程中安装最新的一组安全补丁。
如何自动化这个过程?
我知道,我可以通过 CLI 启动一个微实例来管理这个过程,但我更喜欢使用一些 AWS 内置工具,这样我就可以获得失败通知,添加一些冗余(如果 CLI 实例失败),一切都会继续处理新的 CLI / AWS API 版本等。
我错过了一些优雅的方法吗?
更新:能够使用现有的弹性 IP 是首选。
如此处所述https://aws.amazon.com/blogs/aws/new-amazon-ec2-feature-idempot-instance-creation/ AWS CLI 强制执行aws ec2 run-instances --cli-input-json命令的幂等性。不幸的是,没有关于如何生成客户端令牌的文档。
我确实发现结果ClientToken中有一个字段aws ec2 describe-instances,但是如果您尝试使用它,当然您仍然会收到以下错误:
An error occurred (IdempotentParameterMismatch) when calling the RunInstances operation: Arguments on this idempotent request are inconsistent with arguments used in previous request(s).
Run Code Online (Sandbox Code Playgroud)
如何获取用于使用的令牌--client-token?
我有许多 lambda 函数运行我的无服务器后端。某处出现异常,我需要从所有日志组中调出/搜索特定时间 \xe2\x80\x94\xc2\xa0 的所有日志,而不仅仅是单个日志组或单个流。
\n有没有一种好方法可以搜索所有日志组和所有流?
\n我已经尝试过控制台,但这坚持从日志组(对于 lambda,这些等同于函数)向下驱动并使用命令行,这也仅适用于每个日志组。
\n理想情况下,我希望首先能够查看一天内所有函数执行的所有报告,这样我就可以查询以查看哪些函数失败或运行时间过长。
\n有没有办法在所有日志中搜索我的所有功能?
\n预先感谢 \xe2\x80\x94\xc2\xa0 如果您需要更多详细信息,请告诉我。
\n麦克风
\n我在我的本地机器上。我是一个开发人员,对操作一无所知。在命令行上运行后选择us-east-1我的区域后,我得到以下信息:eb init
ERROR: The current user does not have the correct permissions.
Reason: Operation Denied. Signature not yet current:
20150922T194753Z is still later than 20150922T194701Z (20150922T194201Z + 5 min.)
Run Code Online (Sandbox Code Playgroud)
我四处寻找答案,看来这是其他人在部署应用程序后遇到的时区问题,他们通过同步已启动的 EC2 实例的时区解决了该问题。但是,我还没有部署到 EB,并且没有关联的 EC2 实例。我尝试使用将系统时钟和时区与 us-east-1 的时区对齐,sudo dpkg-reconfigure tzdata但错误仍然存在。
那么我该如何克服这个问题呢?
我正在将大约 200,000 个文件(每个最大约 1MB)从 EC2 实例(均位于欧洲西部)上传到 S3 存储桶。
从使用 CloudWatch 监控 EC2(查看NetworkOut指标)来看,随着时间的推移,上传传输似乎有所下降:
我分几批上传文件,下载似乎是一致的,通常在四五个小时后(但有时发生得更快)。
这些文件使用 Python 脚本上传,其中:
我尝试了两种上传 .gzip 文件的方法......
boto3.client("s3").upload_file(file.gz, bucket, file.gz)...但我看到每种方法都有相同的下降。
什么可能导致这种情况?或者我应该收集什么信息来调试它?
编辑
这是同一时期的图表,显示了BurstBalance指标(EC2 实例是 t2.small):
这是CPUCreditBalance:
我有 2 个 AWS 账户,并使用 IAM 角色设置了跨账户身份验证。
我为第二个账户创建了一个名为 profile 的 AWS CLI,它使用 role_arn 并将我的默认配置文件指定为 source_profile。
对于我的默认配置文件,我将 KEY 和 SECRET 保留为环境变量,而不是 ~/.aws/credentials 文件中的静态字符串。
但是,当我切换到命名配置文件并查询 API 时,出现以下错误:
The source_profile "default" must specify either static credentials or an assume role configuration
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让我在 ~/.aws/credentials 中获得一个命名配置文件来引用我的环境变量凭据而不是静态凭据?
aws s3 sync /WordProcessing/DOCUMENTS s3://mybigbucket --delete --include "*" --exclude ".DS_Store"
Run Code Online (Sandbox Code Playgroud)
如果 .DS_Store 以某种方式到达 AWS S3 mybigbucket(从之前的备份),则使用上述命令不会从目标中删除 .DS_Store 文件,即使我手动执行:
rm /WordProcessing/DOCUMENTS/.DS_Store
Run Code Online (Sandbox Code Playgroud)
在文件服务器上。
我是否缺少 aws s3 同步工作原理的逻辑?在我看来,如果 .DS_Store 已从文件服务器上的源中删除,则应该从 S3 存储桶上的目标中删除它。
如果我取消 --exclude 并再次运行该命令,当 .DS_Store 从文件服务器中删除时,它会从目标中删除它。这似乎不对。
我采取了错误的方法吗?我想要做的是每晚同步文件服务器,并让它不将数千个 .DS_Store 文件传输到 S3 存储桶。
如果我跑步$ aws iam get-user --user-name anthony,我会得到这样的结果
{
"User": {
"Path": "/",
"UserName": "anthony",
"UserId": "E2S4XZIL9NRNSBIDBI5U6",
"Arn": "arn:aws:iam::123456:user/anthony",
"CreateDate": "2015-04-03T01:22:11Z",
"PasswordLastUsed": "2019-04-10T01:38:14Z"
}
}
Run Code Online (Sandbox Code Playgroud)
如果我想获取此登录名的列表role,我该如何做aws iam?
我指的是以下 AWS 文档,尝试使用 CLI(来自 Windows)来启动具有在启动时指定的标签的 EC2 实例:
https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_CLI
我遇到了一些问题,所以我决定尝试文档中指定的确切命令:
aws ec2 run-instances --image-id ami-abc12345 --count 1 --instance-type t2.micro --key-name MyKeyPair --subnet-id subnet-6e7f829e --tag-specifications 'ResourceType=instance,Tags=[{Key=webserver,Value=production}]' 'ResourceType=volume,Tags=[{Key=cost-center,Value=cc123}]'
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误:
Error parsing parameter '--tag-specifications': Expected: '=',
received: ''' for
input:
'ResourceType=instance,Tags=[{Key=webserver,Value=production}]'
^
Run Code Online (Sandbox Code Playgroud)
那么,究竟如何指定运行实例的标签呢?
aws-cli ×12
amazon-ec2 ×5
amazon-iam ×2
amazon-rds ×1
amazon-s3 ×1
amazon-vpc ×1
opsworks ×1
python ×1
snapshot ×1