我使用 CloudFormation 向我的 VPC 添加了一个 VPC 端点,并允许使用 s3。这些路由在 AWS 控制台中可见,但在 EC2 实例的本地路由表中不可见:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.29.4.129 0.0.0.0 UG 0 0 0 eth0
169.254.169.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
172.29.4.128 0.0.0.0 255.255.255.128 U 0 0 0 eth0
Run Code Online (Sandbox Code Playgroud)
如何验证 VPC 中的 EC2 实例实际上使用 S3 的 VPC 终端节点,而不是可用的互联网连接?
我最近设置了一个 AWS Elasticsearch 域,但我没有找到停止它的方法(就像使用 EC2 实例一样),这意味着我一直在向我收费。在这个阶段,我只需要做一些测试,不需要全职集群。
我看到的唯一选择是删除域,我错过了什么吗?
考虑在 AWS Route53 上注册的域。对此域的 HTTP 请求应由 AWS CloudFront CDN 分配提供。为了实现这一点,A定义了一个别名记录:
dig 结果但是,dig结果显示的是实际 IP 地址。事实上,这些 IP 地址并不是固定不变的,并且会随着时间而变化:
# dig @1.1.1.1 serverlessdaystlv.io
...
;; ANSWER SECTION:
serverlessdaystlv.io. 60 IN A 13.32.67.21
serverlessdaystlv.io. 60 IN A 13.32.67.27
serverlessdaystlv.io. 60 IN A 13.32.67.97
serverlessdaystlv.io. 60 IN A 13.32.67.122
serverlessdaystlv.io. 60 IN A 13.32.67.141
serverlessdaystlv.io. 60 IN A 13.32.67.159
serverlessdaystlv.io. 60 IN A 13.32.67.201
serverlessdaystlv.io. 60 IN A 13.32.67.216
# dig @1.1.1.1 serverlessdaystlv.io
...
;; ANSWER SECTION: …Run Code Online (Sandbox Code Playgroud) domain-name-system alias amazon-cloudfront amazon-web-services amazon-route53
我最近使用 Fargate 和 Aurora Serverless 将一个小型 Web 应用程序迁移到 AWS。该应用程序没有太多流量,所以我的目标是在没有人使用它的情况下节省成本。Aurora Serverless 似乎在数据库端自动为我做这件事。
但是,我正在努力寻找有关如何将 Fargate 服务扩展到零的任何资源。
它前面有一个 ALB,我知道 ALB 请求计数可用于扩展……所以理想情况下,当在 10 分钟内平均有 0 个请求时,该服务将缩减到零个任务。然后当一个请求进来时,它会触发服务的一项任务的扩展。
我今天需要启动一个新的 EC2 实例,并决定试用新的Spot 实例,您可以通过竞标您准备支付的每小时最高价格来降低实例成本。由于今天的现货价格仅为 3.5c/小时,而按需实例的价格为 8.5c/小时,我想知道:如果我只是出一个非常高的价格,比如 10c/小时,我是否能有效地确保获得一个长期运行的实例比按需实例便宜得多(因为现货实例仅按当前现货价格收费)?
我认为现货价格理论上有可能超过按需价格,但据我从 AWS 网站上的数据来看,现货价格一直远低于该价格。
更新:我一直在监控小实例现货价格几个星期,它非常一致,仅在 2.9c 和 3.1c 之间变化。我写了一篇关于现货实例的更详细的博客文章,包括指向我为监控现货价格而构建的 Nagios 插件的链接。
我正在使用 Amazon EC2,并且(最终)设法从我的家用机器通过 SSH 连接到盒子中。现在我想从我的工作机器连接,但忽略了将密钥对复制到 USB 密钥上。
有没有办法在不删除实例的情况下下载现有的密钥对?
谢谢
是否可以创建多个私钥以通过 SSH 连接到 EC2 实例?对此的一般最佳做法是什么?我们有多个用户需要通过 SSH 连接到服务器,而分发一个密钥是行不通的。除非我们更改密钥并重新分发,否则这不允许我们将用户从 SSH 连接到服务器的权限中删除。
我在 S3 上托管一个静态站点,顶部是 CloudFront。我的问题是我的 HTML 文件。
Amazon CloudFront 使用这些缓存控制标头来确定检查源文件更新版本的频率
考虑到这一点,我已将 S3 Bucket 中的 HTML 文件设置为添加以下标头:
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Run Code Online (Sandbox Code Playgroud)
在我第一次调用 my 时samplefile.htm,我看到以下响应标头(Content-Type为了保持重点,我已经排除了明显的标头(例如):
Cache-Control:no-cache, no-store, max-age=0, must-revalidate
Date:Sat, 10 Dec 2011 14:16:51 GMT
ETag:"a5890ace30a3e84d9118196c161aeec2"
Expires:Fri, 01 Jan 1990 00:00:00 GMT
Last-Modified:Sat, 10 Dec 2011 14:16:43 GMT
Server:AmazonS3
X-Cache:Miss from cloudfront
Run Code Online (Sandbox Code Playgroud)
如您所见,我的Cache-Control标题在那里。问题是,如果我更新此文件并刷新,我将获得缓存内容(而不是最新文件),并且我可以通过查看响应标头看到 CloudFront 正在提供其缓存版本:
X-Cache:Hit from cloudfront
综上所述,在使用 CloudFront 时,如何实现自动检索最新的 HTML? …
我对 AWS 服务很陌生。我正在尝试使用 AWS 云格式并创建了一个模板。该模板没有错误,我可以使用它创建机器。
但是我在模板中添加了一些配置,以便在启动期间安装 tomcat、git 和其他东西。但这不会发生在我身上。
这是我用于安装 tomcat 的部分代码:
"Resources": {
"Tomcat": {
"Type": "AWS::EC2::Instance",
"Metadata": {
"AWS::CloudFormation::Init": {
"config": {
"packages": {
"apt": {
"tomcat6": [],
"git": [],
}
}
}
}
},
Run Code Online (Sandbox Code Playgroud)
但是当我登录机器时既tomcat没有git也没有安装!
提前致谢。
我将主/从数据库架构移至 Amazon RDS,一切正常。
但是我有一个来自 RDS 服务的从属服务器应该与新的主服务器保持同步,为此我必须将我的数据库域名 master-db.myawsserver.com 指向主(RDS)私有地址 IP。
AWS 控制台没有提供此信息,我直接连接到 MySQL 数据库。
amazon-ec2 ×4
amazon-s3 ×2
alias ×1
amazon-alb ×1
amazon-rds ×1
amazon-vpc ×1
autoscaling ×1
aws-fargate ×1
mysql ×1
mysql5 ×1
routing ×1
ssh ×1
tomcat ×1
ubuntu ×1