프로젝트 환경을 위해 AWS VPC로 Public Subnet에는 Springboot를, Private Subnet에는 DB 서버를 배치할 것이다.
먼저 [VPC] - [VPC 생성]을 눌러 CIDR 블록을 설정하고 VPC를 생성하자.
[서브넷] - [서브넷 생성]을 눌러 서브넷을 생성하고, 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 라우팅 테이블을 갖게 된다.
private subnet에 있는 EC2가 업데이트 등을 위해 인터넷에 접근하려면 NAT 게이트웨이를 생성해주어야 한다.
이 때의 서브넷은 public subnet으로 지정해준다.
이후 private subnet의 라우팅 테이블을 수정해준다.
이제 만들어둔 네트워크 환경에 EC2를 배치하자.
public subnet으로 들어간 후 ssh 명령어를 통해 private subnet으로 들어갈 수 있다.
이제 mySQL과 Redis를 설치하고 public subnet에 서 있을 Springboot 서버가 접근할 수 있게 포트를 열어두어야 한다.