[AWS] 인프라 구축 [VPC / Subnet / Routing / IGW / NAT] - 설계

인프라 구축 순서

 

  1. 현재글
  2. [AWS] 인프라 구축 [VPC / Subnet / Routing / IGW / NAT] - 1 (VPC)
  3. [AWS] 인프라 구축 [VPC / Subnet / Routing / IGW / NAT] - 2 (Subnet)
  4. [AWS] 인프라 구축 [VPC / Subnet / Routing / IGW / NAT] - 3 (Routing)
  5. [AWS] 인프라 구축 [VPC / Subnet / Routing / IGW / NAT] - 4 (IGW)
  6. [AWS] 인프라 구축 [VPC / Subnet / Routing / IGW / NAT] - 5 (NAT)

 

 

 

글 쓰기에 앞서 나는 아키텍처가 이미 세팅되어 있는 사내 AWS 서버에 Java, Nginx, Tomcat, Jenkins, Gitlab 등 설치하고 서로 연동시킨 경험이 있다.

 

이번엔 회사에서 사내 Test용 서버로 AWS 아키텍처부터 서버 세팅까지 요청이 와서 세팅하는 방법을 기록하고자 한다.

(서버만 구축했을때는 linux를 처음 다뤄보기도 했고 프로그램 설치하고 프로그램들끼리 연동하는 자체가 너무 힘들어서 머리 뜯어가면서 했는데 이걸.. 기록을 안 했던 게... 너무 후회된다)

 

세팅 요청 내용
회사 내부 프로젝트에서 사용할 AWS 서버 세팅을 요청드립니다.

-세팅 세부내용

EC2
-인스턴스 2개
-t4g.small 인스턴스 선택 ( 2 vCPU, 메모리 2GB, EBS 스토리지 50GB, 스냅샷 없음 )
-EC2 인스턴스 절감형 플랜 1년 전체 선결제
=> 선결제비용 : 204.98 USD + 월비용 : 9.12 USD

AWS Aurora Mysql
-인스턴스 1개
-db.t4g.medium 인스턴스 선택 ( 2 vCPU, 메모리 4GB )
-요금모델 예약형 1년 전체 선결제-스토리지 크기 50GB
=> 선결제비용 : 411 USD + 월비용 : 9.70 USD * 12

S3
-스토리지 100GB
-월별 put 요청 수 : 2000 / 월별 select 요청 수 : 20000 / 반환데이터 : 10GB / 스캔데이터 : 20GB
=> 월비용 : 2.57 USD * 12

위 비용은 이전에 AWS에서 전달받은 견적 금액으로 실제 세팅내용이나 사용량에 따라 달라질 수 있으니 참고 부탁드립니다.

 

따라서, 아키텍처를 그려보고 EC2 절감형 플랜, RDS 예약 인스턴스를 구매 및 예약한 뒤

아키텍처에 맞게 서버를 세팅 할 것이다.

 

나중에 알게 된 사실이지만,

Aurora Mysql과  S3는 스토리지 용량 제한을 걸 수 있는 직접적인 기능은 없고,

CloudWatch, AWS Budgets 등을 사용하여 간접적으로 제어를 해야 한다.

 

참고

 

 

 draw.io 사이트에서 AWS 아키텍처를 그려보자
draw.io

만약 AWS 도형이 안 보인다면

더보기

1. 새 다이어그램

 

Cloud > AWS에서 아무 템플릿이나 선택해서 만들어주자.

 

2. 기존 다이어그램

 

왼쪽 내비게이션 바 하단 > 그 외 도형 버튼 '클릭'

 

이 창에서 맘에 드는 AWS 도형 아무거나 선택 후 '적용'

 

 

 

나는 위와 같이 인프라를 구성 할 예정이다.

 

비록, 사내 Test용도로 한정된 인원이 내부에서만 사용하기에 Public subnet에 WEB서버를 배치했지만,

프로덕션 환경에서는 보안상 위험하기에 WEB서버도 Private subnet안에 배치해 두고

그 앞에 Bastion(혹은 Jump) Server를 앞에 두고 이를 통해 SSH 접속을 하도록 구성하거나

AWS SSM같은 서비스를 이용해서 접속하도록 하는게 옳다고 생각한다.

 

이제 간단하게 인프라를 설명을 하자면

 

ROUTE53
  • 추후에 도메인 이름을 적용하기 때문에 사용한다.

 

NAT
Private Subnet에서는 외부 인터넷을 사용 못하기 때문에 연결시켜 줬다.
이렇게 설정하게 되면,
외부 인터넷에서는 Private Subnet에 있는 WAS에 접속할 수 없지만
WAS는 NAT을 통해 외부 인터넷에 있는 정보를 가져올 수 있게 된다.
따라서, NAT은 Public Subnet에 위치해 있어야 한다.

구성을 하면서 고민을 했던 부분이
was 서버가 s3를 연동하는데 VPC Endpoint, NAT 둘 중 어떤 서비스를 골라야 할까 하다가
(VPC Endpoint가 비용이 더 쌈.)
was 서버에서 어떤 서비스를 할지 몰라 범용성이 높은 NAT만을 연동해 놓았다.

 

IAM
  • AWS를 쓰면서 필수적으로 사용을 하는 서비스인데
    여기서는 WAS EC2가 S3에 파일을 올리기 위한 자격증명용으로 사용한다.

 

 

아무도 아키텍처 구성도를 만들라고는 하지 않았지만..
위와 같이 아키텍처를 한번 그려놓고 설계를 해보니
AWS 네트워크를 앞으로 어떤 순서로 하나씩 구성해야겠다는 작은 목표들이 생기고,
다른 사람에게 인프라가 어떻게 구성되어 있는지를 설명할 필요 없이 한눈에 보여줄 수 있다는 장점이 있는 것 같다.

 

 

[AWS] EC2 인스턴스 절감형 플랜 및 Aurora Mysql 예약형 인스턴스

위의 글을 적용한 뒤 구축 순서에 따라 직접 Network 인프라를 구성해 보자.

 

 

 

 


참고한 내용

https://youtube.com/playlist?list=PLfth0bK2MgIan-SzGpHIbfnCnjj583K2m&si=xX-1QMmpVMKfR5je

 

쉽게 설명하는AWS 기초 강좌

 

www.youtube.com