끄적끄적 아무기록

AWS_VPC 구축 및 웹 서버 시작

by 현생사는갓생지망생
반응형

실습 1 : VPC 구축 및 웹 서버 시작

 

목표


1.     Amazon Virtual Private Cloud(VPC)를 사용하여 자체 VPC를 생성.

2.     VPC에 구성 요소를 추가하여 사용자 정의된 네트워크 구성. (서브넷 생성)

3.     EC2 인스턴스에 대한 보안 그룹 생성.

4.     웹 서버를 실행하고 이를 VPC에서 시작하도록 EC2 인스턴스를 구성 및 사용자 정의

 

VPC ( Amazon Virtual Private Cloud )

 

AWS 리소스를 고객이 정의한 가상 네트워크에서 실행할 수 있는 서비스이다.

VPCAWS클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있다.

이 가상 네트워크는 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사하며

AWS의 확장 가능한 인프라를 사용한다는 이점이 있다.

여러 가용 영역을 포괄하는 VPC를 생성할 수 있다.

보안 그룹은 하나 이상의 인스턴스에 대한 트래픽을 제어하는 가상 방화벽 역할을 한다.

인스턴스를 시작할 때 하나 이상의 보안 그룹을 인스턴스와 연결하고,

연결된 인스턴스로 트래픽의 송신 또는 수신을 허용하는 규칙을 각 보안 그룹에 추가한다.

 

IGW (인터넷 게이트웨이)

 

VPC에 있는 인스턴스와 인터넷 간 통신을 허용하는 VPC 구성 요소이다.

VPC를 생성하면 각 가용 영역에 하나 이상의 서브넷을 추가할 수 있다.

각 서브넷은 라우팅 테이블에 연결되어 있어야 한다.

각 서브넷은 하나의 가용 영역 내에 모두 상주하며, 다른 영역으로 확장할 수 없다.

서브넷 트래픽이 인터넷 게이트웨이로 라우팅 되는 경우 해당 서브넷을 퍼블릭 서브넷이라 하며,

서브넷이 인터넷 게이트웨이로 라우팅 되지 않는 경우 해당 서브넷을 프라이빗 서브넷이라 한다.

 

실습 시나리오



과제 1: VPC 생성


하나의 가용 영역에서 2개의 서브넷으로 구성된 VPC 생성.




AWS Management ConsoleServices 메뉴에서 VPC를 클릭 후, Launch VPC Wizard 클릭한다.



탐색 창에서 VPC with Public and Private Subnets > Select 클릭.



IPv4 CIDR block : 10.0.0.0/16 (10.0.0.0 ~ 10.0.255.255)

VPC name : My Lab VPC

 

Public subnet’s IPv4 CIDR : 10.0.1.0/24 (10.0.1.0 ~ 10.0.1.255)

Availability Zone : ap-northeast-2a (첫 번째 가용 영역)

Public subnet name : Public Subnet 1

 

Private subnet’s IPv4 CIDR : 10.0.3.0/24 (10.0.3.0 ~ 10.0.3.255)

Availability Zone : ap-northeast-2a (첫 번째 가용 영역)

Private subnet name : Private Subnet 1

 

Specify the details of your NAT gateway: “Use a NAT instance instead” 클릭.



Key pair name : Qwiklabs

설정을 모두 완료했다면 Create VPC



My Lab VPC 이름의 VPC가 생성되었다.



과제 2: 추가 서브넷 생성


My Lab VPC의 다른 가용 영역에 서브넷 2개를 추가로 생성하고,

기존 라우팅 테이블을 통해 서브넷을 연결한다.



현재 위에서 만들었던 2개의 서브넷이 보인다.

상단의 Create subnet 클릭.



Name tag : Public Subnet 2

VPC : My Lab VPC

Availability Zone : ap-northeast-2c (두 번째 가용 영역)

IPv4 CIDR block : 10.0.2.0/24 (10.0.2.0 ~ 10.0.2.255)



Name tag : Private Subnet 2

VPC : My Lab VPC

Availability Zone : ap-northeast-2c (두 번째 가용 영역)

IPv4 CIDR block : 10.0.4.0/24 (10.0.4.0 ~ 10.0.4.255)



4개의 서브넷이 모두 생성되었다.



탐색 창에서 Route Tables 클릭.

My Lab VPCMainYes인 라우팅 테이블을 선택한다.



이름은 Private Route Table로 지정해준다.



하단의 Routes 클릭.

Destination 0.0.0.0/0 Target eni-xxx / i-xxx로 설정되어 있는지 확인한다.

