현재 작업중인 서버는 postgresql을 RDS에 올려서 사용하고 있다. 현재 이 서버는 어디서든 접속이 가능한 상태이다. 이러한 상태가 되면 보안에 매우 취약해진다. 그래서 db를 사용할 때는 외부에서 바로 접속이 불가능하게 해 두는것이 보안상 좋다.
RDS 를 외부에 노출 시키지 않는 이유
가장 큰 문제는 역시 보안이다. db는 모든 정보들이 담겨져 있는 공간인데, 이것이 외부 네트워크에 노출이 되어 있으면 보안에 상당히 취약할 것이다. 어디서든 바로 접속할 수 있다는 단점이 있다. 그래서 VPC안에 있는 ec2를 통해서만 접속할 수 있게 한다. 또한 애플리케이션 서버 또한 안전하게 rds에 접속할 수 있다는 장점이 있다.
이러한 설정을 하게 되면 기존의 경우에는 db의 암호, 유저만 알면 쉽게 접근이 가능했으나 세팅을 마친 다음에는 ec2 접속을 위한 key 파일까지 필요하게 되어 보안이 한층 더 강화된다는 장점이 있다.
다음 그림은 rds 구성을 간단히 그림으로 그려 보았다.
ssh를 통해 ec2에 접속하고, ec2에서만 rds로 접속할 수 있게 네트워크 구성을 했다. 자세한 내용은 다음 링크를 참고했다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/rds-connect-ec2-bastion-host/
세팅하기
ec2 인스턴스 부터 세팅하자.
1. ec2 인스턴스 생성
2. rds db가 사용하는 vpc 선택
3. 서브넷 설정에서 인터넷 게이트웨이가 있는 서브넷을 선택한다.
4. 보안 그룹 설정에서 22번 포트는(만) 열어 둔다.
rds 세팅하자.
1. 연결할 rds 선택 -> 연결 및 보안 -> 보안 -> 보안 그룹
2. 작업 -> 인바운드 규칙 편집
3. type : 사용자 지정 tcp 규칙, protocol : tcp, port range : db의 포트, source : ec2 인스턴스의 프라이빗 ip 주소
이제 db를 보기 위한 프로그램 세팅을 하자.
원격 pc를 통해 db에 접근하는 것은 ssh-tuneling 또는 over ssh 라는 기능으로 포함되어 있을 것이다. 일반적으로 ec2에 접근하는 것 처럼 원격 세팅을 하면 접속에 성공할 것이다.
'서버 인프라 > Aws' 카테고리의 다른 글
AWS EC2 서버에 도메인 적용과 SSL 인증서 적용하기 (2) | 2021.09.26 |
---|---|
EC2 인스턴스 안에 있는 파일 로컬에 다운받기 (0) | 2021.09.16 |
EC2 리눅스 인스턴스 포트포워딩 하기 (0) | 2021.09.05 |
AWS S3 파일 전체(일괄) 다운로드 받기 (2) | 2021.09.02 |
AWS EC2 시작하기 (0) | 2021.01.29 |