엔지니어링
AWS 와 GCP 에서 Docker 기반 인스턴스의 네트워크 차이(Compute Engine / EC2 ) - 포트포워딩
당나귀🐴
2022. 11. 8. 09:55
클라우드에서 제공하는 다양한 컴퓨팅 서비스들 중 가장 기본적인 서비스를 고르자면 GCP 의 VM 과 AWS EC2 가 있습니다.
두 서비스 모두 Docker 기반으로 인스턴스를 생성하는 서비스를 제공하고 있는데, 외부에서 접근하려고 할 때 포트를 어떻게 개방해야하는지 알아보았습니다.
GCP Compute Engine / VM
참고 :
GCP 간단합니다.
- Docker Container 에서 사용하는 네트워크 스택이 Host VM 의 네트워크 스택을 그대로 이용합니다.
- Docker Network 설정 중 Host 와 동일합니다.
cf. 도커가 제공하는 네트워크 옵션은 다음과 같습니다.
참고 : https://docs.docker.com/engine/reference/run/#network-settings
bridge : 도커는 내부의 가상 네트워크를 생성한 후 해당 네트워크를 사용할 수 있습니다(veth interface).
- 도커의 기본 설정입니다.
host : 도커를 실행하는 host 의 네트워크를 이용합니다.
container : 다른 컨테이너에서 지정한 네트워크를 사용합니다.
none : 외/내부 네트워크를 사용하지 않습니다.
* gcp 의 vm 은 docker 의 host 와 비슷한 설정입니다.
AWS ECS / EC2
참고 : https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html
* 주의 : fargate 의 경우 fatgate 용 네트워크를 따로 찾아보시는 것을 추천드립니다.
AWS 의 EC2 의 경우 윈도우와 linux 에서 지원하는 네트워크 설정이 따로 지정되어 있습니다.
- 기본 설정은 default 혹은 bridge 로 gcp 처럼 host 와 동일한 네트워크를 사용하는 것이 아닙니다.
- gcp 처럼 host 설정도 지원합니다.
- 도커 내의 가상 네트워크를 사용한다면 host 와 매핑하는 작업이 필요합니다.