이 라우팅 테이블은 탄력적 네트워크 인터페이스(ENI) 및 인스턴스 ID가 식별되면

프라이빗 서브넷에서 NAT 인스턴스로 트래픽을 라우팅하는 데 사용된다.



하단의 Subnet Associations 클릭.

Edit > Private Subnet 1Private Subnet 2 선택한다.



그럼 Explicitly Association 부분이 2 Subnets으로 변경된 것을 볼 수 있다.

이번엔 그 위 My Lab VPCMain부분이 No인 라우팅 테이블을 선택한다.

라우팅 테이블의 이름은 Public Route Table로 지정한다.



하단의 Routes 클릭.

Destination 0.0.0.0/0Target igw=xxx로 설정되어 있는지 확인한다.

이 라우팅 테이블은 서브넷에서 통신용으로 사용된다.



하단의 Subnet Associations 클릭.

Edit > Public Subnet 1Public Subnet 2를 선택한다.


 

과제 3: VPC 보안 그룹 생성


웹 트래픽에 대한 액세스 권한을 부여하는 VPC 보안 그룹을 생성한다.



탐색 창에서 Security Groups를 클릭 후, Create security group 클릭한다.



Name tag : WebSecurityGroup

(“A security group description is required.” 메시지는 무시해도 된다.)

Security group name : WebSecurityGroup 선택.

Description : Enable HTTP access

VPC : My Lab VPC



생성된 보안 그룹 선택 후 하단에 Inbound Rules 클릭한다.



생성된 보안 그룹 선택 후 Edit >

Type : HTTP(80)

Source : 0.0.0.0/0



과제 4: 첫 번째 웹 서버 인스턴스 시작


생성한 VPC에서 EC2 인스턴스를 시작하고 웹 서버로 작동할 수 있도록 인스턴스를 부트스트랩한다.



Services 메뉴에서 EC2를 클릭 후, Launch Instance 클릭한다.




Amazon Linux 2 AMI를 선택한다.




t2.micro 선택 후 Next: Configure Instance Details를 클릭한다.




Network : My Lab VPC

Subnet : Public Subnet 2 (10.0.2.0/24)

Auto-assign Public IP : Enable



Advanced Details 섹션을 확장하여 User data에 아래의 코드를 입력해준다.


#!/bin/bash –ex

yum –y update

yum –y install httpd php mysql php-mysql

chkconfig httpd on

service httpd start

if [ ! –f /var/www/html/lab-app.tgz ]; then

cd /var/www/html

wget https://us-west-2-tcprod.s3.amazonaws.com/courses/ILT-TF-100-TECESS/v4.3.6/lab-1-build-a-web-server/scripts/lab-app.tgz

tar xvfz lab-app.tgz

chown apache:root /var/www/html/rds.conf.php

fi


사용자 데이터는 Linux 인스턴스를 PHP 웹 애플리케이션으로 변환한다.

설정을 완료했다면 Next : Add Storage를 클릭한다.






그대로 다음.



Key : Name , Value : Web Server 1로 입력한다.




“Select an existing security group” 클릭 후, 위에서 생성한 보안 그룹을 선택한다.

만약 포트 22를 통해 인스턴스에 연결할 수 없다는 경고 메시지가 뜨면 Continue를 클릭한다.




인스턴스 정보를 확인한 후 Launch를 클릭한다.



Qwiklabs 키 페어를 선택하고 승인 확인란을 선택 후 Launch Instances를 클릭한다.




View Instances를 클릭한다.




Web Server 1인스턴스와 VPC 마법사에서 시작한 NAT 인스턴스가 보일 것이다.

Web Server 1Status Checks 열이 2/2 checks passed가 될 때까지 기다린다.





Web Server 1을 선택하고 Description 탭에서 Public DNS 값을 복사한다.





웹 브라우저 창에 복사한 Public DNS 값을 붙여 넣으면

AWS 로고 및 인스턴스 메타데이터 값을 표시하는 웹 페이지가 보인다.




만약 웹 페이지가 정상적으로 나오지 않는다면 xshell로 접속하여 위의 User Data에서

입력해주었던 명령어를 직접 입력해준다.



호스트 : Web Server Public IP 입력





사용자 인증 > 방법 : Public Key

사용자 키 : 다운로드 받은 KeyPair





만약 사용자 이름을 모른다면 아무거나 쳐보았을 때 이러한 메시지가 뜨므로 ec2-user로 접속하면 된다.




주의할 점은 보안 그룹에서 22번 포트 Inbound 규칙을 설정해주어야 한다.






반응형

블로그의 정보

현생이네

현생사는갓생지망생

활동하기