AWS Gateway Load Balancer (GWLB) in single VPC Quickstart

GWLB in single VPC Quickstart CloudFormation Template

一、架构说明

1、GWLB简介

关于AWS GWLB,之前构建过一个结合Transit Gateway的多VPC的GWLB方案,也就是所谓的集中式。集中式是指应用系统所在的VPC是没有GWLB Endpoint的,流量是通过Transit Gateway汇集到一个统一的VPC做流量检查。

本次构建的quickstart则是一个分布式检测架构。所谓分布式,是指整个架构不包含Transit Gateway,而应用系统VPC本身是包含GWLB Endpoint。未来增加第二个、第三个VPC时候,每个VPC都带有自己的GWLB Endpoint。所以这个架构,在只有一个VPC时候,看起来是Single VPC。如果有多个VPC,就是分布式流量检查架构。

本模版是针对是特定场景下的需求,如果是全新设计,建议按照GWLB最佳实践的架构进行组网。

本方案构建一个单VPC的网络检测方案。本文代码参考Github这里

Continue reading “AWS Gateway Load Balancer (GWLB) in single VPC Quickstart”

使用Keepalive机制在NAT后保持长链接

一、背景

1、NAT的长链接的局限

AWS云上的NAT/NLB/GWLB在针对长连接的场景上,存在350秒闲置超时的物理机制,且这是一个硬限制,无法通过开case提升limit的办法修改。这一限制的官方文档描述参考如下:NAT ,NLB ,GWLB 。

为了解决这一限制问题,需要同时在OS层、应用成打开keepalive设置,并且需要在服务器端和客户端分别配置。

Continue reading “使用Keepalive机制在NAT后保持长链接”

通过子域名授权的方式实现海外和国内分别使用Route53服务解析的方案

一、背景

1、使用单一域名按国家解析的挑战

有的客户希望在国内和海外采用单一域名运行,例如将域名部署在AWS全球的Route53服务上,并设置按照不同国家解析到不同Region的记录。此时,由于域名解析完全位于海外的DNS,国内的解析效果可能较差,存在解析不出来、同步延迟大等问题。如果由此将域名解析完全部署在中国区的Route53服务上,对国内用户体验良好,但是对海外用户又有解析失败概率提高的可能。

由此可采取授权子域名解析的办法。请看如下详细解释。

Continue reading “通过子域名授权的方式实现海外和国内分别使用Route53服务解析的方案”

ECS服务相关汇总

注:本文这套操作文档是按照2022年的AWS ESC容器服务的Console体验编写,2023年新的ECS Console已经推出。截图和文字有待更新。

容器基础1:构建Apache+PHP镜像DockerFile (更新了Amazon Linux 2023模版)

容器基础2:构建容器镜像并上传到ECR (更新了AWSCLI的ECR认证)

容器基础3:复制ECR上的镜像并指定新的Tag标签

ECS 201 Workshop(一)准备工作:配置IAM和任务定义

ECS 201 Workshop(二)发布ECS服务

ECS 201 Workshop(三)弹性扩展

ECS 201 Workshop(四)通过CodeDeploy实现蓝绿发布

ECS 201 Workshop(五)使用CLI发起CodeDeploy部署新的ECS版本

(六)使用为ECS Fargate使用Spot实例

(七)在ECS Fargate使用Session Manager登录到容器内的SSH进程

(八)在ECS容器服务上使用EFS文件服务提供持久化存储

构建基于 Amazon Linux 2/2023系统的Apache2+PHP 7.4/8 环境的容器Dockerfile文件

2024-07 更新了Amazon Linux 2023操作系统Apache+PHP8的模版

一、背景

1、启动脚本问题

构建容器用于AWS ECS服务和AWS EKS服务的时候,由于容器服务的启动endpoint只能是唯一的启动进程,而且必须处于前台,因此会面临无法同时启动php-fpm和httpd的问题。为了解决这个问题,可增加一个启动服务脚本,然后让容器调用这个单一脚本。

