이 포스팅에서는 이전에 알아보았던 VPC(Virtual Private Network)를 직접 AWS상에서 만들어 보도록 하겠다.
VPC 만들기
VPC를 만드는 장소는 서울리전(ap-northeast-2)을 사용하기로 한다.
가지고 있는 aws 계정을 이용해 aws 관리 콘솔로 로그인 후, 서비스 찾기에서 아래 그림과 같이 VPC를 찾아 클릭해 VPC 생성 화면으로 들어간다.
VPC 생성을 위한 첫 화면, 이때 Available 상태에 있는 VPC는 AWS계정을 만들면 나오는 기본 VPC(Default VPC)로 우리는 기본 VPC가 아닌 새로운 VPC를 만들도록 할 것이다.
상단의 VPC생성을 클릭하도록 한다.
- VPC 이름테그는 본인이 원하는 이름을 지정하도록 한다. 여기서는 my-vpc-01을 사용한다.
- IPv4 CIDR 블록에 대한 값은 이 VPC가 인터넷을 통해 자원에 접근할 수 있도록 하기 위해 다음의 세가지 사설망 대역중 하나를 선택하도록 한다. (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) 여기서는 10.0.0.0/16을 사용하도록 하겠다.
- 나머지 항목들(IPv6 CIDR블록 및 테넌시)은 기본값을 그냥 두고 VPC생성 버튼을 클릭해 VPC를 만들도록 한다.
VPC가 아래와 같이 생성된 것을 확인할 수 있다.
마지막으로 생성한 VPC의 작업란을 선택해 DNS호스트 이름 편집을 선택하고 들어가 DNS 호스트 이름 활성화를 클릭해 주도록 한다.
DNS호스트 네임은 AWS의 DNS 서버를 사용하는 기능이다.
하나의 VPC가 만들어지게 되면 VPC와 관련된 일련의 자원들도 함께 만들어지게 되는데 VPC와 관련된 일련의 자원들은 다음과 같다.
- 서브넷 : VPC가 만들어 지고 직접 만들어야 한다.
- 라우트 테이블: VPC가 만들어 지면 자동으로 만들어진다. 이 라우트 테이블을 기반으로 VPC 내부의 자원들(서브넷 등)이 서로 연결될 수 있다.
- 인터넷게이트웨이: 직접 만들어야 한다.
- DHCP 옵션셋 : 자동으로 만들어 진다.
- 네트워크 ACL/시큐리티 그룹 : 자동으로 만들어 진다.
Subnet (서브넷) 만들기
VPC 데쉬보드에서 서브넷을 선택해 서브넷 생성을 위한 화면을 띄우도록 한다. 아래의 화면에서 보이는 4개의 서브넷은 Default VPC에 소속된 서브넷으로 여기서는 새로운 서브넷을 우리가 만든 VPC(my-vpc-01)에 새로운 subnet을 만들도록 한다.
아래의 그램에서 서브넷 생성 버튼을 클릭한다.
서브넷을 생성할 VPC를 선택한다. (my-vpc-01)
서브넷을 생성할 VPC를 선택하게 되면 다음과 같이 서브넷 설정 창이 뜨게 된다.
- 서브넷 이름은 해당 서브넷의 사용 용도로 만들기로 한다. 여기서는 public-subnet이란 이름으로 만들었다.
- 다음은 가용 영역(Available Zone)을 선택 한다. 2021년 11월 현재 AWS 서울 리전은 4개의 AZ를 보유하고 있다. 여기서는 첫번째 AZ(ap-northeast-2a)를 선택하기로 한다.
- IPv4 CIDR를 입력하는 란에 VPC에서 지정한 사이더(CIDR) 보다 작은 범위의 CIDR 값을 지정한다. VPC의 CIDR 값은 10.10.0.0/16 이었기 때문에 여기서는 10.10.0.0/24를 만들도록 한다.
위와 같이 입력했다면 서브넷 생성 버튼을 클릭해 서브넷을 생성하도록 한다.
정상적이라면 아래와 같이 서브넷이 생성된걸 확인 할 수 있다.
똑같은 방법으로 서브넷을 두번째 AZ(ap-northeast-2b)에 하나 더 만들기로 한다. 일반적으로 AZ는 물리적으로 분리되어 있기 때문에 하나의 AZ에 장애가 발생해도 다른 AZ를 만들어 놓는다면 장애에 대한 대응이 가능하기 때문에 이렇게 다른 AZ내에 서브넷을 하나 이상 더 만들어 놓는 것이 좋다. 이 두번째 서브넷의 CIDR(사이더) 값은 10.10.1.0/16으로 생성한다.
아래의 그림과 같이 2개의 서브넷이 만들어 VPC내에 만들어 졌다.
이제 EC2 인스턴스를 올려 서비스를 호출해보자
EC2 생성
AWS 관리 콘솔에서 EC2 대시보드를 찾아 화면을 연다.
아래의 예에서는 실행 중인 인스턴스가 하나도 없다.
화면 중간의 인스턴스 시작 버튼을 클릭해 새로운 인스턴스를 생성하도록 한다.
이 예에서는 "프리티어" 사용이 가능한(*무료) Amazon Linux 2AMI를 선택해 t2.micro 버전으로 EC2 인스턴스를 생성하도록 한다.
단계별 인스턴스 설정을 선택해 3.인스턴스 구성을 아래와 같이 구성한다.
- 네트워크는 앞서 생성한 vpc(my-vpc-01)을 선택한다.
- 서브넷은 첫번째 서브넷을 선택한다.
4.스토리지 추가, 5.테그 추가, 6.보안그룹 구성은 기본 값으로 선택 후 마지막으로 인스턴스 구성을 완료하도록 한다.
마지막으로 SSH 접속을 위한 KYE를 생성하도록 한다. 생성한 키는 다운로드 받아 잘 관리하도록 한다. (* 만약 기존에 사용하던 AWS 접속을 위해 사용하던 ssh key가 있다면 그걸 사용해도 된다.)
방금 생성한 EC2의 퍼블릭 IP 주소를 확인한다.
이제 우리가 만든 VPC 서브넷에 설치된 EC2가 외부에서 접속 가능하도록 설정을 하도록 하자.
인터넷 게이트웨이(Internet Gateway)
VPC 서브넷의 인스턴스에 대해 인터넷 접속이 가능하기 위해서는 VPC에 Internet Gateway가 연결되어 하며 서브넷의 라우팅 테이블과 생성한 Internet Gateway간에 연결이 되어 있도록 해야 한다. 또한 네트워크 ACL 및 시큐리티 그룹 체크도 필요하다.
(*인터넷 게이트웨이가 설정되어 있어야 인스턴스가 외부 접속이 가능하고 외부에서도 SSH등으로 접속이 가능하다)
AWS 관리 콘솔에서 VPC 항목을 찾아 들어가 아래와 같이 인터넷 게이트웨이를 선택한다.(아래의 그림에는 default vpn에 연결된 인터넷 게이트웨이 하나가 보인다.)
새로운 인터넷 게이트웨이 생성을 위해 인터넷 게이트웨이 생성 버튼을 클릭한다.
원하는 이름을 입력하고 인터넷 게이트웨이 생성 버튼을 클릭한다.
생성이 완료되면 아래와 같이 상태가 Detached 로 표시된다.
작업 버튼을 클릭해 VPC에 연결을 선택한다.
VPC 연결 창에서 우리가 만든 vpc(my-vpc-01)를 선택한다.
이제 연결되었다.
이제 이렇게 완성한 internet gateway를 우리가 만든 서브넷의 라이팅 테이블이 가리키도록 해야 한다.
VPC 대시보드(아래 그림 참조)에서 라우팅 테이블 항목을 클릭해 아래와 같이 화면을 연다. 그리고 우리의 VPC에 할당된 라우팅 테이블을 선택한 후 라우팅 탭을 선택한다. 그리고 라우팅 편집 버튼을 클릭하도록 한다.
라우팅 편집 창이 뜨면 라우팅 추가 버튼을 클릭해 대상에 0.0.0.0/0 (모든 IP) 과 인터넷 게이트웨이를 각각 입력 및 선택 하도록 한다.
마지막으로 변경 사항 저장을 클릭하고 인터넷 게이트웨이를 생성하면 모든 것이 완료된다.
이제 우리의 EC2서버는 외부에서 SSH로 접속 할 수 있다.
* SSH로 접근시 다음과 같은 에러가 나온다면
다운로드 받은 .pem 파일의 접근 권한을 600으로 바꿔서 실행 하면 된다.
e.g. chmod 600 sample_vpc_ssh_key.pem
끝
'Cloud Service > AWS' 카테고리의 다른 글
Event Broker로써 SQS, SNS, Kinesis, MQ, MSK 선택 (2) | 2022.01.17 |
---|---|
Amazon Linux에 yum 설치 (0) | 2022.01.17 |
AWS VPC 그리고 VPC 리소스 알아보기 (0) | 2022.01.17 |
Amazon Web Service 서비스 간단 정리 (0) | 2022.01.17 |
AWS 클라우드 소개 (0) | 2022.01.17 |