작성
·
36
0
안녕하세요 강의를 듣고 실제 소규모 앱 프로젝트에 AWS 서비스를 활용해 봤습니다. 현재 상황은
앱 프로젝트용 VPC 생성
public subnet 1개, private subnet 2개
백엔드 서버(개발, 배포)용 EC2 instance
public subnet에 위치
탄력적 IP 할당
bastion host용 EC2 instance
public subnet에 위치
탄력적 IP 할당
RDS(mysql)
private subnet 2개에 위치
보안을 위해 RDS를 private subnet에 위치했고, 허용된 IP만 bastion host를 통해 DB에 접근할 수 있도록 이렇게 구성했습니다.
질문 1. 소규모 앱 프로젝트용으로 이러한 구성은 괜찮은가요? 굳이 Bastion host를 생성하지 않고 백엔드 서버용 인스턴스를 통해서 RDS에 접근해도 되지 않나 싶어서요
질문 2. 보안그룹과 관련해서 고민이 있는데 팀원들이 백엔드 서버에 SSH로 접속을 할 때
팀원 -> 백엔드 서버
팀원 -> bastion host -> 백엔드 서버
두 방식중 어느 것이 더 권장되는 지 궁금합니다.
답변 주시면 감사하겠습니다
답변 2
0
안녕하세요.
아키텍처에서 무엇이 더 "좋은가", 혹은 이게 "괜찮은가" 에 대한 판단을 하려면 명확한 기준이 있어야 합니다.
이 기준은 정말 다양한데 비용, 사용량, 팀원의 AWS 이해도, 현재 단계(개발 전인지, 운영중인지 등) 등 고려할게 많아요.
예시를 들면 좀 극단적이지만 간단한 팀 프로젝트거나 투자받지 않은 초기 스타트업에서 2명이서 시작하는 프로토타입이라면 Bastion 이런거 필요 없이 DB모두 퍼블릭으로 두고 직접 인터넷 접속해도 됩니다. 유저도 하루에 한명 들어올지 모르고 뭘 지키거나 할 데이터도 없을태니가요.
하지만 동접이 수십만이 되는 어플리케이션의 아키텍처가 이런 수준이라면 문제가 많이 있겠지요.
따라서 뭔가 답변을 드리기에는 내용이 부족해서 적절하게 답변을 드리기가 어렵습니다.
일반적인 내용으로 조언을 드리면 개발용 인프라와 실제 배포되어서 운영되는 인프라의 수준을 분리하시고 개발쪽은 최대한 개발하기 편하게, 실제 운영 되는 인프라는 꼼꼼하게 신경써서 구축하시는걸 추천합니다.
0
안녕하세요, 인프런 AI 인턴입니다. canach3님.
AWS 환경에서의 보안과 네트워크 구성을 고민하시는 모습이 인상적입니다. 소규모 앱 프로젝트에서도 보안은 중요한 요소이니, 검토하신 내용을 바탕으로 조언을 드리겠습니다.
소규모 앱 프로젝트에서 Bastion host를 두는 것은 일반적으로 보안성을 강화하기 위한 좋은 방법입니다. Bastion host를 통해서만 민감한 데이터가 있는 RDS에 접근할 수 있도록 제한하면, 직접적인 접근 경로를 줄여 보안 사고의 위험을 낮출 수 있습니다. 하지만 백엔드 서버가 내부 네트워크에서 RDS에 직접 접근 가능하도록 설정되어 있다면, Bastion host를 생략하고 백엔드 서버를 경유해서 접근하는 것도 소규모 프로젝트에서는 실용적인 대안이 될 수 있습니다.
보안 관점에서 권장되는 방법은 “팀원 -> bastion host -> 백엔드 서버” 방식입니다. 이 방법은 다음과 같은 장점이 있습니다:
팀원들이 백엔드 서버에 직접적으로 SSH 접속을 하는 것보다는 Bastion host를 통해 접근을 중계하는 것이 보다 권장됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
그렇군요.. 생각해보니 하나의 정답만이 있는 게 아니라 목적에 따라 다 달라질 수 있는 건데 잊고있었네요 감사합니다