일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- kafka
- Sequelize
- vue
- component
- state
- props
- AWS
- java
- javascript
- Nest.js
- Kotlin
- class
- Producer
- react
- SWIFT
- 상속
- swagger
- 코틀린
- 반복문
- spring boot
- back-end
- 개발자
- 조건문
- 개발이 취미인 사람
- front-end
- file upload
- restful api
- node.js
- 자바
- It
- Today
- Total
개발이 취미인 사람
[AWS] VPC 실습(가상 네트워크망 설정) 본문
- 지난 시간
안녕하세요. 이번 시간에는 AWS VPC 가상 사설망을 설정하는 방법에 대해 알아보겠습니다.
혹시 VPC에 대해 이해를 못 하신 분들은 아래 링크를 통해 학습하고 오시는 걸 추천드리겠습니다.
- 설정
저는 아래와 같은 형태에 네트워크망을 구축할 생각입니다.
리전은 아시아 태평양 (서울)을 선택하고 작업을 시작합니다.
- VPC
AWS Management Console 페이지로 접속한 후 검색창에 VPC를 입력 후 선택합니다.
우리는 VPC를 만들지 않았지만 계정을 생성할 때 기본적으로 생성되는 기본 VPC가 생성되어 있습니다.
새로운 VPC를 생성하기 위해 VPC 생성 버튼을 클릭합니다.
VPC 이름을 설정하고 IPv4 CIDR 영역을 설정해하고 VPC생성 버튼을 클릭합니다.
VPC를 생성할 때 참고하면 좋습니다.
참고로 해당 VPC 아이피는 겹치면 안됩니다. 생성은 되지만... DNS IP를 잡지 못하는 에러가 발생합니다.
기본 VPC 172.31.0.0/16으로 생성되어 있다면 우리는 172.31 IP를 피해서 생성해야 합니다.
정상적으로 생성이 된다면 상세보기 페이지로 이동하게 됩니다.
VPC 항목을 확인하면 새롭게 추가된 걸 확인할 수 있습니다.
혹시 만약 DNS hostname 값이 활성 상태가 아닌 경우가 발생한다면
생성한 VPC를 선택하고 오른쪽 위의 작업(Action)을 클릭 후 DNS 호스트 이름 수정(Edit DNS Hostnames) 메뉴를 선택해 기능을 활성화해준다.
위와 같이 DNS 호스트 이름을 활성화해주면~ 끝!!
VPC 하나를 생성하면 Route Table, DHCP Option, Network ACL, Security Groups이 만들어집니다.
- SubNet
그다음으로는 SubNet을 만들겠습니다. 기본적인 SubNet은 4개가 만들어져 있습니다.
동일하게 서브넷 생성 버튼을 클릭합니다.
위와 같은 페이지로 이동합니다. VPC ID 목록을 보면 우리가 방금 만들었던 VPC가 있는 걸 확인할 수 있습니다.
방금 우리가 생성한 VPC를 선택하면 아래 서브넷 설정 항목이 나타납니다.
여기서 우리는 VPC IPv4 CIDR 영역을 이해하고 서브넷을 설정해야 합니다.
서브넷 이름 가용 영역 IPv4 CIDR 모두 중복되지 않게 설정해야 합니다.
서브넷을 성공적으로 생성했다면, 서브넷 목록 페이지로 이동합니다.
서브넷을 만들면 VPC, Network ACL, Route Table이 함께 지정된다.
그리고 우리는 하나에 서브넷을 만들 수가 없다 그 이유는 AWS 멀티 AZ을 지원합니다.
하나 이상의 가용 존에 유사한 리소스를 동시에 배치하는 기능입니다.
이렇게 하는 이유는 장애에 대응과 관련이 있습니다.
하나의 리전에는 다수의 가용 존(서브넷)들이 있습니다. 가용 존은 단순하게 생까 해서 가상 분리되어 있다고만 생각하면 안 됩니다.
물리적인 공간도 분리되어 있으며, 우리는 다수의 가용 존에 유사한 리소스를 배치함으로써 하나의 가용 존에 문제가 생기더라도 다른 가용 존에서 이 문제를 해결하며 서비스를 유지해 나갑니다.
AWS에서는 리전당 2개 이상의 가용 존을 제공하며, 2개 이상의 가용존을 전제로 네트워크를 설계하는 것을 권장합니다.
(지금 글에서는 2개에 서브넷을 만들었지만 우리는 4개에 서브넷을 만들어 Front-End 멀티 영역과 Back-End 멀티 영역을 만들어야 합니다.)
여기까지 진행을 했다면 우리는 담장과 집을 만들었다고 생각할 수 있다.
이제는 대문을 만들어야 한다. 그래야 실제 네트워크 통신을 할 수 있다.
주의 사항
가용존은 하나에 지역으로 구분됩니다. 설정시 고려해서 설정해야 합니다.
공식문서
공식 문서에는 아래와 같이 설명하고 있다.
이제 우리는 인터넷 게이트웨이와 라우팅 테이블을 만들어 연결해주면 된다.
- Internet Gateway
인터넷 게이트웨이 생성 버튼을 눌러줍니다.
인터넷 게이트웨이는 이름만 정의하면 끝이다.
인터넷 게이트웨이를 생성하면 VPC와 연결해줘야 한다.
해당 인터넷 게이트웨이를 선택하고 VPC에 연결 항목을 선택해서 우리가 생성한 VPC를 연결해주면 됩니다.
연결을 성공 화면 상태가 활성 상태로 변경됩니다.
- Route Table
서브넷의 라우트 테이블이 인터넷 게이트웨이를 가리키도록 설정해야 합니다.
서브넷을 생성했다면 기본 라우트 테이블이 지정되는 새로운 라우트 테이블을 만들고 기존 라우트 테이블을 수정해서 두 서브넷 구역을 나누도록 하겠습니다.
새로운 라우트 테이블 생성
라우트 테이블 생성 버튼을 클릭하면 아래와 같은 페이지로 이동하며, 아래와 같이 이름과 VPC를 선택합니다.
기존 라우트 데이블 수정
해당 라우트 테이블은 Public 영역인 Front-End 라우트 테이블이다. 인터넷 게이트웨이와 연결을 해야 합니다.
위와 같이 대상 IP를 0.0.0.0/0으로 모든 IP 영역대를 허용하고 인터넷 게이트웨이 아이디 선택하면 대상 아이디를 지정하면 됩니다.
그리고 라우트 테이블을 2개 생성했으므로 목록 화면에서 Name 지정해서 구분해줍니다.
서브넷 선택
특정 서브넷을 선택하고 서브넷 연결 항목을 선택해 서브넷을 연결할 수 있습니다.
우리가 새로 생성한 서브넷에 Back-End 영역을 담당하는 서브넷을 연결하겠습니다.
연결이 성공했다면, 동일하게 기존 수정했던 라우트 테이블에 Front-End 영역을 담당하는 서브넷을 연결하겠습니다.
설정을 끝 맞췄으면, 아래와 같은 화면이 표시됩니다.
- Network ACL
네트워크 ACL로 서브넷에 방화벽을 만들어 보안을 강화할 수 있습니다.
기존 Network ACL을 수정하고 새로운 ACL을 만들어 보도록 하겠습니다.
기본 ACL에 서브넷을 연결 해제하려고 하면 안 됩니다. 새롭게 만들어 연결하면 자동으로 연결이 해제가 됩니다.
네트워크 ACL 생성 버튼을 클릭합니다.
이름과 VPC를 선택해서 생성합니다.
생성이 완료되면 해당 ACL을 선택해 서브넷 연결 편집을 선택해서 서브넷 열결을 수정해줍니다.
수정이 완료되면 아래와 같은 상태로 변경이 됩니다.
자... 여기까지 했다면 우리는 기본적인 뼈대를 만들었습니다.
네트워크 ACL에서 중요한 부분은 인바운드와 아웃바운드 설정을 잘해야 합니다.
기존 AWS EC2를 사용해보셨다면 아마 이해를 빠르게 하실 수 있습니다.
(EC2에서 사용한 보안 그룹과 동일합니다.)
인바운드와 아웃바운드는 다음 글을 통해 설정하도록 하겠습니다.
이번 시간에는 직접 VPC 설정하는 방법에 대해 알아봤습니다.
직접 실습을 하는 것을 추천드리겠습니다. 많은 자료를 보는 것보다 직접 실습하는 게 가장 기억에 남고 실력이 빠르게 향상됩니다. :)
'백앤드(Back-End) > AWS' 카테고리의 다른 글
[AWS] 로드 밸런서(Load Balancer) 개념 및 사용법 (0) | 2021.03.14 |
---|---|
[AWS] 보안그룹 (0) | 2021.03.11 |
[AWS] EC2 인스턴스 접속(원격 접속) (0) | 2021.03.10 |
[AWS] EC2 인스턴스 생성 (0) | 2021.03.10 |
[AWS] VPC 가상 사설망 개념 (2) | 2021.03.09 |