안녕하세요!
지난시간에 AWS의 간단한 용어에 대해 설명을 해 드렸는데요
이번에는 AWS 구성에 가장 기본이 되는 VPC를 구성해 보도록 하겠습니다.
지난시간 이야기
[AWS] - AWS 기초시리즈 #1 - AWS 시작시 알아야 하는 용어
[AWS] - AWS 기초시리즈 #2 - AWS 가입, 계정 설정하기
[AWS] - AWS 기초시리즈 #3 - AWS IAM 계정생성
테라폼을 이용하여 VPC를 구축한다면 요기
[IaC/Teraform on AWS] - [Terraform on AWS] #1 - Terraform을 이용해 AWS 인프라환경을 구축 / VPC 생성
먼저 VPC를 구성하기전에 VPC가 무엇인지 알아야겠죠
VPC (Amazon Virtual Private Cloud)는 AWS 계정전용 가상 네트워크인데요,
조금 쉽게 말해 AWS에서 사용하는 네트워크를 격리하는 개념입니다.
일종의 VPC를 이용하여 하나의 AWS계정에서 멀티테넌트로 여러 서비스를 분리하실 수 있습니다!
VPC구성순서
1. VPC 구성
2. VPC 내부의 subnets 구성
3. 인터넷게이트웨이 생성
4. NAT 게이트 웨이 생성
5. 라우팅테이블 설정
아래의 어키텍처처럼 보통 서비스의 가용성을 높이기 위하여 2개의 존으로 분리하여 구성을 해줍니다.
이 하나의 존을 Availability Zone이라 부르며 줄여서 AZ라고 부릅니다!
지금은 굉장히 복잡해 보이실수 있지만 차근차근 하나씩 구성을 해보면서 더 익혀보도록 하죠
1. VPC 구성
AWS 내부의 리소스에서 사용할 네트워크을 구분짓기 위하여 VPC를 먼저 구성을 해줄텐데요
추가적으로 VPC는 리전에 종속되기에 다른 리전에 나누어서 같은 서비스를 연결하고자 하실때에는 각각 리전별로 다른 VPC를 구성 후 VPC Peering을 통해 연결해주어야 합니다.
VPC에서 사용하는 사설 아이피 대역은 아래와같습니다.
- 10.0.0.0 ~ 10.255.255.255(10/8 prefix)
- 172.16.0.0 ~ 172.31.255.255(182.16/12 prefix)
- 192.168.0.0 ~ 192.168.255.255(192.168/16 prefix)
일단 만들어 봅시다.
1) aws 콘솔에 로그인을 한 후 서비스메뉴에서 VPC를 클릭하여 줍니다.
2) VPC 대시보드에서 Your VPCs를 클릭 후 Create VPC를 눌러줍니다.
3) 생성할 VPC의 이름과 CIDR 블록을 지정해줍니다.
aws default vpc CIDR은 172.31.0.0/16 입니다.
10.100.0.0/16 대역으로 VPC를 구성해 주었으며
한번 구성된 네트워크 대역대는 변경이 불가하므로 넉넉하게 잡아주시는거를 추천드립니다.
2. Subnet 구성
서브넷은 보통 처음 아키텍쳐의 Availability Zone 내부의 네트워크개념인데요
보통 하나의 AZ안에 Public subnet, Private subnet 이렇게 2개의 서브넷으로 구성해줍니다.
구성을 할때 이건 퍼블릭용, 이건 프라이빗용 나누어서 구성을 하진않고
서브넷중에서 인터넷게이트웨이와 연결될(외부에서 접속할 수 있는) 서브넷을 public subnet이라고 하며
인터넷접근할 필요없는 내부 리소스들을 묶어줄 서브넷을 Private subnet이라고 합니다.
Public subnet
-
인터넷 트래픽이 가능합니다.
-
Public IP를 통해 외부에서 접근이 가능합니다.
-
인터넷 게이트웨이가 연결될 서브넷입니다.
Private subnet
-
인터넷연결이 불가능합니다.
-
외부 트래픽이 필요 할 경우 Public subnet에 있는 NAT게이트웨이로 트래픽을 보내 외부와 통신합니다.
먼저 구성을 해 봅시다!
(먼저 구성하시기 전에 어떠한 대역대를 사용할 것인지 정해두면 구성을 좀 더 수월하게 진행하실 수 있습니다.)
보통 운영환경에서는 가용성을 높이기 위하여 Multi AZ로 구성을 하기때문에 AZ별로 2개의 서브넷(퍼블릭, 프라이빗)
한국리전에 3개의 AZ가 있기때문에 6개의 서브넷을 구성하기도 합니다.
(나중되면 어떤 대역대가 어떤 서브넷인지 구분하기 어려워...지기도.....)
|
AZ1 |
AZ2 |
AZ3 |
Public subnet |
10.100.10.0/24 |
10.100.20.0/24 |
10.100.30.0/24 |
Private subnet |
10.100.11.0/24 |
10.100.21.0/24 |
10.100.31.0/24 |
저는 보통 위에 도표와 같이 제가 구분하기 쉽게 퍼블릭 서브넷을 10단위로 맞춰서 구성하고
프라이빗 서브넷은 홀수의 IP대역으로 구성해줍니다.
하지만 저는 테스트용도이기에
AZ 1개로 구성을 진행하겠습니다 ^0^
1) VPC 대시보드에서 subnet 클릭
2) 생성할 서브넷의 이름과 좀전에 생성하였던 VPC, AZ, 그리고 서브넷 CIDR블록을 지정하여줍니다.
저는 AZ1존에 public subnet을 먼저 생성하였습니다.
서브넷 생성과정을 반복합니다.
AZ를 하나 사용할 경우 2개의 서브넷 (Public, Private)을 생성하시면 됩니다!
3. Internet Gateway 구성
VPC에 종속되며, 인터넷에 연결하기 위하여 생성하는 게이트웨이입니다.
보통 public subnet에있는 내부 IP주소를 외부 IP로 매핑해주는 NAT같은 역할을 합니다.
1) VPC대시보드에서 Internet Gateways 항목을 누른후 Create internet gateway를 클릭하여줍니다.
2) 이름을 지정해준 후 생성해줍니다.
3) 처음에 생성하였던 VPC에 attach해줍니다.
4. NAT Gateway 구성
Private subnet에 연결된 서버들이 인터넷에 연결될 수 있도록 만들어주는 게이트웨이입니다.
1) VPC대시보드에서 NAT Gateways 항목을 누른후 Create NAT Gateway를 클릭하여줍니다.
2) NAT G/W가 위치될 서브넷을 지정후 IP를 할당해줍니다.
-
Subnet : 좀전에 생성하였던 public subnet을 선택해줍니다.
-
NAT가 Public zone에 위치하고 있어야 private 대역대에 있는 리소스들을 NAT를 통하여 외부로 연결할 수 있습니다.
-
EIP : 기존에 할당된 EIP가 있으시면 선택해주시고, 없다면 오른쪽에 Allocate Elastic IP address를 선택해 EIP를 생성해줍니다.
-
Tag : 저는 NAT의 이름을 함께 tag로 지정해주었습니다.
현재까지 구성한 것을 도식화 하여보면 아래와 같습니다!
(subnet은 AZ1존에 각각 하나씩 구성하였습니다.)
5. Routing Table구성
실제 트래픽을 게이트웨이들로 보내주려면 라우팅테이블을 구성해줘야합니다.
(저는 subnet별로 룰을 다르게 지정해줄거기에 public subnet용 라우트테이블, private subnet용 라우트테이블 2개를 구성하겠습니다.)
1) VPC대시보드에서 Route Tables 항목을 누른후 Create route table을 클릭하여줍니다.
2) Route Table의 이름과 VPC를 지정해줍니다.
1,2번을 반복하여 private subnet용 라우트테이블로 생성해줍니다.
3) 생성한 Route table에 rule을 지정해줍니다.
-
Public subnet
-
Destination : 0.0.0.0/0
-
Target : Internet Gateway
-
Private subnet
-
Destination : 0.0.0.0/0
-
Target : NAT Gateway
4) 생성한 Route table에 Subnet을 연결해줍니다.
public route table에는 public subnet을, private table에는 private subnet을 연결
-
Public route table
프라이빗 테이블에도 마찬가지로 해당 작업을 반복해줍니다.
이렇게 해서 아래와 같은 VPC구성을 마쳤습니다!
환경을 구성할때 네트워크 망을 구축하는것이 가장먼저 해야할 일이기에
VPC구성은 가장 중요한 구성 중 한가지이며
숙지하는데 도움이 되였기를 바랍니다 ㅎ.ㅎ
다음시간에는
가장 많이 들어보았던 EC2 구성을 해볼꼐욤!
참고
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html
# 참고
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html
'AWS' 카테고리의 다른 글
AWS - Cloudwatch custom metric을 이용한 Monitoring (Memory, Disk 사용량 확인) (0) | 2020.06.04 |
---|---|
AWS - EC2 인스턴스 Auto Scheduled 백업 및 삭제방법 (0) | 2020.06.01 |
AWS 기초시리즈 #3 - AWS IAM 계정생성 (0) | 2020.04.25 |
AWS 기초시리즈 #2 - AWS 가입, 계정 설정하기 (0) | 2020.04.24 |
AWS 기초시리즈 #1 - AWS 시작시 알아야 하는 용어 (0) | 2020.04.24 |