一、背景
在通过API创建EC2时候,需要提供几个基础参数,包括机型、AMI ID参数是必须显式指定的。其他参数是可选,如果不指定,AWS会使用默认的VPC、随机分配子网、默认的安全组等参数进行EC2创建。在这些参数中,没有名为Hostname
主机名的参数。不过,由于AWS的API支持传入Userdata,可以在创建EC2后自动在EC2上执行脚本,因此,指定主机名的功能可通过在创建EC2的请求时候加上一段Userdata脚本解决。
即将开启2024,一起沉浸在AWS学习的海洋!
Git, CodeCommit, CodeBuild, CodeDeploy
在通过API创建EC2时候,需要提供几个基础参数,包括机型、AMI ID参数是必须显式指定的。其他参数是可选,如果不指定,AWS会使用默认的VPC、随机分配子网、默认的安全组等参数进行EC2创建。在这些参数中,没有名为Hostname
主机名的参数。不过,由于AWS的API支持传入Userdata,可以在创建EC2后自动在EC2上执行脚本,因此,指定主机名的功能可通过在创建EC2的请求时候加上一段Userdata脚本解决。
Userdata脚本可以在创建EC2时候执行初始化配置。通过AWS Console网页控制台创建EC2时候,可以直接填写在页面上。如果是通过API创建EC2,使用封装的SDK调用,那么应该如何传递参数呢?请看本文例子。
Continue reading “通过Userdata在创建EC2时候修改Hostname主机名”CodeCommit是AWS推出的基于git的代码仓库服务,并可使用AWS IAM进行代码库的权限管理。本文以在宁夏区域创建代码库为例。
Continue reading “使用CodeCommit服务”1年前发过CodeDeploy+ECS蓝绿发布的文档,参考这里。
这次发布一个Code全线产品,包括CodeCommit+CodeBuild+CodeDeploy+CodePipeline的演示视频。
Continue reading “CodePipeline+EC2发布演示”在某特殊场景下,批量创建EC2且需要绑定EIP。
Continue reading “使用CloudFormation批量创建EC2并绑定EIP使用System Manager批量执行shell脚本部署应用”本文更新于2023年8月,加入了Amazon Linux 2023的查询方法
在CloudFormation中,如果采用hardcode方式嵌入了当前的AMI ID,那么在未来一段时间AMI版本升级后,旧的版本就会过期,导致新创建的环境都必须再次运行yum update进行版本升级。同时,当AMI版本达到一定时间后,因为版本较旧存在安全隐患,可能会下架无法调用,这时候CloudFormation就失效了不能在运行。由此,需要一个在CloudFormation中能使用调用到最新AMI的办法。
本文将分别介绍在AWS CLI下调用最新AMI ID和在CloudFormation中调用System Manager查询的方法。
Continue reading “在CLI和CloudFormation中使用最新AMI”前提条件:
Python脚本如下:
import boto3.ec2
client = boto3.client('ec2')
ec2action = boto3.resource('ec2')
response = client.describe_instance_status(
IncludeAllInstances=True
)
for i in response['InstanceStatuses']:
instance = ec2action.Instance(i['InstanceId'])
response1 = instance.stop(
#DryRun=True,
Force=True
)
print("instance: ", i['InstanceId'], "is being stopped." )
print(response1)
以上为关机脚本。如果需要批量开机,替换stop为start即可。
注:本实验针对已经在CodeDeploy图形界面上进行过部署的场景,因此CodeDeploy的Application、Deployment Group、Deployment configurations均为已经配置好的状态。本脚本目标是让整个流程通过CLI自动运行。
Continue reading “使用CLI发起CodeDeploy部署新的ECS版本”ECS是AWS自行研发的容器管理平台,相对于流行的K8S架构,ECS更加简单易用,学习门槛相对很低。此外,Fargate无服务器技术的支持,将ECS完全从管理底层架构中解放出来,用户不需要再去关心Node节点的EC2配置,而是只在乎启动的任务,非常便于高效、快速的将既有容器投入使用。
ECS 201 Workshop分成:
共四个部分。此外,在ECS实验之前,还有一个基础篇是如何Build容器镜像,请参考这里。
下面开始第四篇。演示视频如下:
Continue reading “ECS 201 Workshop(四)通过CodeDeploy实现蓝绿发布”在AWS CLI下,执行aws s3 ls命令的时候,报告如下错误。
An error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.
经过测试,执行其他CLI命令也会遇到相同的错误。
Continue reading “使用AWS CLI Profile时候遇到 报告”Key不存在” 的解决办法”由于AWS中国区和海外区的系统完全隔离,因此在日常使用过程中经常会遇到需要切换AWS CLI的Access Key的问题。例如当向国内的S3上传文件,需要运行 aws configure 配置一个国内的Access Key;当给海外传输文件的时候,需要一个海外AWS账户的Access key,如此切换非常不方便。这时候,可以通过设置Profile进行切换。
Continue reading “使用Profile切换AWS CLI认证区域”本文描述了如何从AWS CLI命令行工具管理创建并管理RDS Aurora for MySQL数据库集群。
首先在要操作API的Linux上或者本地Windows上,配置好API,且设置API的默认区域是要进行操作的区域。
请进入VPC界面,安全规则组的管理界面中,提前创建好一个数据库专用的安全组,并记录下他的ID,如下图,其中sg-0246xxxxx开头的这一串就是安全规则组ID,后续会用到。
Continue reading “使用AWS CLI创建RDS for MySQL数据库”中国区Route53目前是测试阶段,不提供UI,只提供命令行下CLI操作。因此需要用户从这里下载AWS CLI并配置好密钥。这部分基础操作这里略过。
注意,国内和国外环境,用的是同一个CLI工具。但是需要配置的密钥key不同。
Continue reading “使用AWS CLI操作Route53”在编写Cloudformation过程中,可以对特定VPC编写新的Security Group,例如,新建一个安全规则组叫做Web Server,放行TCP 22,TCP 80和ICMP Echo Request。
Continue reading “如何在Cloudformation中编写EC2 Security Group允许ICMP Ping访问”