Continue reading “构建基于 Amazon Linux 2/2023系统的Apache2+PHP 7.4/8 环境的容器Dockerfile文件”

在ECS容器服务上使用EFS文件服务提供持久化存储

一、背景

EFS文件系统可以提供可靠的、持续的文件系统给多种服务,这其中也包括ECS容器服务。在容器场景上使用EFS的主要优势是可以简化管理,借助托管服务快速部署无须复杂运维,让ECS容器镜像的构建只需要关心应用程序本身,不需要将配置文件、数据文件打包到容器中。由此可实现容器的运行时和数据的分离。ECS Fargate和Fargate Spot都支持使用EFS文件系统,其中在Fargate Spot服务上搭配EFS,更可以借助EFS的持久化,避免Spot中断时候的数据持久保存问题。

Continue reading “在ECS容器服务上使用EFS文件服务提供持久化存储”

在ECS Fargate使用Session Manager登录到容器内的SSH进程

一、背景

之前介绍过使用System Manager套件中的Session Manager免密钥登录EC2,可参考这篇文章。针对ECS容器服务,因为开发、调试和运维的需要,也希望能登录到容器内部的shell上进行操作。此场景可使用ECS服务的exec功能在容器上执行shell命令的功能。

本文档适用于ECS Fargate和ECS Fargate spot,并在中国区测试通过。

Continue reading “在ECS Fargate使用Session Manager登录到容器内的SSH进程”

实验九、为私有NLB使用指定的、固定的内网IP地址

EKS动手实验合集请参考这里

EKS 1.30 版本 @2024-07 AWS Global区域测试通过

一、背景

在一些情况下,EKS部署的服务需要使用私有的NLB方式对VPC内的其他应用暴露服务,但是又不需要暴露在互联网上。这些场景可能包括:

Continue reading “实验九、为私有NLB使用指定的、固定的内网IP地址”

查询EKS创建的NLB所使用的IP地址

一、背景

AWS Elastic Load Balancer(简称ELB)有Application Load Balancer(简称ALB)和Network Load Balancer(简称NLB)两种。其中NLB是四层负债均衡器,常用于TCP/UDP协议的转发。又因为NLB支持使用固定的EIP或者内网IP作为流量入口,所以在特定场景下也会使用NLB转发HTTP和HTTPS流量。

NLB有两种类型,别分是Internet-facing和Internal NLB。前者用于直接对外提供互联网入口,对内连接到VPC内的内网资源;后者用于完全在VPC内的场景,其流量入口和目标组(Target Group)都是内网资源。

本文介绍如何查询NLB使用的IP地址。

Continue reading “查询EKS创建的NLB所使用的IP地址”

在Amazon Linux(CentOS)和Ubuntu系统的EC2上使用EFS服务

2年前写过一篇EFS挂载使用说明,一晃2年过去。EFS界面已经大幅优化,挂载命令对中国区支持也更加友好,不需要以前步骤的人工修改挂载点了。因此重新编写了本文档。

新版EFS操作界面简化了创建过程,可实现几次点击即可配置好EFS。本文描述如何创建EFS服务,并在Amazon Linux(CentOS)和Ubuntu系统的EC2挂载使用。

Continue reading “在Amazon Linux(CentOS)和Ubuntu系统的EC2上使用EFS服务”

HIPAA 定义的PHI

HIPAA 是《健康保险流通与责任法案》。 制定 HIPAA 是为了提高医疗保健系统的效率和有效性,并建立美国联邦安全标准来保护受保护的健康信息 (PHI) 的安全和隐私。

HIPAA is the Health Insurance Portability and Accountability Act. HIPAA was enacted to improve the efficiency and effectiveness of the health care system and establishes federal security standards to protect the security and privacy of Protected Health Information (PHI).

Continue reading “HIPAA 定义的PHI”