출처) Honux 인프런 강의 - 실습으로 배우는 AWS 핵심 서비스
인프런 강의 내용이 있기 떄문에 출처를 밝힙니다 !
코드스쿼드를 진행하면서 AWS 관련 서비스에 대해 기본적인 소양을 쌓기 위해 강의를 듣고 VPC 를 정리해보려고 한다.
1. CIDR 표기법
CIDR (사이더) 표기법이란, IP 의 범위를 간단하게 표기하는 방법이다. 예) (0.0.0.0/0)
아래 그림에서 확인할 수 있듯, IP 는 총 4개의 Octet 으로나눌 수 있다.
IP address / Prefix
공식) 대역폭 내 IP의 갯수는 2^(32 - Prefix) 개
Prefix 는 고정 비트를 나타낸다.
Prefix 는 8의 배수가 꼭 아니여도 된다.
예시)
1. 0.0.0.0/0
고정 비트 : 0 비트
가변 비트 : 32 비트
0.0.0.0 ~ 255.255.255.255 까지의 대역폭
즉, 전 세계 모든 IP (Anyaddress)
-> 2^(32-0) 개, 약 40 억개
2. 10.2.0.0/16
고정 비트 : 16 비트
가변 비트 : 16 비트
10.2.0.0 ~ 10.2.255.255 까지의 대역폭
-> 2^(16-16) 개, 65536 개
3. 192.168.1.0/24
고정 비트 : 24 비트
가변 비트 : 8 비트
192.168.1.0 ~ 192.168.1.255 까지의 대역폭
-> 2^(32-24) 개, 256 개
4. 192.168.1.0/32
고정 비트 : 32 비트
가변 비트 : 0 비트
192.168.1.0 (고정 IP)
-> 2^(32-32) 개, 1개
5. 10.5.21.54/28
고정 비트 : 28 비트
가변 비트 : 4 비트
고정 비트 : 10.5.21 + 54 의 4비트 까지
-> 2^(32-28) 개, 16 개
즉, 10.5.21.54 ~ 10.5.21.69 까지의 대역폭
2. VPC, 서브넷 생성 후 EC2 인스턴스와 연결
서브넷은 Public, Private 서브넷 둘로 나눠서 만들 수 있다.
AWS VPC 에서 실습해보자.
아래 사진은 이번에 최종적으로 구성할 VPC 구조이다.
가. VPC 생성
간단하게 생성할 VPC 이름, CIDR 를 작성하면 VPC 와 기본적인 라우팅 테이블이 생성된다.
참고로 VPC IP 의 최대 범위, 최소 범위는 정해져 있는데, Prefix 부분이 /16 이면 최대, /28 이면 최소 !
여기서는 최대한의 대역폭으로 만들기 위해 /16 으로 설정했고, 대개 VPC CIDR 의 첫 번째 Octet 은 10으로 시작하는게 관례인 듯 하다.
(2 번째 Octct 부터는 자유롭게 설정)
나. 인터넷 게이트웨이 생성
VPC 를 생성했으면, 인터넷 연결을 위해 인터넷 게이트웨이를 생성해 VPC 와 연결해줘야 한다.
인터넷 게이트웨이는 이름만 지정하면 간단히 생성할 수 있다.
다. 서브넷 생성
VPC 구조 사진을 확인하면, VPC 내부의 서브넷은 Public, Private 2 개로 나뉘어진 것을 확인 할 수 있다.
먼저, 어떤 VPC 와 연결할 건지 선택하고, 해당 VPC CIDR 과 부분 집합 관계를 가지는 CIDR 를 작성한다.
(내 VPC 는 10.51.0.0 이기 때문에, 10.51.1.0 으로 CIDR 를 설정)
그리고 서브넷은 AZ (가용 영역) 서비스이기 때문에 반드시 AZ 를 설정해줘야 하는데, 여기선 2a 로 설정 !
만약 AZ 를 설정하지 않는다면 AWS 에서 자동으로 설정해주지만, 웬만하면 그냥 해주자.
일반적으로 Public 서브넷에는 WAS (스프링, 장고 등) 이 위치하고, Private 서브넷에는 DB 가 위치한다.
똑같이 Private 서브넷도 생성하자.
CIDR 는 10.51.11.0, AZ 는 2a 가 아닌, 2b 로 설정한다.
Public 과 Private 서브넷은 AZ 를 분리해서 만드는게 일반적인 구성이기 때문에 2a 가 아닌, 2b 로 AZ 를 설정한 것.
서브넷을 확인하면, 만든 Public, Private 서브넷이 잘 들어와있고, 서브넷은 반드시 하나의 라우팅 테이블을 연결하기 때문에
라우팅 테이블이 연결되어 있는 것을 확인할 수 있다.
현재 따로 라우팅 테이블을 만들지 않았기 때문에 VPC 를 생성할 때 생성된 기본 라우팅 테이블이 서브넷에 연결되어 있다.
라. 인터넷 연결에 필요한 라우팅 테이블 생성 및 Public 서브넷과 연결
위 단계에서 알 수 있듯 따로 라우팅 테이블을 생성하지 않으면, VPC 를 생성할 때 만들어진 기본 라우팅 테이블이 서브넷과 연결된다.
보통 이 기본 라우팅 테이블을 사용하진 않고, 추가적으로 하나를 더 만들고 규칙을 설정한 뒤, 인터넷이 필요한 서브넷과 연결하면 된다.
(주로 Public 서브넷에 연결)
이름, 어떤 VPC 에서 사용할지 선택하면 간단하게 라우팅 테이블을 생성할 수 있다.
라우팅 테이블이 잘 생성됬다면, 라우팅 편집 탭에 들어가서 0.0.0.0/0, 생성한 인터넷 게이트웨이 로 대상을 추가해주자.
10.51.0.0/16 IP 로 들어오는 모든 것들은 local 에서 처리(기본 설정), 그 외 모든 IP 접속은 인터넷 게이트웨이를 통해 처리한다는 뜻.
이제 생성하고 편집이 완료된 라우팅 테이블을 Public 서브넷과 연결해주자.
나중에 EC2 인스턴스 서버에 접속할 때, 이렇게 인터넷 게이트웨이와 연결된 라우팅 테이블을 Public 서브넷과 연결해주지 않으면,
인터넷에 연결돼지 않았기 때문에 접속이 불가하다.
라. EC2 인스턴스 생성 후 VPC 연결
지금까지 EC2 인스턴스를 생성하면서 VPC 는 넘어갔었는데, 이제는 위에서 진행한 결과의 VPC 로 설정을 바꿔주면 된다.
그림에서도 나와있듯 EC2 인스턴스는 반드시 서브넷과 연결되어 있어야 하기 때문에 (주로 Public 서브넷) Pulbic 서브넷으로 설정한다.
그리고 퍼블릭 IP 가 있어야 서버 접속이 가능하므로 활성화 로 바꿔주자. 보안그룹은 입맛에 맞춰서 해주면 될 것 같다 ^_^
마. EC2 서버 접속 확인
내 퍼블릭 IP 주소는 52.79.83.113 이니까 여기로 접속해서 확인해본다면 ?
서버로 잘 접속되는 것을 확인할 수 있다 😀
다음 포스팅은 Private 서브넷에 DB 를 위치시키는 것으로 해보자.
'VPC' 카테고리의 다른 글
[AWS] 프로젝트 인프라 구축하기 (0) | 2022.05.30 |
---|