EC2 간의 통신을 위한 보안그룹 설정 시행착오

2020-08-25

.

EC2 간의 통신을 위한 보안그룹 설정 문제로 AWS 사용자 모임에 질문했던 내용으로 사소하고 기초적인 부분이지만 기능구현에 있어서 정말 중요하다고 느꼈음

[질문계기]

kafka broker(EC2)와 kafka client(=producer&consumer 역할을 위한 목적, EC2)을 각각 띄우고 통신을 하려고 했는데 통신이 안되는 현상을 발견해서 고민하다 질문하게 되었음

[질문글]

https://awskrug.slack.com/archives/C08A9550X/p1598351620075300

나 :

안녕하세요

기초적인 내용인거 같은데 제가 잘 몰라서 질문드립니다

A서버(ec2)와 B서버(ec2)가 9092 포트로 서로 통신을 하고 싶은데요.

보안그룹 설정만 봤을때 아래와 같이 All port를 서로 열어줬습니다. 이렇게 설정해주는게 맞나요?

맞게 설정한거 같은데 서로 통신이 안되고 있습니다ㅜㅜ

그래서 9092 포트를 0.0.0.0/0으로 열어주니까 그써서야 비로소 통신이 되는것을 확인했습니다.

9092 포트 0.0.0.0/0을 막으면 다시 통신이 안되는 상황입니다.

1111

유저 A의 답변 :

B서버가 속한 보안그룹 Source에

A서버가 속한 보안 그룹을 추가해주시면 되요.

포트를 특정하셔도 되고 전체를 다 오픈하셔도되고

유저 B의 답변 :

보안상 필요한 것만 열어주시는 걸 강추합니다~

나의 답변 :

답변감사드립니다. 말씀해주신대로 source에 보안그룹 아이디를 설정해줬는데요. 통신이 안되는 문제는 해결이 안되었습니다. 혹시 또 제가 체크해봐야할 부분이 있을까요

1111 (1)

유저 B의 답변 :

outbound도 혹시 뚫려있나요??

나의 답변 :

아웃바운드는 A,B 보안그룹 모두 올트래픽 전부 뚫려있습니다.

유저 B의 답변 :

혹시 서로 다른 VPC이거나 서로 다른 Account는 아닌가요?

나의 답변 :

A,B 모두 같은 VPC의 같은 서브넷입니다. 어카운트도 제 계정 한곳에서 작업을 했습니다.

A,B 서로 ping도 안되는거 보면 통신이 제대로 안되고 있는거 같습니다 ㅜㅜ

유저 B의 답변 :

그러면 해당 subnet의 route table을 확인해보셔야겠는데요..? ㅠㅠ

나의 답변 :

제가 설정한 subnet과 route table 정보인데요 혹시 제가 설정을 잘못한 부분이 있을까요

네트워크 쪽을 잘 몰라서 여러모로 헤매네요 ㅜㅜ

1111 (2)

유저 B의 답변 :

지금 혹시 ping <내부 IP="">는 되는데 ping <외부 IP="">가 안되는거에요?

나의 답변 :

예 맞습니다. ping private IP는 잘 되는데요. ping public ip 가 안되고 있습니다.

유저 B의 답변 :

그러면 아래와 같이 한 번 테스트해보면 좋을 것 같습니다.

A, B 서버 모두 ping 8.8.8.8 테스트 (아마 될거에요.. 네트워크 설정만 보면?)

1번이 되면, A의 SG에 B서버 IP 허용, B의 SG에 A서버 IP허용(기존 SG설정 없애지 마시고 추가! ) -> 이후에 다시 서로 ping test

가능하시면 내부통신하시는 게 좋을 것 같은데.. 왜 외부 통신을 하시는지 잘 모르겠네요.. ㅠ (당연히 사정이 있으시겠지만.. ㅎㅎ ;;)

나의 답변 :

우앗! 말씀해주신 2번에 대해서 설정해주니까 통신이 잘 됩니다 !!

통신하는 어플리케이션에 아이피 설정하는 부분에서 주소오타 실수도 있었네요 .. ㅎㅎ;;

사실 말씀하신것처럼 내부통신으로 해도 되는데요. 실습차원에서 해보는거라 외부통신으로도 해보고 싶었습니다.

도와주셔서 정말 감사드립니다 ^^

결론적으로

A,B 서버의 보안그룹에 각각의 아이피와 보안그룹 ID를 적용해주면 문제없이 통신이 잘 된다. 또한 어플리케이션에 아이피 설정하는 부분에 주소를 잘 썼는지 항상 확인해야 한다.

카프카 브로커 기준 보안그룹 설정방법

all 트래픽 : 브로커 자기자신의 퍼블릭 아이피, 클라이언트 퍼블릭 아이피, 클라이언트 보안그룹 아이디

ssh 포트 : 로컬피시 퍼블릭 아이피

1111