강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

BuildYourProgram님의 프로필 이미지
BuildYourProgram

작성한 질문수

실무에 바로 적용하는 AWS 배포

2.3 Elastic Load Balancer ↔️ EC2

2.3 Elastic Load Balancer ↔️ EC2

작성

·

17

0

안녕하세요 강사님! 강의 잘 듣고 있습니다.

ELB를 사용하면 웹 트래픽은 모두 ELB에서 받아서 Private Subnet의 EC2로 전달하는 구조가 보안적으로 더 안전하다고 알고 있습니다.
그래서 강의 내용을 따라가면서, EC2를 Public Subnet에 두는 이유가 무엇인지 궁금해졌습니다.

제가 이해한 바로는 아래 두 가지 때문이라고 판단했는데, 맞는지 확인 부탁드립니다.

  1. Private Subnet은 인터넷 직접 접속이 안 되어 apt update, 패키지 설치 등을 하려면 NAT Gateway가 필요한데,
    NAT Gateway는 비용이 발생해 초보자 실습에서는 과도한 비용이 된다.

  2. Public Subnet의 EC2는 인터넷에 직접 접속할 수 있어 패키지 설치나 초기 설정(nginx 설치, 코드 배포 등)이 훨씬 단순해진다.

즉, 보안적으로는 Private Subnet 배치가 더 적절하지만,
학습 난이도와 비용 문제 때문에 Public Subnet을 사용하는 것이라고 이해했습니다.

제가 이해한 내용이 맞을까요?


그리고 실무에서는 보통 말씀드린 것처럼 ELB는 Public Subnet, EC2는 Private Subnet 구조로 구성하는 것이 일반적인지도 궁금합니다.

답변 1

0

제이쓴님의 프로필 이미지
제이쓴
지식공유자

안녕하세요! 좋은 질문 감사합니다

TL;DR 하자면 이해하신 바가 100% 맞습니다.

보안상 Private Subnet에 어플리케이션을 두고 웹 트래픽은 Public Subnet에 있는 ELB로 받아서 연결하는게 맞습니다. 만약 Private Subnet에 있는 EC2에 ssh로 접근해야 한다면, 강의 후반부에서 안내 드리는 bastion을 활용하게 됩니다. 이름이 거창하지만 Private Subnet에있는 EC2에 연결하기 위해 사용하는 Public Subnet에 위치한 EC2입니다, 비용이 걱정된다면 bastion은 항시 운영할 필요는 없으니 필요할 때만 on/off를 진행하는 방식으로요.

bastion을 활용하는 이유는 소스코드에 접근을 어렵게 하기 위함이라고 보시면 됩니다. 개인적으로 보안 전문가는 아니지만 해커가 뚫으려고 하면 언제든 뚫릴 수 있다고 생각하는데요, 그래서 다양한 layer를 두고 뚫리는데 오래 걸리게 서비스를 구성하는 것이 가장 현실적이라고 생각합니다. 따라서 bastion이 털리더라도 소스코드는 안털릴 수 있기 때문에(bastion에 ssh key를 두는게 아니라면요) 조금 더 보안 측면에서 유리하게 서비스를 운영할 수 있습니다

 

감사합니다!!


말씀해주신 bastion 활용 방식도 이해되고, 보안 레이어를 단계별로 두는 이유까지 설명해주셔서 더 잘 정리되었습니다.
덕분에 아키텍처 구성이 한층 더 명확해졌습니다! 남은 강의도 잘 배워보겠습니다😄

BuildYourProgram님의 프로필 이미지
BuildYourProgram

작성한 질문수

질문하기