https://gist.github.com/jc-lab/b80aa4183c0f8c3971260ac2ee49443d
기존에는 configure-pat.sh에
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
으로 되어있는데 이러면 내/외부 모든 패킷에 MASQUERADE가 적용되어 DNAT를 이용한 Port Forwarding시 Source IP가 NAT Instance의 IP으로 변하게 됩니다.
따라서 MySQL의 User에 IP Rule이 적용되어있으면 로그인 할 수 없게 되죠..
이를 해결하기 위해서는 외부망으로 다시 나가는 패킷에만 MASQUERADE를 해야 하는데
iptables -t nat -A POSTROUTING -o eth0 ! -d 내부망 MASQUERADE 으로 바꿔야 합니다.
Cloud 환경은 친절하게도 metadata url을 지원해서 내부망 IP를 자동으로 가져올 수 있습니다.
자동으로 위 처리를 해주는 스크립트로 변경하였습니다.
AWS에서 이렇게 진즉에 적용해주었음 참 고마웠을텐데요...
(그나저나 여담으로.. 뉴스는 안나왔지만 어제 밤 8시쯤 넘어서 언젠가.. 잠깐 AWS Console에 장애가 있었네요..
로그인도 안되고 창도 엄청 늦게 뜨거나 안나오고.. EC2/Lambda등 서비스에서는 문제없고 AWS Console에만 문제가 있었습니다. Console만져야 하는데 긴장좀 탔네요..ㅠㅠ)
반응형
'개발 및 운영 > AWS GCP Cloud' 카테고리의 다른 글
AWS VPC Endpoint 쓸 때 요금 폭탄 주의!! (0) | 2021.12.03 |
---|---|
[AWS] VPC 내에서 API Gateway 호출 시 Forbidden (1) | 2021.11.17 |
AWS Lambda 에서 인터넷 접속 (0) | 2021.11.16 |
CloudFront에 API Gateway를 사용할 때 403 Forbidden 오류 문제 (0) | 2021.11.03 |
AWS Lambda 기본 (삽질기) (1) | 2019.10.24 |
댓글