Cloud AWS, Azure, GCP

AWS 인프라 구축 실습 1회 - VPC, Subnet, Internet Gateway, EC2

SB리치퍼슨 2021. 10. 18. 00:58

AWS 인프라 구축 실습 1회 - VPC, Subnet, Internet Gateway, Routing Table, EC2


AWS 인프라 구축 실습 첫 시간입니다.

Amazon Web Services(AWS)는 전 세계적으로 분포한 데이터 센터에서 200개가 넘는 완벽한 기능의 서비스를 제공하는, 세계적으로 가장 포괄적이며, 널리 채택되고 있는 클라우드 플랫폼입니다. 빠르게 성장하는 스타트업, 가장 큰 규모의 엔터프라이즈, 주요 정부 기관을 포함하여 수백만 명의 고객이 AWS를 사용하여 비용을 절감하고, 민첩성을 향상시키고 더 빠르게 혁신하고 있습니다.
아마존에서는 위와 같이 AWS를 소개하고 있습니다. 
클라우드 컴퓨팅은 IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 것을 말합니다. 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, Amazon Web Services(AWS)와 같은 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스와 같은 기술 서비스에 액세스할 수 있습니다.

이번 시간에는 VPC, Subnet, Internet Gateway, EC2 을 실습을 해서 배운 내용을 습득하고 실무에서 활용할 수 있도록 해보겠습니다.


그러면 이제 다양한 클라우드 서비스를 위한 기본적인 설정기능부터 시작합니다.



필요한 내용은 먼저 AWS에 가입을 해야겠죠.
AWS 사이트에 새 계정 가입은 다음에 url에 접속해서 순서대로 입력해 나가면 가입이 완료됩니다.
url : https://aws.amazon.com/ko/


가입한 계정으로 루트계정이 됩니다. 이 루트계정을 이용하여 로그인해서 실습을 해보겠습니다.


AWS 서비스를 이용할 때 가장 궁금하고 중요한 것이 요금제입니다.
AWS 요금제는 다음과 같은 요금제가 있습니다. 

프리티어 
AWS 프리 티어에는 1년간 매달 750시간의 Linux 및 Windows t2.micro 인스턴스(t2.micro가 제공되지 않는 리전의 경우 t3.micro) 사용 시간이 포함됩니다. 프리 티어를 계속 유지하려면 EC2 마이크로 인스턴스만 사용하십시오. 각 서비스를 사용하기에 앞서 아마존에서 소개하는 요금정보를 확인하시기 바랍니다.

각 서비스마다 요금제가 각기 다르지만 기본적으로 가장 많이 사용되는 EC2 인스턴스에 대하여 알아보겠습니다.
Amazon EC2 인스턴스 구매 방법에는 On Demand(온 디맨드), Saving Plans, Reservation Instance(예약 인스턴스), Spot Instance(스팟 인스턴스), 전용 호스팅이 있습니다.

온 디맨드 스팟 인스턴스
실습용, 단기 사용이 많음. 가장비싸다. 실습용 가능.최고가 경매(bidding)으로 구매해서 사용중에도 나보다 최고가 구매자가 발생하면일정시간내에 데이터가 삭제되면서 소유주가 이전된다.즉, 서비스를 상실하게 된다.컴퓨팅이나 병렬작업이나 장애에 탄력적인 서비스에 적합.오토스케일링용이나 로드밸런싱용, 자가복제 대상용
Saving Plans 전용 호스팅
  선결제
  예약 호스팅
  선결제. 최소1년. 장기간일수록 할인율 증가선결제 취소불가. 하지만 지속적으로 요청하면 취소해주는 경우가 있기도 한다.


AWS와 같은 클라우드 서비스를 이용하는 이유는 고가용성 무중단 서비스가 가장 큽니다.
하드웨어의 물리적인 제약을 관리형 서비스로 리소스의 제공을 쉽게 관리하고 유연하게 서비스를 운영할 수 있습니다.
또, 배포정책에 따라 운영중인 서비스를 무중단 배포할 수 있는 서비스를 제공합니다.



1. VPC 생성

VPC Dashboard로 이동합니다.


여기에서는 VPC, Subnet, Internet Gateway, Routing Table을 실습합니다.

