> 返回资讯列表
news_article.exe
我用AWS建造了一个没有服务器的恢复站点. 这里的一切 打破沿途

我用AWS建造了一个没有服务器的恢复站点. 这里的一切 打破沿途

2026年9月8日6 次浏览来源:Dev.to 阅读原文

经过十年的保险业务,我决定通过做"云再生挑战"来使我的支柱成为云工程官员! 我想按照现实世界的最佳做法来建造它,因此除了挑战所提供的步骤外,我还装入了用CloudFront Origin Access Control保证的一桶S3私人水桶,一个专用的最小特权的IAM用户范围只为我的CI/CD管道所需的权限,并用Moto来嘲弄单位测试,因此在测试时没有任何东西触及真正的AWS资源. 网站在德里克杰克森现场,点击 它是通过CloudFront在HTTPS上空服务的一个静态回放,由Lambda动力的访客计数器支撑,完全被编入Terraform,并通过GitHub Actions自动部署. 我是这样建造的,更重要的是,所有的一切...

经过十年的保险业务,我决定通过做"云再生挑战"来使我的支柱成为云工程官员!

我想按照现实世界的最佳做法来建造它,因此除了挑战所提供的步骤外,我还加入了一个用CloudFront Origin Access Control安全的私人S3水桶,一个专用的最小特权的IAM用户范围只为我的CI/CD管线所需的权限,并且用Moto来模拟单位测试,在测试过程中没有任何东西触及真正的AWS资源.

网站在德里克杰克森现场,点击 它是一个通过CloudFront在HTTPS上空服务的静态回放,由Lambda动力的访客计数器支持,完全被编入Terraform,并通过GitHub Actions自动部署.

这就是我如何建造它, 更重要的是,一切 出了问题。

建筑前端:S3存储了静态站点,与Block Public Access完全私有.

CloudFront坐落在S3前,使用Origin Access Control(OAC),因此CloudFront可以读取私家桶.

AWS 证书管理器会签发 HTTPS 证书( 请求在 us- East-1 中, 无论其余的基础设施在哪里部署, 硬 CloudFront 要求) 。 53路主机主机域并持有将它指向CloudFront的别名记录.

后端:DynamomDB有单项,点播台为访客计数.

Lambda (Python) 解剖学上的增量,每一次请求都要考虑,避免同时来客的种族条件.

API Gateway(HTTP API)通过一个公开的端点曝光了Lambda在页面被加载时的前端呼叫.

操作:代码由本地编写,存储并编辑. 2.pyest和moto测试了Lambda的功能,在任何事物触及AWS之前,针对一个被完全嘲笑的DynamotB.

3.

测试成功后,将启动管道的密码输入。

4.

GitHub Actions 部署 S3 的前端修改和后端修改 Lambda 在每次推向. 5 (韩语).

Terraform编纂并进口了所有13个活资源.

小嗝嗝#1:我的域名注册只是.

失败之前,我甚至可以开始工作,我的"路由53"域名注册失败,一个非常无益的错误:"我们不能完成你的域名注册".

原因是我的账户从免费升级到付费计划 引发了AWS一方的欺诈警报 阻碍了注册 我开了一个支助案件,它又被分配两天,没有答复。

而不是无休止地等待, 我报名免费试用 商业支持+ 计划获得更快的反应时间, 并不断构建一切 不依赖于DNS(Terraform,测试,和GitHub) 同时。

一旦支助解决了他们端的欺诈旗子 域通过干净, 我准备好我的下一步!

教训:不要让第三方的依赖性受阻阻止你的进展.

真正的项目往往取决于你无法控制的外部因素.

专注于你能够控制的东西,希望,在你完成的时候,障碍将会得到解决.

Hitchup #2: 我的SSL 证书在我等待期间已死亡 随着我在域名上等待解决,好时光继续卷起,我要求获得ACM证书用于DNS验证.

如你所知,DNS验证需要一个53路主机区,由于域名没有注册,该区尚未存在.

鸡相会取蛋.

到了域名终于通通时,ACM已经放弃了,并将我的原始证书申请标记为FAILED.

当然,直到Terraform试图导入它时我才意识到这一点,AWS彻底拒绝了进口"不存在任何与给定的ID相关的对象".

我直接与AWS CLI()核实了故障,而不是只相信Terraform错误,证实它真的死了,并要求在主机区存在后重新认证.

干净的验证,没有戏剧第二次。

课:总是验证出源错误.

资源也可能在等待别的东西时无声地失效。

每当你准备好拿你的下一个S

> 分享: