본문 바로가기
엔지니어링

AWS 와 GCP 에서 Docker 기반 인스턴스의 네트워크 차이(Compute Engine / EC2 ) - 포트포워딩

by 당나귀🐴 2022. 11. 8.
클라우드에서 제공하는 다양한 컴퓨팅 서비스들 중 가장 기본적인 서비스를 고르자면 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 와 매핑하는 작업이 필요합니다. 

참고 : https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_portmappings