随着生成式 AI 技术的快速发展,开发者在构建云原生应用时正以前所未有的效率推进项目落地。而 Amazon Q,作为亚马逊云科技推出的专为开发者和 IT 人员设计的生成式 AI 助手,正逐步改变着我们与代码、基础设施以及 亚马逊云科技 服务交互的方式。
在本文中,我们将通过一个实际案例,展示如何使用 Amazon Q 从零开始构建一个内容分发网络(CDN),并生成 Amazon CDK(Cloud Development Kit)代码完成部署。整篇文章围绕"以 AI 为助力的云基础设施开发"展开,帮助读者理解如何将 Amazon Q 融入到日常开发流程中,提升基础设施即代码(IaC)的生产效率。
一、什么是 Amazon Q?
Amazon Q 是一款生成式 AI 助手,具备面向 亚马逊云科技 服务的深度集成能力。与传统的聊天 AI 不同,它深度融合 亚马逊云科技环境,能够完成以下几类任务:
- 回答关于亚马逊云科技 服务的技术问题
- 帮助用户理解控制台中的资源配置
- 生成基础设施代码(如 CDK、CloudFormation)
- 提供针对特定业务场景的架构建议
- 在 IDE 中辅助开发者编写、修改、调试代码
Amazon Q 可以嵌入在 亚马逊云科技 控制台、Amazon Cloud9、Visual Studio Code(通过插件)、Amazon Connect 甚至是 Slack 等工具中,真正实现"在你工作的地方提供智能帮助"。
如果你正构建自己的云端系统,Amazon Q 无疑是一个值得一试的高效助手,可以访问 亚马逊云科技 进行体验
二、场景背景:基于 CDN 的内容加速需求
在现代应用架构中,CDN(内容分发网络)已成为网站性能优化的标配。它通过在全球范围内部署边缘节点,缓存静态资源(图片、JS、CSS、视频等),从而缩短用户访问时延,减轻源站服务器压力。
我们希望构建如下功能的 CDN 系统:
- 使用 Amazon CloudFront 作为 CDN 服务提供商
- 后端源站为一个 S3 静态网站托管 Bucket
- 开启 HTTPS、自动压缩、缓存策略和 WAF 保护
- 使用 Amazon CDK 实现基础设施部署
- 最终目标是实现自动化、可维护、可重复的 IaC 架构
接下来,我们将借助 Amazon Q 完成从需求理解、架构设计,到 CDK 代码生成、部署与验证的全过程。
三、启动 Amazon Q:与 AI 助手对话
为了简化操作,我们选择使用托管在 Amazon EC2 实例上的 Visual Studio Code Server。
注册成功后,接下来,我们进入 亚马逊云科技 控制台,通过搜索 CloudFormation 来找到名为 CloudLabCampaignInfraStack-amazon-q-new-launch-reinvent2024 的 CloudFormation 栈。
在该栈的 Outputs 部分,我们记录下了用于访问 Visual Studio Code Server 的 URL 和登录密码。随后,我们通过点击 URL 打开了 Visual Studio Code Server,并在弹出的对话框中粘贴了之前记录的密码,成功登录并进入了 Visual Studio Code IDE。

为了能够使用 Amazon Q,我们需要在 Visual Studio Code 中安装 Amazon Q Developer 扩展。我们参考了提供的链接,按照指南完成了扩展的安装。安装完成后,我们开始设置 Builder ID,这是为了能够免费使用 Amazon Q 并访问某些开发人员工具和服务。我们按照提示登录了 Builder ID,并选择了相应的账户或创建了新账户,完成了认证过程。
我们可以在亚马逊云科技 控制台或 Visual Studio Code 中直接访问 Amazon Q。打开 Amazon Q 后,我们提出如下初始指令:
我希望构建一个基于 CloudFront 的 CDN 分发系统,源站是 S3 静态托管,能帮我生成 CDK v2 的 TypeScript 项目吗?

