## Private vs Public IP(IPv4)
- 网络有两种IP,IPv4和IPv6:
【资料图】
- IPv4:
- IPv6:3ffe:1900:4534:3:200:f9ff:fe22:57cf
- IPv4 在目前仍然是最普遍使用的网络 IP
- IPv6 更新一些,解决了物联网问题(IoT)
- IPv4 允许在公共空间中使用 37亿 个不同的地址
- IPv4地址范围:[0-255].[0-255].[0-255].[0-255]
* * *
## Private vs Public IP(IPv4) Example
Company A Private Network /22
↓↑
Internet Gateway(public)
↓↑
WWW
↓↑
Internet Gateway(public)
↓↑
Company A Private Network /22
* * *
## Private vs Public IP(IPv4) Fundamental Differences
- Public IP:
- 公共 IP 意味着机器可以在互联网上被识别
- 必须在整个互联网上是唯一的(两台机器不能拥有同一公共IP)
- 可以轻松被地理定位
- Pirvate IP:
- 私有 IP 意味着机器只能在私有网络中被识别
- 这个 IP 必须在私有网络上是唯一的
- 但是两个不同的私有网路(例:两个公司)可以有相同的私有IPs
- 可以使用 NAT,或者互联网网关(proxy代理)来连接WWW
- 只有指定范围的IP可以用作专用 IP
* * *
* * *
## Elastic IPs(弹性IP)
- 在停止 EC2 实例后再启动时,会被改变公共 IP
- 如果实例需要固定的公共 IP,则可以使用弹性 IP
- 弹性 IP 只要不删除,就可以一直拥有
- 一次可以附加到一个实例
- 不使用时一定要删除,否则需要付费
* * *
## Elastic IP
- 可以通过将弹性 IP 快速重新映射到账户中的另一个实例来掩盖实例或软件的故障
- 一个账户只能拥有5个弹性 IP(可以联系AWS要求增加数量)
- 总而言之,尽量避免使用弹性 IP:
- 一般来讲是个糟糕的架构决策
- 相反,应该使用随机公共 IP 并注册 DNS 名称
- 或者,使用负载均衡器,不要使用公共 IP
* * *
* * *
## EC2 Placement Groups(放置组)
- 有时你希望控制 EC2 实例放置策略
- 使用放置组可以定义放置策略
- 创建放置组时,可以为该组指定以下策略之一:
- Cluster(集群) - 将实例集群到单个可用区域中得到低延迟组
- Spread(展开) - 将实例展开放置在底层硬件上(每个AZ每个放置组最多7个实例)
- Partition(分区) - 在 AZ 中的许多不同分区上展开实例,每个组可扩展到100个 EC2 实例(Hadoop,Cassandra,Kafka)
* * *
### Cluster
Same Rack,Same AZ → EC2-EC2-EC2-EC2-EC2-EC2(Low latency 10 Gbps network)
<br>
- Pros:网络好(启用增强网络10Gbps实例间通信,推荐)
- Cons:如果 Rack 失败,所有实例都会在同时失败
- 用例:
- 需要快速完成的大数据作业
- 需要极低延迟,和高网络吞吐量的应用程序
* * *
### Spread
Us-east-1a → Hardware1 → EC2
Us-east-1a → Hardware2 → EC2
Us-east-1b → Hardware3 → EC2
Us-east-1b → Hardware4 → EC2
Us-east-1c → Hardware5 → EC2
Us-east-1c → Hardware6 → EC2
<br>
- Pros:
- 可以跨 AZ
- 降低同时失败的风险
- 在不同的物理硬件上
- Cons:
- 每个放置组限制 7个 实例
- 用例:
- 需要最大化高可用性的应用程序
- 关键应用程序,其中每个实例必须相互隔离故障
* * *
### Partition
Us-east-1a → Partition1 → EC2-EC2-EC2-EC2
Us-east-1a → Partition2 → EC2-EC2-EC2-EC2
<br>
Us-east-1b → Partition3 → EC2-EC2-EC2-EC2
<br>
- 每个 AZ 最多 7个 分区
- 可以跨越同一地区的多个 AZ
- 多达 100个 EC2 实例
- 分区中的实例不会与其他分区中的实例共享 Racks
- 分区失败可能会影响很多 EC2,但不会影响其他分区
- EC2 实例可以作为元数据(metadata)访问分区信息
- 用例:HDFS,HBase,Cassandra,Kafka
* * *
* * *
## Elastic Network Interfaces(ENI)
- 代表虚拟网卡的 VPC 中的逻辑组件
- ENI 可以有以下属性:
- 主要私有 IPv4,一个或者多个二级 IPv4
- 每个私有 IPv4 有一个弹性 IP(IPv4)
- 一个公共 IPv4
- 一个或多个安全组
- 一个 MAC 地址
- 可以多利创建 ENI,将他们实时附加,或移动到 EC2 来进行故障转移
- 绑定到特定 AZ
* * *
* * *
## EC2 Hibernate(冬眠)
- 可以暂停,或者终止实例
- Stop(暂停):Disk(EBS)的数据在下次开始时保持不变
- Terminate(终止):任何同时设置为终止时销毁的 root EBS 卷都会丢失
- EC2 首次启动时,会发生:
- 首次启动:OS 启动,EC2 User Data 脚本运行
- 之后启动:OS 启动
- 应用程序启动,缓存热身,需要时间
- EC2 Hibernate Introducing
- 保留内存(RAM)状态
- 启动实例速度更快(OS未停止/重启)
- 内部状态:RAM 状态被写入 root EBS 卷中的文件
- root EBS 卷必须被加密
- 用例:
- 长期处理
- 保存 RAM 状态
- 需要时间进行初始化的服务
* * *
## EC2 Hibernate - Good to know
- 支持的实例系列 - C3,C4,C5,I3,M3,M4,R3,R4,T2,T3,...
- 实例 RAM 大小 - 必须小于 150GB
- 实例大小 - 不支持裸机实例(bare metal instance)
- AMI - Amazon Linux2,Linux AMI,Ubuntu,RHEL,CentOS & Windows...
- RootVolume - 必须是被加密的,容量足够大的 EBS卷,不能是 Instance store(实例存储)
- 适用于按需实例,保留实例和现货实例
- 冬眠不能超过 60天
* * *
* * *
* * *
标签: