当前位置: 首页 > wzjs >正文

公司网站出现空白页推广服务公司

公司网站出现空白页,推广服务公司,产品展示网站模板,活动页面设计模板文章目录 aws(学习笔记第四十五课 route53-failover学习内容:1. 代码链接以及微调整1.1 代码链接1.2 准备hostedzone1.2.1 理解hostedzone1.2.2 提前创建hostedzone 1.3 代码修改1.3.1 从cdk.json开始1.3.2 修改app.py1.3.3 修改healthcheck_alarm_stack.py1.3.4 修…

文章目录

  • aws(学习笔记第四十五课 route53-failover
  • 学习内容:
    • 1. 代码链接以及微调整
      • 1.1 代码链接
      • 1.2 准备`hostedzone`
        • 1.2.1 理解`hostedzone`
        • 1.2.2 提前创建`hostedzone`
      • 1.3 代码修改
        • 1.3.1 从`cdk.json`开始
        • 1.3.2 修改`app.py`
        • 1.3.3 修改`healthcheck_alarm_stack.py`
        • 1.3.4 修改`hosted_zone_stack.py`
    • 2. 代码整体架构
    • 3. 代码解析
      • 3.1 对提前创建好的`hostedzone`进行`from_lookup`
      • 3.2 `FargateAppStack`的`Fargate`定义
      • 3.3 `HealthcheckAlarmStack`
        • 3.3.1 创建`primary health check`
        • 3.3.2 创建`failover.finlay.com`的`primary`
        • 3.3.3 创建`secondary health check`
        • 3.3.4 创建`failover.finlay.com`的`secondary`
        • 3.3.5 创建`snsTopic`
        • 3.3.6 创建`healthCheckMetric`
        • 3.3.7 对`healthCheckMetrics`创建`alarm`
        • 3.3.8 将`snsTopic`添加到`alarm`
    • 4 执行`stacks`
      • 4.1 创建`public hosted zone`
      • 4.2 执行`cdk`部署
      • 4.3 `primary`和`secondary`的两个`record`都会被创建
      • 4.4 `cleanup`

aws(学习笔记第四十五课 route53-failover

  • 使用route53
  • 尝试route53health check

学习内容:

  • 使用route53domain以及sub domain
  • 使用route53health check

1. 代码链接以及微调整

1.1 代码链接

代码连接(route53-failover)

1.2 准备hostedzone

1.2.1 理解hostedzone

这里理解hostedzone就是一个父domain的定义,在这个父domain里面,可以定义多个arecord,即子的sub domain
在这里插入图片描述

1.2.2 提前创建hostedzone

在这里插入图片描述
这里不采用cdk创建的方式,现直接创建hostedzone

1.3 代码修改

1.3.1 从cdk.json开始

修改如下设定:

  • domain : finlay.com
  • mail : 自己的email
  • primaryRegion : ap-northeast-1 # 这里是亚洲的region
  • secondaryRegion : ap-northeast-1 # 这里是亚洲的region
    在这里插入图片描述
1.3.2 修改app.py
  • region都修改成ap-northeast-1
  • AliasHealthcheckRecordStack暂时都注释掉
    在这里插入图片描述
1.3.3 修改healthcheck_alarm_stack.py
  • region都修改成ap-northeast-1
1.3.4 修改hosted_zone_stack.py

如下,将hostedzone修改成预先定义的形式,进行from_lookup调用。

self.zone = route53.HostedZone.from_lookup(self, "HostedZone", domain_name=domain)

在这里插入图片描述

2. 代码整体架构

在这里插入图片描述

  • 在两个Region ARegiono B,分别启动一个vpc,在里面分别启动一个Fargate,和一个NLB
  • 通过from_lookup,得到已经提前创建的hostedzone (finlay.com)。
  • hostedzone里面创建Failover Record(failover.finlay.com)。
  • 并对Failover Record分别注册一个primarysencondary分别指向两个RegionFargate
  • primarysecondary进行创建health check
  • 创建healthCheckMetric,对primay health check进行监视。
  • 创建healthCheckAlarm,添加alarm_actionsnsTopic
  • snsTopic进行subsribe,如果primaryFargate有问题,进行email通知。

3. 代码解析

3.1 对提前创建好的hostedzone进行from_lookup

前面的步骤创建了hostedzone。这里可以使用from_lookup进行使用。

class HostedZoneStack(Stack):def __init__(self, scope: Construct, construct_id: str, domain: str, **kwargs) -> None:super().__init__(scope, construct_id, **kwargs)# Test Env# self.zone = route53.PublicHostedZone(self, "HostedZone", zone_name=domain)# use below code to use already created hosted zoneself.zone = route53.HostedZone.from_lookup(self, "HostedZone", domain_name=domain)

在这里插入图片描述

3.2 FargateAppStackFargate定义

  • 定义一个vpc
  • 在里面定义ecs cluster
  • 定义Fargate service
  • 最后定义network
# Need to Change different app
class FargateAppStack(Stack):def __init__(self, scope: Construct, id: str, **kwargs) -> None:super().__init__(scope, id, **kwargs)# Create VPC and Fargate Cluster# NOTE: Limit AZs to avoid reaching resource quotasvpc = ec2.Vpc(self, "MyVpc",max_azs=2)cluster = ecs.Cluster(self, 'Ec2Cluster',vpc=vpc)self.fargate_service = ecs_patterns.NetworkLoadBalancedFargateService(self, "FargateService",cluster=cluster,task_image_options=ecs_patterns.NetworkLoadBalancedTaskImageOptions(image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")))self.fargate_service.service.connections.security_groups[0].add_ingress_rule(peer = ec2.Peer.ipv4(vpc.vpc_cidr_block),connection = ec2.Port.tcp(80),description="Allow http inbound from VPC")CfnOutput(self, "LoadBalancerDNS",value=self.fargate_service.load_balancer.load_balancer_dns_name)

3.3 HealthcheckAlarmStack

3.3.1 创建primary health check
# primary recordprimaryHealthCheck = route53.CfnHealthCheck(self, "DNSPrimaryHealthCheck", health_check_config=route53.CfnHealthCheck.HealthCheckConfigProperty(fully_qualified_domain_name=primaryLoadBalancer.load_balancer_dns_name,type="HTTP",port=80))

创建primaryHealthCheck,指向primaryLoadBalancer.load_balancer_dns_name
在这里插入图片描述

3.3.2 创建failover.finlay.comprimary
 primary = route53.ARecord(self, "PrimaryRecordSet",zone = zone,record_name="failover",target = route53.RecordTarget.from_alias(route53_targets.LoadBalancerTarget(primaryLoadBalancer)),)primaryRecordSet = primary.node.default_childprimaryRecordSet.failover = "PRIMARY"primaryRecordSet.health_check_id = primaryHealthCheck.attr_health_check_idprimaryRecordSet.set_identifier = "Primary"
3.3.3 创建secondary health check
       # secondary recordsecondaryHealthCheck = route53.CfnHealthCheck(self, "DNSSecondaryHealthCheck", health_check_config=route53.CfnHealthCheck.HealthCheckConfigProperty(fully_qualified_domain_name=secondaryLoadBalancer.load_balancer_dns_name,type="HTTP",port=80,))

创建secondaryHealthCheck,指向secondaryLoadBalancer.load_balancer_dns_name
在这里插入图片描述

3.3.4 创建failover.finlay.comsecondary
# secondary recordsecondary = route53.ARecord(self, "SecondaryRecordSet",zone = zone,record_name="failover",target= route53.RecordTarget.from_alias(route53_targets.LoadBalancerTarget(secondaryLoadBalancer)),)secondaryRecordSet = secondary.node.default_childsecondaryRecordSet.failover = "SECONDARY"secondaryRecordSet.health_check_id = secondaryHealthCheck.attr_health_check_idsecondaryRecordSet.set_identifier = "Secondary"
3.3.5 创建snsTopic

创建snsTopic,并且subscribe通知email

# cloudwatch metric & alarm to SNSsnsTopic = sns.Topic(self, "AlarmNotificationTopic")snsTopic.add_subscription(EmailSubscription(email_address=email))

在这里插入图片描述

3.3.6 创建healthCheckMetric
 healthCheckMetric = cloudwatch.Metric(metric_name="HealthCheckStatus",namespace="AWS/Route53",statistic="Minimum",period=Duration.minutes(1),region="ap-northeast-1",dimensions_map={"HealthCheckId": primaryHealthCheck.attr_health_check_id})

在这里插入图片描述

3.3.7 对healthCheckMetrics创建alarm
healthCheckAlarm = healthCheckMetric.create_alarm(self, 'HealthCheckFailureAlarm', evaluation_periods=1,threshold=1,comparison_operator=cloudwatch.ComparisonOperator.LESS_THAN_THRESHOLD)

在这里插入图片描述

3.3.8 将snsTopic添加到alarm
healthCheckAlarm.add_alarm_action(SnsAction(snsTopic))

在这里插入图片描述

4 执行stacks

4.1 创建public hosted zone

在这里插入图片描述
默认每个hostedzone会生成两个record
在这里插入图片描述

4.2 执行cdk部署

cd aws-cdk-examples/python/route53-failover
python -m venv .venv
source .venv/Script/activate
pip install -r requirements.txt
cdk --require-approval never deploy --all

在这里插入图片描述
创建将会花费一些时间。

4.3 primarysecondary的两个record都会被创建

在这里插入图片描述
注意,http://failover.finaly-renew.com 访问80端口,还是不好用,因为dns传播会花费一点时间。
注意,finlay.com在之前的学习中被创建了,虽然delete了但是还是会报错,这里使用finaly-renew.com

这里,虽然由于传播时间的原因failover.finlay-renew.com没有好用,但是
http://primar-farga-u8pxawhqffia-76faf5e45781a628.elb.ap-northeast-1.amazonaws.com/
已经有效。
在这里插入图片描述

4.4 cleanup

最后注意cdk destroy和删除hostedzone

http://www.dtcms.com/wzjs/796825.html

相关文章:

  • 网站迁移教材公维金如何上传建设局网站
  • 淘客个人网站怎么建设网站开发费会计分录
  • 昆明网站开发培训机构樟树有哪几个网站做爆药库
  • 网站开发 例子中国建设银行假网站
  • 网站开发浏览器兼容性千锋教育
  • 我要申请邮箱合肥seo公司
  • 江岸区建设局网站沧州百姓网免费发布信息网
  • 金属加工网站怎么做创建网站的注意事项
  • 手机网站菜单栏怎么做男女做a视频网站
  • 网站维护的内容主要包括学校网站集约化建设
  • 泉州专业建站公司网站开发怎么接入支付宝
  • 有哪些网站做国外生意的软件服务网站设计费如何做分录
  • 中国建设网官方网站地址免费发布信息的软件
  • 永久免费网站建立百度竞价广告投放
  • 有效的网站建设济源网站建设公司
  • 一个网站需要多少空间公众号模板制作精美
  • 传奇电脑版知名seo公司
  • 360网页游戏哈尔滨seo优化教程
  • p2p做网站视频制作平台
  • 大庆市让胡路区规划建设局网站湖南省建设工程造价管理站网站
  • 如何降低网站跳出率网络下载的网站模板能直接上传到虚拟主机
  • wordpress站点图标精准软件
  • 做内贸要在哪个网站找客户百度广州给做网站公司
  • 网站建设哪个公司做得好wordpress 手机端
  • 吉林省招标网官方网站wordpress右边小工具栏
  • 注册德国网站域名网站优化关键词
  • 什么软件做网站做好如何建设正规彩票网站
  • 网站建设公众号管理网站创意
  • 苏州做网站公司找苏州聚尚网络公众号开发者密钥有什么用
  • 温州企业网站排名优化郑州app制作开发