aws codedeploy 在ec2实例和autoscaling组上进行蓝绿部署

参考资料

  • https://docs.amazonaws.cn/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html
  • https://docs.amazonaws.cn/zh_cn/codedeploy/latest/userguide/applications.html
  • 为 EC2/本地蓝/绿部署创建部署组(控制台)

部署ec2比较简单,只需要创建EC2/On-premises类型的codedeploy应用,之后在应用中创建部署组

  • 部署组可以选择

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wHhL7yb0-1680197950824)(assets/image-20230331011101362.png)]

  • 在参考中可以找到示例程序,https://docs.amazonaws.cn/codedeploy/latest/userguide/resource-kit.html

下面主要内容为部署过程中的注意事项

启动4台ec2实例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-897xgRzO-1680197950827)(assets/image-20230331011536661.png)]

但凡是蓝绿部署,就必然要提供两组资源,下面的配置使用部署中的实例替换部署组中的实例

创建部署组,在部署组中指定green实例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ltJNyDyC-1680197950828)(assets/image-20230331012051093.png)]

在部署中指定blue实例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zyDcMenq-1680197950830)(assets/image-20230331012034706.png)]

创建部署,由于我们提供了blue组,因此创建资源的步骤直接被跳过

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mFFcN5ok-1680197950832)(assets/image-20230331012746054.png)]

可以查看具体实例的部署事件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-krhjVV53-1680197950833)(assets/image-20230331012302322.png)]

使用asg模板的额外权限问题

已经为codedeploy服务角色附加了AWSCodeDeployRole托管策略,但是仍旧出现以下没有权限的错误

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j1CGzhNo-1680197950834)(assets/image-20230331000203757.png)]

在cloudtrail中同样能够看到错误的调用记录(CreateAutoScalingGroupRunInstances),检查文档后发现

如果创建具有启动模板的 Auto Scaling 组,则必须添加以下权限:

  • ec2:RunInstances
  • ec2:CreateTags
  • iam:PassRole

部署位置已经存在

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-buAulbRF-1680197950835)(assets/image-20230331003418887.png)]

需要手动修改部署的覆盖配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Go0UAyCY-1680197950837)(assets/image-20230331011255068.png)]

部署过程

asg会创建额外数量的实例来完成部署

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-77D3qJCZ-1680197950838)(assets/image-20230331004632672.png)]

每个具体的部署都可以视为一个ec2实例的部署,我们在之前的文章中已经讨论过常见的单一实例部署错误的排查

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pXuvB5MU-1680197950839)(assets/image-20230331004706162.png)]

蓝绿部署生命周期

ec2进行蓝绿部署的生命周期示意图如下

img

替代实例的生命周期

C:\Users\ASUS\Nutstore\1\embedded\每日任务\assets\image-20230331004846505.png

旧实例的生命周期

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xYj3xmfu-1680197950842)(assets/image-20230331004949551.png)]

之后需要手动进行旧实例的terminate操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2evPipW7-1680197950843)(assets/image-20230331010149842.png)]

注意到原来的asg被删除,创建了新的asg作为替代,此时不要手动terminate实例,否则会导致asg删除失败

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DAdU32nu-1680197950844)(assets/image-20230331010535002.png)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/5797.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面试角度看问题:消息队列详解(万字长文,绝对值得一看)

面试角度看问题:消息队列详解前言一、消息队列是什么?二、为什么要使用消息队列?1.解耦2.异步3.削峰三、消息队列有什么缺点?1.系统可用性降低2.系统复杂度提高3.一致性问题四、如何保证消息队列的高可用?1.RabbitMQ 的…

zookeeper

目录 1.软件架构的发展 2.了解zookeeper 2.1概述 2.2zookeeper的应用场景 2.3安装zookeeper 2.4zookeeper客户端命令 3.zookeeper简单操作 3.1zookeeper的数据结构 3.2节点的分类 3.3java代码操作zookeeper节点 3.4zookeeper的watch机制 3.4.1介绍 3.4.2NodeCache…

ERD Online 4.0.11 在线数据库建模、元数据协作平台(免费、私有部署)

ERD Online 是全球第一个开源、免费在线数据建模、元数据管理平台。提供简单易用的元数据设计、关系图设计、SQL查询等功能,辅以版本、导入、导出、数据源、SQL解析、审计、团队协作等功能、方便我们快速、安全的管理数据库中的元数据。 4.0.11 ❝ :memo: fix(erd):…

5亿融资与重磅新品双发布,杉数以智能决策技术变革中国产业运营模式

2023年3月30日,由杉数科技举办的“智能决策重塑增长”2023杉数科技智能决策前沿峰会在北京举行。会上发布了杉数新一轮融资消息,同时,面向零售快消的决策优化产品计划宇宙(Planiverse)与面向工业制造的决策优化产品数弈…

Flink (四) --------- Flink 运行时架构

