写点什么

AWS CDK 的那些事

用户头像
小铨
关注
发布于: 2021 年 03 月 27 日
AWS CDK的那些事


小铨,铨程互动科技创始人,诞生于 1994 年 7 月 24 日(农历),目前是一个码农,从事 PHP/GO 开发。一枚想让腾讯的马化腾,阿里巴巴的马云来挖我墙角的 90 后程序员。


AWS CDK 介绍

1.什么是 CDK?

AWS CDK,与使用 YAML(或 JSON)的声明式方法相比,CDK 允许您命令式声明基础设施。主要语言为 TypeScript,同时也支持另外几种语言。

2.为什么要使用 AWS CDK?

增强基础设施,为了操作 awk 的接口,对 awk 的实例等进行操作

3.aws-route53 是干啥的?

Amazon Route 53 是一种具有很高可用性和可扩展性的域名系统 (DNS) Web 服务。您可以使用 Route 53 以任意组合执行三个主要功能:域注册、DNS 路由和运行状况检查。如果选择使用 Route 53 来执行所有这三种功能:

  • 1)域名注册

  • 2)将 Internet 流量路由到您的域的资源

  • 3)检查资源的运行状况

如何使用 aws-route53

1.安装 aws-route53

## 方法一:python官方源安装pip3 install aws-cdk.aws-route53
## 方法二:阿里云镜像源安装pip3 install aws-cdk.aws-route53 -i https://mirrors.aliyun.com/pypi/simple/
## 方法三:使用pycharm直接安装
复制代码




2.添加托管区域

  • 添加公共托管区域

## 导入aws_route53别名为route53import aws_cdk.aws_route53 as route53
## 使用route53的PublicHostedZone方法来添加公共托管区域route53.PublicHostedZone(self, "HostedZone",## zone_name制定区域名 zone_name="fully.qualified.domain.com")
复制代码
  • 添加私有托管区域

使用PrivateHostedZone添加私有托管区域

enableDnsHostnamesenableDnsSupport必须已为正在为专用托管区域配置的专有网络。

## 导入ec2实例方法import aws_cdk.aws_ec2 as ec2## 导入route53方法import aws_cdk.aws_route53 as route53
## 实例化vpcvpc = ec2.Vpc(self, "VPC")
## 实例化私有区域zone = route53.PrivateHostedZone(self, "HostedZone", zone_name="fully.qualified.domain.com", vpc=vpc)
复制代码

注意:可以使用zone.addVpc()添加额外的 VPC。

3.添加记录

  • 为区域添加 TXT 记录

## 导入route53import aws_cdk.aws_route53 as route53
## 使用TxtRecord方法route53.TxtRecord(self, "TXTRecord", zone=my_zone, record_name="_foo", # 如果名称以“.”结尾,则按原样使用; # 如果它以“.”结尾,后跟区域名称,则会自动添加一个结尾“.”; # 否则,将自动添加“.”、区域名称和尾随的“.”。 # 如果未指定,则默认为区域根目录。 ## 值 values=["Bar!", "Baz?"], ## ttl刷新时间 ttl=Duration.minutes(90))
复制代码
  • 为区域添加一个 A 记录

## 导入route53import aws_cdk.aws_route53 as route53
## 使用ARecord方法,添加A记录route53.ARecord(self, "ARecord",## 指定zone名 zone=my_zone,## 指定目标主机 target=route53.RecordTarget.from_ip_addresses("1.2.3.4", "5.6.7.8"))
复制代码
  • 添加指向 cloudfront 分布的 aaaa 记录

## 导入route53import aws_cdk.aws_route53 as route53## 导入targetimport aws_cdk.aws_route53_targets as targets
## 使用AaaaRecord方法添加aaaa记录route53.AaaaRecord(self, "Alias", zone=my_zone,## 指定目标target=route53.RecordTarget.from_alias(targets.CloudFrontTarget(distribution)))
复制代码

结构可用于 A、AAAA、CAA、CNAME、MX、NS、SRV 和 TXT 记录。

使用CaaAmazonRecord构造轻松限制证书颁发机构,只允许向 Amazon 颁发域证书。

4.将记录添加到现有托管区域

  • 如果知道托管区域的 ID 和名称,可以直接导入

zone = HostedZone.from_hosted_zone_attributes(self, "MyZone",    zone_name="example.com",    hosted_zone_id="ZOJJZC49E0EPZ")
复制代码
  • 如果不知道托管区域的 ID 和名称,则需要使用HostedZone.fromLookup发现并导入

HostedZone.from_lookup(self, "MyZone",    domain_name="example.com")
复制代码


发布于: 2021 年 03 月 27 日阅读数: 17
用户头像

小铨

关注

小铨,铨程互动科技创始人 2021.03.26 加入

诞生于1994年7月24日(农历)目前是一个码农,从事PHP/GO开发。一枚想让腾讯的马化腾,阿里巴巴的马云来挖我墙角的90后程序员。

评论

发布
暂无评论
AWS CDK的那些事