• AWS 学习笔记之 VPC


    原文:https://ericfu.me/aws-notes-vpc/

    VPC

    • 把 VPC 想象成一个逻辑上的数据中心
    • 包含一个 IGW (Internet Gateway)或者 Virtual Private Gateway,Route Tables,Network ACLs,Subnets,Security Groups
    • 1 个 Subnet = 1 个可用区
    • Security Group 是有状态的,Network ACL 是无状态的
    • VPC 可以连接(peer)起来,甚至可以连接不同 AWS 账号的 VPC
    • 不能 transitive peer!如果 A 和 B 相连,B 和 C 相连,A 和 C 是联通的,必须手动连接 A 和 C

    NAT Instance

    • 创建 NAT instance 的时候要关掉 Source/Destination Check
    • NAT instance 必须放在 public subnet 里
    • 必须有一个 Elastic IP
    • 必须有一个从 private subnet 到 NAT instance 的路由
    • NAT instance 支持的流量取决于 instance size,如果不够用只能增加 instance size
    • 如果要 HA,可以利用 Autoscaling Group 为不同 AZ 的 subnet 创建 NAT instance

    NAT Gateway

    • 很新,很可能不出现在考试中
    • 可以自动伸缩,最大支持 10Gbps
    • 不用管补丁
    • 不用管 security group
    • 不用手工禁用 Source/Destination Check
    • 自动分配 IP 地址
    • 记得要更新 Route table

    Network ACLs

    • VPC 创建的时候会自动创建一个 default network ACL,允许所有 outbound 和 inbount 流量
    • 你可以创建自定义的 network ACL,默认情况下,新创建的 network ACL 阻止所有连接(为了安全考虑)
    • VPC 里的每个 subnet 必须要指定一个 network ACL,如果你没有显式的指定 network ACL,那就是用 default network ACL
    • 一个 subnet 只能指定一个 network ACL;但 network ACL 可以被指定给多个 subnet。注意,当你把一个 network ACL 指定给某个 subnet 的时候,subnet 之前设定的 network ACL 就被挤掉了,不能共存(以上两点和 Route table 很相似)
    • Network ACL 的每条 rule 都有一个序号,序号决定了 rule 执行的循序
    • Network ACL 包含两张表:inbound rules 和 outbound rules,每个 rule 可以是 allow 或者 deny
    • Network ACL 是无状态的。也就是说,对允许进入的流量也可能会被拒绝出去,反之亦然(区别于 security group)
    • 可以用 Network ACL 来 block 某些 IP 地址(段),security group 则不行

    NAT vs Bastions

    • NAT 用来给 private subnet 里的机器提供 internet 访问
    • Bastion 用来安全地管理 private subnet 里的机器,也可以称为跳板机

    容灾架构

    • 如果你想保证容灾性,至少保证 2 个 public subnets 和 2 个 private subnets,保证它们不在一个可用区
    • 保证 ELB 横跨你的多个可用区
    • 对于 Bastion instance,把它放在 autoscaling group 里,保证至少有 2 个节点工作,用 Route53 来做 fail over
    • NAT instance 就比较麻烦了,每个 public subnet 里需要放一个,各自分配一个 IP 地址,而且你要写一个脚本来做 fail over。如果可能的话,用 NAT gateway 来代替

    VPC Flow Logs

    用来监控 VPC 里的网络流量。

  • 相关阅读:
    spring+hibernate常见异常集合
    Java报错原因汇总
    java常见异常集锦
    连接池 druid(阿里巴巴的框架)
    企业支付宝账号开发接口实现
    Maven使用常见问题整理
    MySQL的分页
    Struts2中通配符的使用
    Centos下安装mysql 总结
    将linux用在开发环境中
  • 原文地址:https://www.cnblogs.com/wangjq19920210/p/13029290.html
Copyright © 2020-2023  润新知