最后,我们进入了 Amazon Q 对话测试阶段,成功完成了 Amazon Q 与 Visual Studio Code 的集成,并准备开始使用 Amazon Q 进行开发工作。
在这一步,Amazon Q 会自动识别我们提出的架构需求,并返回一份完整的回答,包括:
- 架构建议图
- CDK v2 的依赖安装命令
- 初始化命令(
cdk init
) - TypeScript 项目的基础代码框架
- S3 Bucket 和 CloudFront 分发配置
- 如何部署与验证
此时我们已经有了一个高质量的"AI 起点模板",接下来我们进行实际的开发与测试。
四、使用 Amazon Q 构建 CDK 架构
4.1 初始化 CDK 项目
Amazon Q 提供了如下初始化建议:
bash
mkdir cdk-cdn-project && cd cdk-cdn-project
cdk init app --language typescript
随后,我们需要安装依赖:
bash
npm install @aws-cdk/aws-s3 @aws-cdk/aws-cloudfront @aws-cdk/aws-cloudfront-origins constructs
4.2 创建 S3 静态网站托管 Bucket
Amazon Q 生成如下 S3 资源代码片段:
php
const websiteBucket = new s3.Bucket(this, 'WebsiteBucket', {
websiteIndexDocument: 'index.html',
websiteErrorDocument: 'error.html',
publicReadAccess: true,
removalPolicy: cdk.RemovalPolicy.DESTROY,
autoDeleteObjects: true,
});
我们也可以让 Amazon Q 加入版本控制、阻止对象公共访问等更安全的策略,只需补充一句:
请将这个 Bucket 配置为更安全的托管方式,阻止公共访问,并启用版本控制。
Amazon Q 会返回优化版本的 S3 配置。
4.3 创建 CloudFront 分发配置
在 TypeScript 中,CloudFront 的配置通常如下:
php
const distribution = new cloudfront.Distribution(this, 'MyDistribution', {
defaultBehavior: {
origin: new origins.S3Origin(websiteBucket),
viewerProtocolPolicy: cloudfront.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
cachePolicy: cloudfront.CachePolicy.CACHING_OPTIMIZED,
},
defaultRootObject: 'index.html',
enableLogging: true,
comment: 'CDN for static site',
});
Amazon Q 会根据请求补充以下内容:
- 开启自动压缩(
compress: true
) - 使用自定义缓存策略
- 启用 geo-restriction、WAF 等功能(可根据需求继续对话)
4.4 添加输出信息与部署指令
我们可以请求 Amazon Q 加上输出 CDN 域名:
arduino
new cdk.CfnOutput(this, 'DistributionDomainName', {
value: distribution.domainName,
});
然后使用如下命令完成部署:
cdk deploy

五、Amazon Q 的优势总结
在整个实践过程中,我们充分感受到了 Amazon Q 带来的优势:
能力 | 体现 |
---|---|
快速生成 | 初始 CDK 项目和资源定义代码秒级生成 |
理解意图 | 能根据自然语言推断架构意图并建议服务搭配 |
上下文感知 | 在项目中引用已有资源命名并避免冲突 |
深度集成 | 与 亚马逊云科技控制台、IDE、CDK 工具链完美融合 |
持续优化 | 可以连续对话,不断迭代架构设计 |
与传统搜索和文档查阅相比,Amazon Q 更像一个全天候在线的"资深 亚马逊云科技 架构师",能快速理解需求、生成代码、解释用法,大幅提高构建效率。
六、最佳实践与建议
- 结合 Git 控制版本:使用 Git 管理 CDK 项目,每一次通过 Amazon Q 修改架构后 commit 记录,便于回溯。
- 利用 VS Code 插件提升效率:在 IDE 中使用 Amazon Q 插件,可以一边写代码一边提问和生成。
- 精细化 prompt 引导:提出明确的需求(如"加上 S3 强制加密策略"),可获得更符合预期的代码。
- 配合 CI/CD 自动化流程:让 Amazon Q 协助生成 CodePipeline 或 GitHub Actions 的 CI 流程。
- 持续测试与验证:每次部署后应验证资源状态、权限配置和访问效果,避免疏漏。
七、总结
本文通过实际案例,展示了如何借助 Amazon Q 快速实现一个基于 CloudFront 和 S3 的内容分发网络。我们不仅体验了从需求到架构设计、从代码生成到部署验证的全流程,还深入感受了生成式 AI 在云原生开发场景中的价值。
Amazon Q 不只是一个问答助手,更是开发团队的加速器,它让"基础设施即代码"真正落地到了"自然语言即代码"的新层次。