亚马逊AWS官方博客
打造 CI/CD 平台:Jenkins 在 AWS 上的一键部署指南
![]() |
引言
随着软件交付速度和质量要求的不断提高,持续集成与持续部署(CI/CD)已成为现代开发流程的核心组成部分。Jenkins 作为业界最流行的开源 CI/CD 工具之一,拥有强大的插件系统和广泛的社区支持,为自动化构建、测试和部署提供了理想的解决方案。本文将介绍如何在 AWS 云平台上一键部署 Jenkins,实现一个高可用、易维护、可扩展的云端 CI/CD 平台,该方案已在多个项目中成功验证。
系统概述
Jenkins 是一款用于自动化各种开发任务的开源服务,具备以下核心特性:
- 支持流水线自动化(Pipeline as Code)
- 丰富的插件生态系统(Git, Docker, Slack, Maven, etc.)
- 易于配置和扩展的 Web UI
- 支持多种构建环境和节点管理
部署准备
1. 创建密钥对
在开始部署之前,需要创建 EC2 密钥对:
- 登录 AWS 控制台,然后进入 EC2 服务
- 选择”密钥对”→”创建密钥对”
- 输入密钥对名称,选择格式
- 下载并安全保存密钥文件
一键部署步骤
1. 启动 CloudFormation 堆栈
(1)点击链接下载 CloudFormation 模板:[下载链接]
(2)进入 CloudFormation 控制台页面创建堆栈:[控制台链接](进入控制台后请确保所在区域与创建密钥对所在的区域一致。)
![]() |
(3)选择现有模板->上传模板文件->选择之前下载的 CloudFormation 模板文件->下一步
2. 指定堆栈参数
(1)自定义堆栈名称
(2)AMI ID(默认为 Amazon Linux 2),下表为支持的 AMI ID
操作系统 | CPU 架构 | AMI ID |
Amazon Linux 2 | x86_64 | /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 |
ARM64 | /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-arm64-gp2 | |
Amazon Linux 2023 | x86_64 | /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64 |
ARM64 | /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-arm64 | |
Ubuntu 22.04 LTS | x86_64 | /aws/service/canonical/ubuntu/server/22.04/stable/current/amd64/hvm/ebs-gp2/ami-id |
ARM64 | /aws/service/canonical/ubuntu/server/22.04/stable/current/arm64/hvm/ebs-gp2/ami-id |
(3)实例类型(默认为 t3.large)
(4)点击下一步
![]() |
3. 配置堆栈选项
以下为可选配置:
- 标签
- 权限设置
- 高级选项
若无特殊需求,直接使用默认配置点击下一步即可
![]() |
4. 部署确认
- 检查配置摘要
- 确认 IAM 资源创建
- 提交部署,等待部署完成(部署时间约为十分钟)
![]() |
部署验证
1. 访问 CloudFormation 输出页面获取 Jenkins 的访问 URL(若打开页面出现错误,请等待一段时间后再次刷新页面即可):
![]() |
2. 系统登录验证:
(1)首次访问时,Jenkins 会提示输入管理员密码,可以通过图中命令读取初始密码
(2)复制密码后,粘贴到浏览器中
(3)点击 Continue 继续设置 Jenkins 即可成功登陆
![]() |
3. 成功登录 Jenkins
![]() |
最佳实践建议
当前部署方案采用直接通过 HTTP 访问 IP 地址的方式进行访问,这种方式存在一定安全隐患。为了提升系统的安全性和高可用性,我们建议您使用 Amazon Route 53 作为 DNS 服务[参考链接],将 IP 访问方式改为域名访问。Route 53 支持多种智能路由策略,能够根据用户的地理位置、健康检查结果等,将流量引导至最优的终端节点。同时,建议配合 AWS Certificate Manager (ACM),为域名申请和管理 SSL/TLS 证书,实现 HTTPS 加密传输,确保数据传输的安全性。
在流量入口层,我们推荐使用 Application Load Balancer(ALB)[参考链接]进行流量分发。ALB 不仅能均衡分配请求到后端实例,还支持基于 URL 的流量路由,提升系统的灵活性和扩展性。此外,结合 Auto Scaling Group [参考链接],可以根据实际负载自动扩展或收缩计算资源,在保障系统性能的同时有效优化成本。
结论
本文提供的 Jenkins 在 AWS 上的一键部署方案,通过 CloudFormation 充分体现了基础设施即代码(IaC)的实践精神。该方案显著降低了在云端搭建 CI/CD 平台的技术门槛,同时确保了部署过程的一致性与可重复性。依托 AWS 的可扩展基础设施,开发团队可以快速构建一个高效、安全的持续集成与部署环境,有效支撑现代 DevOps 流程。未来可通过与更多 AWS 服务集成,进一步提升系统的自动化能力、安全性与可维护性,优化开发体验。