目录一、系统架构1. 整体构成2. 作业管理器(JobManager)3. 任务管理器(TaskManager)二、作业提交流程1. 高层级抽象视角2. 独立模式(Standalone)3. YARN 集群三、 一些重要概念1. 数据流图(Data…

C的实用笔记36——几种常用的字符串处理API(一)

0、const关键字 1、知识点:const是与存储相关的关键字,用作常量声明,修饰普通变量和指针变量,表示只读。const修饰普通变量:,修饰后变量从可修改的左值变成不可修改的左值 const修饰指针变量:分…

redis源码解析(四)——ziplist

版本:redis - 5.0.4 参考资料:redis设计与实现 文件:src下的ziplist.c ziplist.h 一、基础知识1、压缩列表的各个组成部分及详细说明2、列表节点3、encoding二、连锁更新三、ziplist.hquickList一、基础知识 压缩列表是Redis为了节约内存而开…

陌生人社交软件如何破冰?

据艾媒咨询的数据显示,2020年中国移动社交用户规模已达9.24亿人,预计2022年中国移动社交用户整体突破10亿人。而早在2020年,我国陌生人社交用户规模已经达到了6.49亿人,虽然增速有所放缓,但整体规模还是较为庞大。 艾媒…

操作系统笔记——进程管理

操作系统笔记——进程管理2. 进程管理2.1 进程与线程2.1.1 进程的引入前趋图程序的顺序执行程序的并发执行2.1.2 进程的定义及描述进程的定义进程的特征进程和程序的关系进程与作业的区别进程的组成2.1.3 进程的状态与转换进程的5种基本状态进程的状态的相互转换2.1.4 进程的控…

java常见锁策略分享(包括cas和synchronized的优化)

前言 锁策略学习思维导图: 1.常见锁策略 ① 乐观锁和悲观锁 ● 它们是根据锁冲突的预测,如果预测锁冲突比较小,那就是乐观锁,反之,就是悲观锁. ● 举个例子:高考前夕,我总觉得高考题会很难,然后拼命做各种科目的题,全副武装的去应对高考,而我妈则觉得高考只是人生的一个阶段而…

PCB模块化设计04——USB-Type-C PCB布局布线设计规范

目录PCB模块化设计04——USB-Type-C PCB布局布线设计规范USB Type-C功能介绍信号图示Type-C接口引脚定义USB 2.0差分对电源和接地引脚RX和TX引脚CC1和CC2针脚VCONN引脚SBU1和SBU2针脚USB供电PCB设计布线要求PCB模块化设计04——USB-Type-C PCB布局布线设计规范 USB Type-C US…

STC的官网,是我永远忘不掉的炼丹炉

搞电子的,应该都搞过8051搞8051的,那应该都搞过STC在国内,STC已经成为了8051的代名词http://www.stcmcudata.com/如果你刚开始搞嵌入式,应该学单片机,你学习单片机,就应该学习下8051,学习8051&a…

Python+Pygame实现简单的单词小游戏

语言是一种艺术,但是作为语言的基础——词汇,却不像艺术那样赏心悦目。不断的记忆与复习,让词汇成为很多孩子在学习英语时,最难完全攻克的关卡。本文就来用Python制作一个简单的英语单词游戏吧 前言 语言是一种艺术,但…

【ArcGIS Pro二次开发】(17):打开GDB、SHP、CAD等各种数据

一、打开GDB数据库 // 输入一个数据库路径string gdbPath "C:\Users\Administrator\Documents\ArcGIS\Projects\Test\Test.gdb";await QueuedTask.Run(() >{// 如果文件夹存在并且包含有效的地理数据库,则会打开地理数据库。using (Geodatabase geoda…

【单片机/普中A2】学习笔记1-配置环境与STC-ISP烧录

目录前言连接到开发板micro-usb 测试安装串口驱动烧写准备源码烧录前言 目前我们的开发需求很简单,仅需三个软件: keli5 编写代码proteus8 professional 描绘电路板STC-ISP 串口烧录 具体教程在 CSDN 等博客平台上已经有很多,这里就不再赘述…

(排序2)希尔排序

写希尔排序注意: 写新元素融入有序数组的过程(end&tmp)将这个过程给多次类比到需要排序的一串数据中 (for&while)排完一组不够,需要排gap组 (再来for)敲定gap下标关系: 希尔排序与直接插入排序的区别与联系 希尔排序的话也叫做缩小…

刷题笔记【3】| 快速刷完67道剑指offer(Java版)

本文已收录于专栏🌻《刷题笔记》文章目录前言🎨 1、斐波那契数列题目描述思路一(递归)思路二(循环)🎨 2、跳台阶题目描述思路一(递归)思路二(循环&#xff09…

03-03 周五 镜像安装sshd和jupyter以及修改密码

03-03 周五 镜像安装sshd和jupyter以及修改密码时间版本修改人描述2023年3月3日15:34:49V0.1宋全恒新建文档 简介 由于在镜像中需要进行jupyter和sshd的安装,并且需要进行密码的修改,因此在该文档中记录了这两个交互方式的工程设计。 在线加密 在线加密…

Pycharm创建自定义代码片段

简介 PyCharm允许您创建自定义代码片段,也称为代码模板,以提高您的开发效率 实现步骤 1.添加代码模板 打开PyCharm并导航到File->Settings,或者按快捷键ctrl alt s 打开设置 ​ 按照如下序号步骤进行点击,点击“”按钮以…

基于canvas画布的实用类Fabric.js的使用Part.3

目录一、基于canvas画布的实用类Fabric.js的使用Part.1Fabric.js简介 开始方法事件canvas常用属性对象属性图层层级操作复制和粘贴二、基于canvas画布的实用类Fabric.js的使用Part.2锁定拖拽和缩放画布分组动画图像滤镜渐变右键菜单删除三、基于canvas画布的实用类Fabric.js的使…