概念上一樣是不做 cross-zone NAT,反正 AWS 宣稱他們頂多是一次掛一個 AZ (?)
script 放在這邊
https://github.com/adaam/AWS-NAT/blob/master/NAT.sh
基本概念就是,一個 AZ 自己起一個 EC2 來管理自己 AZ 的對外需求,這樣差不多就有達到 HA-NAT 的要求,反正從外面看來你沒有把 AZ 全掛光看起來就還是正常在服務XD
要用這支script有幾個要求
- 要指定夠的權限 (IAM Role) 給 NAT 的機器,因為他要可以控制路由表還有改動子網路的路由對應關係。
- 要安裝好 jq ,因為需要解析很多 json 文件,這是我目前找到覺得最方便在命令列底下做事情的小程式,就不用在自己寫 python 之類的,簡單來說,就是懶XD
- 要先把 subnet 開好,指定好 Tag 的名字是 NeedNAT,值裡面就放 1,考慮到不是每個子網路都需要經過 NAT,就設計了這個 Tag 用來區別需要 NAT 跟不需要 NAT 的子網路
預計之後應該還是會找方法來實做 cross-zone 的 NAT,不過還需要一點時間來想要怎麼做溝通,heartbeat 感覺太肥,他的需求也不是我要的,我這邊只要簡單的偵測對方掛了沒,然後把路由表切到自己身上,等對方活過來再切回去這樣,不過還要考慮 3AZ 以上的情形,感覺有點棘手。
沒有留言:
張貼留言