[AWS] VPC로 Public/Private Subnet 설정

winluck·2024년 7월 27일
0

프로젝트 환경을 위해 AWS VPC로 Public Subnet에는 Springboot를, Private Subnet에는 DB 서버를 배치할 것이다.

VPC 생성

먼저 [VPC] - [VPC 생성]을 눌러 CIDR 블록을 설정하고 VPC를 생성하자.

Subnet 설정

  • Springboot 서버는 외부에서 접근할 수 있도록 Public Subnet으로 설정할 것이다.
  • DB 서버는 Springboot 서버를 제외하고는 외부에서 접근할 수 없도록 막기 위해 Private Subnet으로 설정할 것이다.

[서브넷] - [서브넷 생성]을 눌러 서브넷을 생성하고, VPC ID로 방금 만든 VPC를 선택한다.
이후 서브넷 CIDR 블록을 채워 서브넷을 생성한다.

[그룹]-[범위]-[이름]-[가용영역]의 형태로 작명하면 편리하다.
예) 팀이름-public-app-a

인터넷 게이트웨이

[인터넷 게이트웨이]로 이동하여 인터넷 게이트웨이를 생성하고, 앞에서 생성한 VPC를 붙인다.

라우팅 테이블

이제 생성한 VPC 인스턴스를 클릭하고, [기본 라우팅 테이블]로 이동하여 수정한다.
라우팅에서 [라우팅 편집]을 누른다.

0.0.0.0/0 외부 IP 대역의 경우 외부로 나가도록 설정해야 한다.
igw를 눌러 아까 만든 인터넷 게이트웨이를 선택하면, 이제 이 서브넷은 Public Subnet이 된다.

Private subnet은 외부에서 접근하면 안 되기 때문에, 별도의 라우팅 테이블을 생성하여 아까 만든 VPC를 연결해주고 위 과정 없이 Private Subnet과 명시적으로 연결해준다.

이제 Public Subnet은 Public 라우팅 테이블을 갖고, Private Subnet은 Private 라우팅 테이블을 갖게 된다.

NAT 게이트웨이

private subnet에 있는 EC2가 업데이트 등을 위해 인터넷에 접근하려면 NAT 게이트웨이를 생성해주어야 한다.
이 때의 서브넷은 public subnet으로 지정해준다.

이후 private subnet의 라우팅 테이블을 수정해준다.

EC2 생성

이제 만들어둔 네트워크 환경에 EC2를 배치하자.

  • Public Subnet에는 클라이언트의 요청을 처리하기 위한 Springboot Application EC2를 생성하며, 이를 위해 [네트워크 설정] 에서 VPC와 Public Subnet을 선택한다.
  • Private Subnet의 경우 Redis 및 mySQL을 위한 EC2를 생성하며, 마찬가지로 동일 VPC 및 Private Subnet을 선택하면 된다.

public subnet으로 들어간 후 ssh 명령어를 통해 private subnet으로 들어갈 수 있다.

이제 mySQL과 Redis를 설치하고 public subnet에 서 있을 Springboot 서버가 접근할 수 있게 포트를 열어두어야 한다.

profile
Discover Tomorrow

0개의 댓글