* VPC란
Virtual Private Cloud(VPC)로 사용자의 AWS 계정 전용 가상 네트워크입니다.
AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 기존 네트워크와 매우 유사합니다.
기본적으로 65,536개의 IP를 소유하고 있습니다. 네트워크 시스템에서 필요한 ip를 제외한 수를 이용할 수 있습니다.
기본 VPC 1개에 subnet 4개, 라우팅 테이블 1개.
* Subnet이란
VPC의 IP 주소 범위로서 VPC내에서 서브넷(Subnet)이라는 것은 하나의 네트워크가 분할되어 나눠진 작은 네트워크입니다. 네트워크를 분할하는 것을 서브네팅(Subnettin)이라고 합니다. 따라서 앞의 24비트는 네트워크의 주소이고 뒤의 8비트는 호스트 주소입니다
* Routing Table이란
라우팅 테이블(영어: routing table)은 컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시키는 목적으로 사용됩니다.
네트워크 트래픽을 전달할 위치를 결정하는 데 사용하는 라우팅이라는 이름의 규칙 집합.
172.31.0.0/16(65536 건 ip) local용(VPC 이내)
0.0.0.0/0 모든 인터넷(기본 로컬 라우팅 제외한 범위)
* Internet Gateway란
VPC의 리소스와 인터넷 간의 통신을 활성화하기 위해 VPC에 연결하는 게이트웨이입니다.


1.1. VPC 생성하기
VPC 메뉴에서 생성을 클릭합니다.


1.1.1. VPC설정
이름 태그 : "my-vpc-01" 입력
* default subnet : 172.31.0.0/16 이고 가용영역은 '4,091'개 
IPv4 CIDR 블록 : "10.0.0.0/16" 입력
* 16bits 씩 나눌 수 있도록 
생성 버튼을 클릭하여 생성합니다.


1.1.2. 'DNS HOST 이름 편집'
생성한 VPC행의 빈란을 클릭하고 dns호스트 이름 활성 : 체크



2. Subnet 생성

2.1. Subnet 메뉴로 이동
"서브넷 생성" 클릭


2.2. 서브넷 설정

VPC ID 에 "my-vpc-01" 선택.
서브넷설정에서
서브넷 이름 "my-subnet-01" 입력, 가용영역 4가지를 입력하고 CIDR 입력하고 생성
ip : 0은 network  의미로 제외. 255: broadcasting의미로 제외

VPC 10.0.0.0/16 에 대하여 4개의 서브넷 생성
(20비트단위로 4091개 ip 가능)

name : "my-subnet-01a"
CIDR : 10.0.0.0/20

name : "my-subnet-02b"
CIDR: 10.0.16.0/20 

name : "my-subnet-03c"
CIDR: 10.0.32.0/20

name : "my-subnet-04d"
CIDR: 10.0.48.0/20 



3. Internet Gateway 설정

3.1. VPC와 Internet Gateway 연결
인터넷 게이트웨이는 VPC보다 먼저 설정해 두는 것도 좋습니다.
인터넷 게이트웨이란 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어, 즉 다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인트입니다.
먼저, 인터넷게이트웨이 메뉴를 클릭합니다.

➀ "인터넷 게이트웨이 " 메뉴 선택
 



➁ "인터넷 게이트웨이 생성" 클릭



➂ "인터넷 게이트웨이 생성" 설정

이름 태그 : "my-internet-gateway" 입력하고 "인터넷 게이트웨이 생성" 클릭



➃ "작업"메뉴에서 "VPC에 연결" 선택
사용 가능한 VPC에서 "my-vpc-01"을 선택하여 연결



➄ VPC와 연결한 인터넷게이트웨이


인터넷게이트웨이와 다른 네트워크 ACL은 inbound 통신, outBound 통신, 서브넷 단위가 설정의 대상이 됩니다.
Security Group : inbound 통신 거부를 할 수 있습니다.



4. Routing Table 

4.1. Routing Table 연결

"라우팅 테이블"메뉴 클릭
VPC를 생성하면 자동으로 라우팅 테이블이 생성됩니다.
VPC에서 생성한 라우팅 테이블에 name tag "MY-RTB-01"를 입력합니다. 
'라우팅 테이블'메뉴에서 라우팅탭을 선택하고 "라우팅편집"을 클릭합니다.

