실제 아키텍처로 구현하는 순서를 알아보도록 하자.
1. 기본 네트워크 환경 구성 (VPC / Subnet / Internet Gateway / Route Table )
1) VPC(Virtual Private Cloud) 생성
VPC란 ?
가상 네트에서 AWS 리소스를 시작할 수 있다. AWS의 확장 가능한 인프랄 사용한다는 이점이 있다.
기능은?
VPC는 자체 데이터 센터에서 운영하는 기존 네트워크와 아주 유사한 가상 네트워크입니다. VPC를 생성한 후 서브넷을 추가할 수 있다.
CIDR이란? "ip주소를 할당하는 방법 중에 하나"
Classless Inter-Domain Routing의 약자이고 인터넷상의 데이터 라우팅 효율성을 향상시키는 IP 주소 할당 방법입니다. 인터넷에 연결되는 모든 컴퓨터, 서버 및 최종 사용자 디바이스에는 IP 주소라는 고유한 번호가 연결되어 있습니다. 디바이스는 이러한 IP 주소를 사용하여 서로 찾고 통신합니다. 조직에서는 CIDR을 사용하여 네트워크에 유연하고 효율적으로 IP 주소를 할당
CIDI block이란 ?
위 dev-vpc에서 사용할 IP 대역 또는 IP 범위
Tenancy란 ?
이 VPC에서 EC2 인스턴스를 생성을 할 때 전용 하드웨어를 사용할 것인가에 대한 항목인데 전용 하드웨어를 이제 사용하게 될 경우에는 Dedicate를 선택
VPC 생성 확인
DNS 호스트 이름 활성화 왜 체크 하는 지 ?
dev-vpc에서 생성되는 EC2 인스턴스와 같은 리소스들이 DNS 호스트 네임을 생성할지 또는 사용할지를 선택하는 설정
* Amazon EC2는 각 사용 사례에 맞게 최적화된 다양한 인스턴스 유형을 제공합니다. 인스턴스 유형은 CPU, 메모리, 스토리지 및 네트워킹 용량의 다양한 조합으로 구성되며, 애플리케이션에 따라 적합한 리소스 조합을 선택할 수 있는 유연성을 제공합니다
2) Subnet 생성 : vpc를 나누어 놓은 하위 네트워크
위에서 만든 dev-vpc를 선택
서브넷은 이 vpc의 CIDI블럭 즉, VPC의 IP대역을 나누는 것이기 때문에 dev-vpc에서 만드는 하위 네트워크인 서브넷을 만들 때는 이 subnet의 CIDI block 보다 작아야 된다는 점 기억할 것!
총 6개의 subnet을 만든다 (2개의 pobulic subnet과 4개의 privvate subnet)
네트워크가 범위: 11111111.11111111. 00000000.00000000 *표기법: /16 OR 255.255.0.0
(네트워크 범위)
서브넷 범위: 11111111.11111111.11111111.00000000 *표기법: /24 OR 255.255.255.0 를 고려
(호스트 부분, IP를 나눠쓰는 부분 )
새 서브넷 추가 버튼을 통해서 추가가 가능
이렇게 VPC와 서브넷을 생성하면 EC2 인스턴스와 같은 리소스들이 생성될 수있는 위치는 만들어졌다.
그러나 이 상태에서는 EC2인스턴스 등의 리소스를 만들더라도 인프라가 제대로 작동하기는 어렵다.
왜냐하면 아직 리소스들 사이에 또는 리소스들과 외부 인터넷 사이에 트래픽이 이동할 수 있는 경로들을 아직 구성해 주지 않았기 때문이다.
이런 역할을 해주는 네트워크 요소가 바로 Internet Gateway와 Route Table
3) Internet Gateway 생성
사용설명서: 게이트웨이는 VPC를 다른 네트워크(외부 인터넷)에 연결합니다. 예를 들면, 인터넷 게이트웨이를 사용하여 VPC를 인터넷에 연결합니다.
게이트웨이 생성 후 이제 게이트웨이가 어떤 vpc의 게이트웨이 역할을 할 것인지 특정 vpc에 연결해야 한다.
인터넷 게이트웨이 연결을 하고 나면 dev-vpc-igw라고 하는 인터넷 게이트웨이가 dev-vpc에 정상적으로 attach가 된다.
4) Route Table 생성 및 Route 설정
라우트 테이블은 네트워크 간의 통신에 있어서 목적지, 대상지 등으로의 데이터 패킷 이동 정보를 구성하는 규칙이다. 즉, 서브넷에 위치한 EC2 인스턴스와 같은 리소스들이 destination(목적지)에 따라서 어떤 경로를 통해 트래픽에 이동할 것인지에 대한 규칙을 설정해 놓는 테이블
(Gateway를 dev-vpc에 attach했던 것처럼) 이 라우트 테이블이 어떤 서브넷에 대한 트래픽 경로인지를 정해줘야 되는데 이를 위해서 이 라우트 테이블을 우리가 만들었던 퍼블릭 서브넷 a1과 c1에 연결(subnet associations탭)
이 상태에서 퍼블릭 서브넷에 위치한 EC2 인스턴스의 리소스들이 외부 인터넷과 통신할 수 있도록 라우트 테이블에 조금 전에 생성한 인터넷 게이트웨이(dev-vpc-igw)를 경로로 추가한다.
위 설명을 도식화 : " 퍼블릭 서브넷과 외부 인터넷이 연결이 되어야 한다!"
public-subnet-a1 위치한 EC2 resoucre <-- 라우팅 테이블 -->경로 추가<-- dev-vpc-igw(Internet Gateway) -->외부 인터넷
라우팅 추가
즉, 퍼블릭 서브넷안의 EC2 인스턴스 리소스의 트래픽이 igw-0d220912b8 게이트웨이를 통해 외부로 나간다는 의미 ( dev-vpc 외부)
10.1.0.0/16 목적지의 의미는?
이거는 기본적으로 dev-vpc의 CIDR 블록 내(dev-vpc 내부)에서는 이동이 가능하다는 것을 의미
private-subnet-route : private-subnet-a1, private-subnet c1
private-subnet-a1-route 테이블 생성
퍼블릭 라우팅 테이블과 마찬가지로 Subnet association탭에서 private-subnet 연결
private-subnet-c1-route 테이블 생성
Subnet association탭에서 private-subnet-c1 연결
private-subnet-a2-route 테이블 생성
private-subnet-c2-route 테이블 생성
여기서 public-subnet과 private-subnet의 차이점
public-subnet 테이블은 인터넷 게이트웨이를 통해서 나간다. (내부 + 외부 통신 가능)
프라이빗 서브넷 라우트 테이블은 local 즉 dev-vpc CIDR 블록 내에서만 라우팅이 가능하다. (내부 통신 가능)
다음에는 Public EC2 인스턴스 생성 및 LAMP 웹서버 구성을 해보겠습니다.
'AWS > 램프 웹 서버 & 어플리케이션 로드 밸런서 구성' 카테고리의 다른 글
아키텍처 관련 기술/서비스/다이어그램/구현 순서 검토 (0) | 2023.12.18 |
---|