助力某电商系统平台成功迁移至AWS云项目案例-下篇
新钛云服已累计为您分享785篇技术干货
通过AWS遍布全球的基础设施,整个架构基础架构主要说明如下:
· 业务主要使用的资源有Amazon EC2、Amazon RDS、LB、CloudWatch等
· 为了保证可用性,服务器资源全部采用多AZ部署
· 为了提升数据库性能,此次迁移把原RDS数据库迁移到AWS RDS
· 静态资产(如图像和视频)存放在S3
· 业务流向为用户访问各个应用系统的LB前端地址,经过负载均衡转发至应用前端服务器,前端服务器对数据库和后端API的请求由内网LB进行负载转发
· 使用AWS监控服务CloudWatch进行性能级别监控
IAM角色创建
配置模版
迁移主机至AWS
可用性测试
迁移概述
数据引擎选型
传统数据库遇到的问题
计算和存储分离
安全组充当实例的虚拟防火墙以控制入站和出站流量。
当客户在 VPC 内中启动实例时,可以为该实例指定最多五个 VPC 安全组。
安全组在实例级别运行,而不是子网级别。因此,在 VPC 的子网中的每项实例都归属于不同的安全组集合。如果在启动时没有指定具体的安全组,实例会自动归属到 VPC 的默认安全组。
对于每个安全组,可以添加规则以控制到实例的入站数据流,以及另外一套单独规则以控制出站数据流。
此部分描述了需要了解的有关 VPC 安全组的基本信息以及它们的规则。
下面列出了在AWS中安全组的最佳实践:
· 不要在“默认”安全组中添加规则,应保证并锁定对入站和出站流量的默认最严格控制
· 面向外部网络的安全组应配置最严格受限的端口,仅按需开放端口
· 尽可能在应用堆栈中使用可参考的安全组避免源中包含过多实例,当源超过100时使用CIDR
· 使用不同的安全组区分不同类型的流量,例如应用流量和管理流量
· 所有安全组加总的规则应该少于50条,如果多余50条,分析原因并进行汇总
· 清楚不使用的安全组,因为他们会被计算在账户限制以内
· 使用AWS Config或CloudTrail监控安全组变更,跟踪变更内容及发起者
· 定期检查安全组是否符合定义的标准,在需要时设置告警或安排清除
· 限制能够更改和能够指定安全组的人员,以防火墙方式操作
1. 前端ELB安全组规划设计
协议类型 | 端口 | 源 IP | 备注 |
TCP | xxx | 0.0.0.0/0 | 允许来自任何 IPv4 地址的入站 HTTP 访问。 |
TCP | xxx | 0.0.0.0/0 | 允许来自任何 IPv4 地址的入站 HTTPS 访问 |
TCP | xxx | 0.0.0.0/0 | 允许来自0.0.0.0/0安全组的实例访问。 |
2. 应用安全组规划设计
协议类型 | 端口 | 源 IP | 备注 |
TCP | xxx | 内网 | 允许来自内网安全组的实例访问。 |
TCP | xxx | 内网 | 仅允许来自堡垒机的访问 |
3.数据库安全组规划设计
协议类型 | 端口 | 源 IP | 备注 |
TCP | xxx | 指定应用 | 允许来自指定应用安全组的实例访问。 |
IAM组名 | IAM策略名称 | 描述说明 |
OPS | SystemAdministrator | 系统运维人员组 |
Network | NetworkAdministrator | 网络安全人员组 |
DBA | DatabaseAdministrator | 数据库管理员组 |
Develop | ViewOnlyAccess | 研发人员组 |
Audit | SecurityAudit | 安全审计人员组 |
Admin | AdministratorAccess | 超级管理员 |
OPS | ||
策略名称 | SystemAdministrator | |
策略描述 | 此策略授予在各种 AWS 服务之间创建和维护资源的权限,设置和维护用于开发操作的资源。 | |
权限概览 | CloudTrail | 读取,配置日志记录 |
CloudWatch | 完全访问权 | |
Config | 完全访问权 | |
EC2、Auto Scaling | 读取,实例创建维护相关 | |
ELB、ELB V2 | 完全访问权 | |
IAM | 读取,PassRole | |
RDS | 读取 | |
SNS、SQS、S3 | 完全访问权 |
Network | ||
策略名称 | NetworkAdministrator | |
策略描述 | 此策略授予创建和维护网络资源的权限 | |
权限概览 | EC2 | VPC网络操作 |
ELB/ELB V2 | 完全访问权 | |
CloudWatch | 指标读写 | |
Direct Connect | 完全访问权 | |
IAM | 角色传递:flow-logs-* |
DBA | ||
策略名称 | DatabaseAdministrator | |
策略描述 | 此策略授予创建、配置和维护数据库的权限。其中包括对 AWS 数据库服务(如 Amazon DynamoDB、Amazon Relational Database Service (RDS) 和 Amazon Redshift)的访问权限。 | |
权限概览 | DynamoDB | 完全访问权 |
ElastiCache | 完全访问权 | |
RDS | 完全访问权 | |
Redshift | 完全访问权 | |
CloudWatch | 指标读写 | |
CloudWatch Logs | 日志流相关操作 | |
S3 | 读取、创建桶和对象 | |
SNS | 创建、订阅主题 |
Develop | ||
策略名称 | ViewOnlyAccess | |
策略描述 | 此策略授予针对大多数 AWS 服务的资源的 List*、Describe*、Get*、View* 和 Lookup* 访问权限 | |
权限概览 | AWS服务和资源 | 读取 |
Audit | ||
策略名称 | SecurityAudit | |
策略描述 | 此策略授予查看多项 AWS 服务的配置数据并检查其日志的权限。 | |
权限概览 | CloudTrail | 读取 |
CloudWatch Logs | 读取 | |
Config | 读取,合规性 | |
其他资源 | 读取 |
· 机密性-特定数据机密性级别A资源支持的标识符
· 合规性-用于符合特定合规性要求的工作负载的标识符
跨操作系统从 Amazon EC2 实例中收集更多系统级指标。
除了 EC2 实例的指标之外,这些指标还可以包括来宾中的指标从本地服务器中收集系统级别指标。
这些服务器可能包括混合环境中的服务器以及不是由 AWS 管理的服务器使用 StatsD 和 collectd 协议从应用程序或服务中检索自定义指标。
StatsD 在 Linux 服务器和运行 Windows Server 的服务器上都受支持。collectd 仅在 Linux 服务器上受支持。
从运行 Linux 或 Windows Server 的 Amazon EC2 实例和本地服务器收集日志可以在 CloudWatch 中存储和查看使用 CloudWatch 代理收集的指标,就像任何其他 CloudWatch 指标一样。
CloudWatch 代理收集的指标的默认命名空间为 CWAgent,但可以在配置该代理时指定不同的命名空间。
使用 S3 下载链接下载 CloudWatch 代理软件包 Centos: https://s3.amazonaws.com/amazoncloudwatch-agent/centos/amd64/latest/amazon-cloudwatch-agent.rpm Windows: https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi 其他系统的安装包参见AWS CloudWatch用户指南中的对应链接下载。 |
创建IAM角色和用户以用于CloudWatch代理
推荐阅读
推荐视频
微信扫码关注该文公众号作者