我想绘制 Amazon S3 存储桶的大小(以字节为单位和项目数),并且正在寻找一种获取数据的有效方法。
该s3cmd工具提供一种方式来获得使用总文件大小s3cmd du s3://bucket_name,但我担心它的能力,规模,因为它看起来像它获取每个文件的数据,并计算其自身的总和。由于亚马逊以 GB 月为单位向用户收费,因此他们不直接公开此值似乎很奇怪。
尽管Amazon 的 REST API 会返回存储桶中的项目数,但s3cmd似乎并未公开它。我可以做,s3cmd ls -r s3://bucket_name | wc -l但这似乎是一个黑客。
Ruby AWS::S3库看起来很有前途,但只提供了存储桶项目的数量,而不是总存储桶大小。
有没有人知道提供获取这些数据的方法的任何其他命令行工具或库(首选 Perl、PHP、Python 或 Ruby)?
disk-space-utilization amazon-s3 amazon-web-services aws-cli
我真的在 AWS 中挣扎,试图找出我在这里遗漏了什么。我想这样做,以便 IAM 用户可以从 S3 存储桶下载文件 - 而不仅仅是将文件完全公开 - 但我的访问被拒绝。如果有人能发现发生了什么,我会被激怒。
到目前为止我所做的:
aws s3 cp --profile my-user s3://my-bucket/thing.zip .桶策略:
{
"Id": "Policy1384791162970",
"Statement": [
{
"Sid": "Stmt1384791151633",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*",
"Principal": {
"AWS": "arn:aws:iam::111122223333:user/my-user"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
结果是A client error (AccessDenied) occurred: Access Denied虽然我可以使用相同的命令和默认(root 帐户?)访问密钥下载。
我也尝试添加用户策略。虽然我不知道为什么有必要,但我认为它不会受到伤害,所以我将它附加到了我的用户。
{
"Statement": [
{
"Sid": "Stmt1384889624746",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
} …Run Code Online (Sandbox Code Playgroud) 我正在使用 aws 证书管理器来管理 SSL。最近我购买了通配符 ssl*.example-private.com现在我需要该 SSL 证书才能在 aws 上的企业 git 实例上部署。
如何从aws下载ssl?
我有一个名为dev-server-03. 现在如何dev-server-*从命令行搜索所有实例?
我正在使用 aws cli 工具。
我想通过 CLI 删除 VPC。但是得到一个错误:
A client error (DependencyViolation) occurred when calling the DeleteVpc operation: The vpc 'vpc-xxx' has dependencies and cannot be deleted.
Run Code Online (Sandbox Code Playgroud)
如何列出阻止我删除此 VPC 的所有依赖项?
command-line-interface amazon-web-services amazon-vpc aws-cli
我得到的最接近的是使用以下命令。
此命令设法列出所有实例名称。
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
Run Code Online (Sandbox Code Playgroud)
此命令设法列出所有我不需要的私有 IP 地址、实例 ID 和所有标签。我只需要名字。
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b | jq '.Reservations[].Instances[] | {PrivateIpAddress, InstanceId, Tags}'
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我不能像这样执行命令:
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags[?Key==`Name`].Value[]'
Run Code Online (Sandbox Code Playgroud)
此命令有效,但它显示所有标签键名称。
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags'
Run Code Online (Sandbox Code Playgroud) 我有一个带有嵌套“文件夹”结构的大型 S3 存储桶,其中包含(除其他外)静态 .json 和 .md 文件。论文的文件正在由S3担任text/plain,而不是正确的application/json和text/markdown。
我已更新存储桶默认值,以便新上传的内容类型正确。
遍历“树”并更新匹配特定扩展名的文件的内容类型的最佳方法是什么?
我有 IP 地址列表,我想查找与该 IP 地址关联的实例是否仍在运行或终止。我每天都在启动和终止大量实例,只想从 puppetmaster 中删除它们的证书。
如果有任何替代方法,我可以实现我的目标,我可以做到。
有什么方法可以查看 AWS 认为已在子网中分配的 IP 地址吗?我已经运行了 ping 扫描,并且检查了我们的内部 ip 管理软件,应该有超过 8 个 ip 可用,但是网络负载均衡器创建向导坚持认为我的可用 ip 少于 8 个。
如果我能看到亚马逊认为我们正在使用的 ips,那就太棒了,这样我就可以看到差异是什么,但我没有看到任何方法可以做到这一点。有人知道我该怎么做吗?它需要显示所有分配的 ip,而不仅仅是附加到 ec2 实例的 ip。
我有以下方案:
Internet <-> elb1external <-> 清漆 <-> elb2internal <-> targetgroupofwebnodes
但是有些/static/*&直接从& 第二个 ELB附近/media/*路由到,所以我需要两者targetgroupofwebnodeselb1externalvarnishelb1&elb2指向同一目标 Web 节点组。
当我尝试从第二个 ELB 的下拉列表中选择它时,Amazon Web 控制台将该组显示为灰色,但我确实看到在 Web 上提到了该方案。
作为我创建的解决方法 targetgroupofwebnodes2了相同的服务器,但我只需要 1 个,下一个任务是自动缩放,因此将有一个自动缩放组而不是目标组。
我必须为此使用 CLI 还是有办法通过 Web 控制台?
aws-cli ×10
amazon-ec2 ×4
amazon-s3 ×3
amazon-vpc ×2
amazon-elb ×1
puppet ×1
puppetmaster ×1
ssl ×1