본문 바로가기

Data Engineering/Cloud

[AWS] Sagemaker Internet access / VPC access 차이

Sagemaker

AWS의 머신러닝 추론 서비스인 sagemaker를 사용할때면 항상 vpc와 subnet은 고려하지 않고 default vpc에서 사용했다.

그러나 이번엔 vpc를 만들고 opensearch를 해당 vpc의 private에 두었기 때문에 sagemaker 또한 해당 vpc에 구축해야 했다.

만든 후 sagemaker를 열었더니 커널이 pending 되지 않고 노트북도 열리지 않았다.

이후 퍼블릭 액세스와 vpc 액세스의 차이를 알게 됐고 지금 생각해보면 당연한 얘긴데, 일 하다보면 항상 숲이 아닌 나무를 보게 되는 것 같다 ..

VPC Access vs Internet Access

 

VPC 전용 

vpc를 만들면서 vpc내의 public한 서브넷에 sagemaker를 두고 private subnet에 있는 오픈서치에 접근하려고 했으나, 접근이 되질 않았다.

보안그룹 또한 오픈서치 Port (9200) 다 열어줬는데도 sagemaker가 노트북이 뜨다가도 커널이 pending이 되지 않는 둥, 오픈서치 타임 아웃이 나곤 했다.

opensearch에는 Nat가 붙어져있고 같은 vpc내에 있으니 피어링 할 필요 없이 private, public 둘다 리소스가 접근이 가능하다고 생각했다. 

공식문서를 보니, vpc 전용을 누른 경우, 인터넷 접속이 기본적으로 비활성화 되어있다고 하여, sagemaker public subnet이 아닌 private subnet을 사용했어야 한다고 한다. 

sagemaker에 public에 internet gateway가 붙어있는 것과 별개인 것 같다..

https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-vpc.html

하여, sagemaker도 private에 두어서 테스트해보니, 이들간의 통신이 잘되었다.

 

vpc전용 모드를 선택하여 해당 vpc를 선택할 시, private subnet에 두어 통신을 하면 시간 뺏길 일은 없을 것 같다.

vpc public을 선택할 시에, 해당 본인의 컴퓨터 ip가 우리가 설정한 vpc public한 환경에 있는것이 아니기 때문에, 접근 할 수 없었던 건가 싶다.

따라서 인터넷 접속을 허용하기 위해 퍼블릭 인터넷 액세스를 준 후, 가용성을 위해 private subnet a,c 에 둔다음 보안그룹으로 트래픽을 제한하기로 했다. 

 

결론

sagemaker를 퍼블릭 액세스 모드로 선택한 후, private subnet에 둔후, 보안그룹으로 트래픽을 제한하는 것을 추천한다.

sagemaker를 vpc 전용모드로 선택 한후 아래의 공식문서를 참고하길 바란다.

 

https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-default

 

Connect SageMaker Studio Notebooks in a VPC to External Resources - Amazon SageMaker

For a customer working within VPC mode, company firewalls can cause connection issues with SageMaker Studio or between JupyterServer and the KernelGateway. Make the following checks if you encounter one of these issues when using SageMaker Studio from behi

docs.aws.amazon.com

반응형