본문 바로가기

Infra/AWS

[AWS/Spring boot] Amazon Linux2에 Spring boot project Docker 배포하기[2] - VPC 구축(public subnet, private subnet, NAT Gateway, Internet gateway)

이주 안에 끝내고 싶었던 포스팅이었는데 시간이 너무 없었다 ㅠㅠ

오늘은 지난번 포스팅대로 VPC를 구성하려고 한다.

 

이런저런 비용이 드는 실습이기 때문에 실습 후 모든 인스턴스를 중단 또는 종료하고 볼륨을 삭제하고 NAT gateway를 삭제하는 것을 추천합니다 .. 꼭..

 

먼저, 지난번에 생성했던 IAM 유저로 로그인을 한 뒤 VPC 서비스로 들어간다.

그 전에 리전이 seoul인지 확인해보자. 상관없지만 ECR 리전과 맞추어주기 위함이니 일단은 ..?

 

 

 

첫 화면은 아래의 Dashboard이다.

새로운 VPC를 구성해야하니 Launch VPC Wizard를 클릭하자.

 

 

 

고로 이 기능은 VPC 구성 마법사? 같은 느낌이다.
아래 네 케이스를 손쉽게 구성해준다.

서브넷 하나하나 직접 구축할 수도 있지만 우리가 구성할 VPC는 두번쨰 케이스이기 때문에 편하게 가보자.

 

 

두번째 VPC with Public and Private Subnets 을 선택하면 나오는 이미지를 보자.

척 봐도 내가 그린 VPC 구성도랑 비슷하게 생겼다 ㅋ_ㅋ

 

 

Select를 클릭하여 구성을 시작해본다.

나의 VPC 구성도가 꽤 정석적이어서(다른말로 이상적이어서 ..) 수정할 부분이 많지 않다.

VPC name, region 정도만 맞추어준다.

+ 그리고 아래 이미지와 다르지만 Enable DNS hostnames 옵션을 yes로 체크해준다. 아 이거 안해줘서 내내 고생했따 ㅠㅠㅠ 

 

 

이 상태에서 유일하게 비어있는 Elastic IP Allocation ID 필드를 클릭하면 어떤 것도 선택할 수 없는 것을 확인 할 수 있다.

(그 전에 한번도 VPC를 구성한적이 없는 경우에는!)

 

이게 뭐냐면 NAT Gateway의 EIP를 VPC에 attach하는 것이다.

 

NAT Gateway는 private subnet에서 인터넷으로 아웃바운드할 수 있도록 도와주는 '중개자'같은 역할을 한다.

 

예를 들면 private instance에 웹 서버를 배포하기 위해 jdk를 설치하려면 yum install 이든 apt-get install이든 인터넷 망으로 나가서 받아와야 하는데 그때 통하는 것이다.

 

그렇기 때문에 NAT Gateway는 public subnet에 존재해야한다,

cf) 기존에는 NAT Instance라는 개념으로 NAT G/W 역할을 하는 EC2 인스턴스를 생성하고 라우팅테이블, SG 등등 다 건드려줘야 했는데 최근에는 NAT Gateway 서비스가 등장함으로써 더 편하게 VPC를 구축할 수 있게 되었다.

 

 

입력중인 창을 두고 새 탭을 띄워서 Elastic IPs 메뉴를 들어간다.

NAT Gateway에 attach할 Elastic IP를 생성하기 위함이다.

 

Allocate를 클릭하면 아주 쉽게 Elastic IP가 할당된다. 이것만으로 비용이 부과되지는 않지만, AWS가 가지고 있는 아이피도 역시 '한정적'이기 때문에 사용하지 않는 EIP는 꼭 release 해주도록 부탁하고있다(?)

 

 

위와 같이 EIP를 생성하고 알아보기 쉽게 name도 작성해주었다.

 

이제 다시 VPC 구성 페이지로 돌아가서 Elastic IP Allocation ID 필드를 클릭하면 방금 생성한 EIP를 선택할 수 있을 것이다.

 

클릭 후 Create VPC를 누른다.

 

VPC 마법사를 통했기 때문에 public subnet, private subnet, NAT Gateway, Internet Gateway까지 구성해준다.

 

하나하나 눌러서 뭐 하나 빼먹고 실수하느니 이렇게 구성하고 추가할건 추가하고 뺄건 빼는 것도 나쁘지 않은 방법인 것 같다.

참고로 NAT Gateway를 구성하는데 시간이 좀 걸린다. (그리고 비용도 좀 드니 실습 후 꼭 삭제한다.)

 

위와 같은 화면이 나오면 VPC 구성이 끝난 것이다.

다시 VPC dashboard로 돌아가서

Subnet , Internet Gatewyas, NAT Gateways를 들어가면 뭐가 하나씩 생겨있을 것이다.

현재 상태는 다음과 같다.

 

 

이제 여기에 EC2를 생성하고 ALB를 attach한 뒤 application 을 docker 배포하면 끝난다 :)

다음시간에 계속 ,, 

 

현재까지 중 비용이 청구되는 서비스는 NAT Gateway 뿐이니 꼭 삭제하도록 한다! EIP는 이미 VPC에 attach되어 있고 NAT Gateway만 다시 생성한 뒤 EIP를 할당하면 되니까는 ..