라우팅 편집 페이지에서 "라우팅 추가"를 클릭하여 
대상(destination) : 0.0.0.0/0
대상(target) : 인터넷게이트웨이를 선택 다시, "my-IGW"를 선택합니다.  그리고 저장합니다.



5. EC2 생성


EC2설정에 앞서 몇몇 용어를 살펴보겠습니다.
인스턴스 유형이라는 설정이라고 하여 EC2 요금제에 중요한 역할을 하는 부분이 있습니다.
프리티어를 사용하는 경우 가장 많이 사용하는 유형이 "t2.micro"입니다.
이 명칭의 형식은 다음과 같습니다.

t 2 micro
유형 cpu generation. 유형별 cpu 설정이 다름 ram size
범용 t, M A Mac
컴퓨팅 최적화 C
메모리 최적화 R X u z
가속화된 컴퓨팅 P G F Inf
스토리지 최적화 I D H
t2의 경우
t2.nano 1CPU
t2.micro 1CPU
t2.small 1CPU
t2.medium 2CPU
t2.large 2CPU
t2.xlarge 4CPU
t2.2xlarge 8CPU
 

Convertiable : 가변 인스턴스로 약정보다 비쌉니다.
Scheduled(전용) 상대적으로 저렴합니다.

5.1. EC2 Dashboard
EC2 Dashboard로 이동합니다.

EC2 관련 리소스 현황을 한 눈에 볼 수 있습니다.


서비스 상태에서 보이는 우리가 사용할 Region Available zone이란
리전(Region)은 ap-northeast-2와 같은 지역으로 1은 도쿄, 2는 서울, 3은 오사카입니다.
가용영역(Available zone)은 데이터센터 건물과 같은 개념으로 생각하면 됩니다. 리전 뒤에 붙는 알바벳입니다.

ap-northeast-2a 'ap-northeast-2'리전의 테이터센터 'a'호기
ap-northeast-2b 'ap-northeast-2'리전의 테이터센터 'b'호기
ap-northeast-2c 'ap-northeast-2'리전의 테이터센터 'c'호기
ap-northeast-2d 'ap-northeast-2'리전의 테이터센터 'd'호기

가용센터 설치 조건은 100km 이내의 시설입니다.

5.1.1. EC2 Instance 생성

5.1.1. 인스턴스 시작을 클릭하여 인스턴스를 생성합니다.

참고로 인스턴스 상태를 나타내는 한국어 용어에서 
- 인스턴스 시작 : Instance Lauch. EC2 생성
- 인스턴스 시작 : Instance Start. Stop된 EC2를 시작
- 인스턴스 중지 : Instance Stop. Stop으로 restart 가능.
- 인스턴스 종료 : Instance Terminate -> Shutdown 모든 데이터가 지워짐
- 절전 : Hibernate 

5.1.2. 단계1 : AMI 선택
"Amazon Linux 2 AMI"를 선택 (centOS7, rf7, fedoracore와 유사)

5.1.3. 단계 2: 인스턴스 유형 선택
"t2.micro"를 선택(프리티어)


5.1.4. 단계 3 : 인스턴스 세부정보 구성
네트워크는 기본-VPC를 선택하고 서브넷은 가용영역(AZ)를 2a로 선택합니다.
사용자데이터 항목에서는 다음의 명령어를 입력하여 생성시에 apache web server를 설치합니다.

작성한 EC2 서버는 EC2 웹서버용으로 실습합니다.

5.1.5. 단계 4: 스토리지 추가
기본 8GiB로 진행합니다.


5.1.6. 단계 5: 태그 추가
"Name 태그를 추가하려면 클릭합니다"를 클릭하여 "Name Tag"를 "my-web"으로 입력합니다.

5.1.7. 단계 6: 보안 그룹 구성
보안그룹은 방화멱입니다. 새 보안그룹명을 생성합니다.
보안그룹명은 : "my-sg-web"으로 합니다.
큐칙을 추가하여 유형은 "HTTP", 소스는 "위치무관(anywhere)"로 설정합니다.

5.1.8. 단계 7: 인스턴스 시작 검토
이제까지의 설정 현황을 확인하고 "시작하기"를 클릭합니다.

5.1.9. 기존 키 페어 선택 또는 새 키 페어 생성
"새 키 페어 생성"을 선택하고 키 페어 이름 "my-aws-train"이라고 입력 후 "키 페어 다운로드"를 클릭합니다.
(주의: 키페어를 다운로드 후 키페어를 절대 잃어버리지 마십시오. 프라이빗 키이자 EC2 를 접속할 수 있는 유일한 방법일 수 있습니다.)

* 다운로드 받은 키 페어(*.pem)파일을 적당한 곳으로 이동하여 보관합니다.
SSH에 접속하기 위해서는 MacOS의 환경에서 실습을 하는 경우, "터미널"을 이용하여 접속하시면 됩니다. 
윈도우즈를 이용하시는 경우 "MobaXterm portable"등의 SSH 접속 클라이언트를 이용하여 접속합니다.
앞으로 설명은 MacOS 기준으로 진행하겠습니다.

5.1.10. 인스턴스 생성완료
이제, 인스턴스 시작을 클릭하여 인스턴스를 생성합니다.
"인스턴스 보기"를 클릭하여 생성환 EC2가 활성화 되어 있는지 확인합니다.

위와 같이 "대기중"으로 표시되는 경우 잠깐만 기다리시면 아래와 같이 이용가능하도록 실행중(활성화) 됩니다.

 

5.1.11. EC2에 SSH 접속
다운로드 받은 키 페어를 특정폴더에 이동 한 후 해당폴더에서 터미널에서 해당 폴더로 이동합니다.
*.pem 파일의 접근권한을 변경합니다.

chmod 400 my-aws-train.pem

EC2 인스턴스 행의 빈공간을 클릭하고 우측 상단의 "연결"을 클릭합니다.

"SSH 클라이언트" 탭을 클릭하고 아래의 "퍼블릭 DNS을(를) 사용하여 인스턴스에 연결을 복사합니다.

그리고 취소를 클릭합니다.

이제 터미널에서 SSH에 명령줄에 붙여넣기를 하고 엔터를 쳐서 생성한 EC2에 접속해 봅니다.
첫 접속시에는 질문에 "yes"를 입력하고 엔터를 칩니다.

다음부터는 긴 ssh 접속 명령어를 쉽게 하기 위하여 shell 파일 명령어를 하나 만들어서 접속합니다.

vi ssh.sh
$ ssh -i "my-aws-train.pem" ec2-user@ec2-13-125-104-85.ap-northeast-2.compute.amazonaws.com

# 저장 후 접근권한을 변경합니다.
$ chmod 700 ssh.sh

# 실행하여 잘 접속되는지 확인합니다.
$ ./ssh.sh

 


6. VPC를 사용하는 EC2 생성

6.1. EC2 에서는 지금까지 생성한 VPC와 subnet을 연결합니다.

단계1 AMI선택 Amazon Linux 2 AMI
단계2 인스턴스 유형 선택 t2.Micro
단계3 인스턴스 구성 네트워크 : "my-vpc-01"
서브넷 : "my-subnet-01a"
퍼블릭IP자동활동 : "활성화"
사용자데이터 : (아래와 같이 입력)
#!/bin/bash
yum install -y httpd
systemctl enable --now httpd
echo "webserver" > /var/www/html/index.html"
단계4 스토리지추가  
단계5 태그추가 "name" 태그 : "MY-WEB-01"
단계6 보안그룹 구성 이름 : "my-sg-web-01"
유형 추가 : http, 위치무관
단계7 검토 기존키 선택 "my-aws-train"
인스턴스 시작  

6.2. SSH, web server확인

ssh 접속 : 키파일이 있는 폴더에서 EC2서버에 로그인 테스트
web server 확인 : 퍼블릭 IPv4 DNS를 복사하고 브라우저 url 란에 붙여넣기


이렇게 하여 VPC, Subnet, Internet gateway, Routing Table, EC2 구축 실습을 하였습니다.
그럼 다음 회차 AWS 인프라 구축 실습 - VPC Peering에서 뵙겠습니다.

 



반응형