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 리소스를 고객이 정의한 가상 네트워크에서 실행할 수 있는 서비스이다.
VPC는 AWS클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있다.
이 가상 네트워크는 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사하며
AWS의 확장 가능한 인프라를 사용한다는 이점이 있다.
여러 가용 영역을 포괄하는 VPC를 생성할 수 있다.
보안 그룹은 하나 이상의 인스턴스에 대한 트래픽을 제어하는 가상 방화벽 역할을 한다.
인스턴스를 시작할 때 하나 이상의 보안 그룹을 인스턴스와 연결하고,
연결된 인스턴스로 트래픽의 송신 또는 수신을 허용하는 규칙을 각 보안 그룹에 추가한다.
IGW (인터넷 게이트웨이)
VPC에 있는 인스턴스와 인터넷 간 통신을 허용하는 VPC 구성 요소이다.
VPC를 생성하면 각 가용 영역에 하나 이상의 서브넷을 추가할 수
있다.
각 서브넷은 라우팅 테이블에 연결되어 있어야 한다.
각 서브넷은 하나의 가용 영역 내에 모두 상주하며, 다른 영역으로 확장할 수 없다.
서브넷 트래픽이 인터넷 게이트웨이로 라우팅 되는 경우 해당 서브넷을 퍼블릭 서브넷이라 하며,
서브넷이 인터넷 게이트웨이로 라우팅 되지 않는 경우 해당 서브넷을 프라이빗 서브넷이라 한다.
실습 시나리오
과제 1: VPC 생성
하나의 가용 영역에서 2개의 서브넷으로 구성된 VPC 생성.
AWS Management Console의 Services 메뉴에서 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 VPC의 Main이 Yes인 라우팅 테이블을 선택한다.
이름은 Private Route Table로 지정해준다.
하단의 Routes 클릭.
Destination 0.0.0.0/0 이 Target eni-xxx / i-xxx로 설정되어 있는지 확인한다.
이 라우팅 테이블은 탄력적 네트워크 인터페이스(ENI) 및 인스턴스 ID가 식별되면
프라이빗 서브넷에서 NAT 인스턴스로 트래픽을 라우팅하는 데 사용된다.
하단의 Subnet Associations 클릭.
Edit > Private Subnet 1과 Private Subnet 2 선택한다.
그럼 Explicitly Association 부분이 2 Subnets으로 변경된 것을 볼 수 있다.
이번엔 그 위 My Lab VPC의 Main부분이 No인 라우팅 테이블을 선택한다.
라우팅 테이블의 이름은 Public Route Table로 지정한다.
하단의 Routes 클릭.
Destination 0.0.0.0/0이 Target igw=xxx로 설정되어 있는지 확인한다.
이 라우팅 테이블은 서브넷에서 통신용으로 사용된다.
하단의 Subnet Associations 클릭.
Edit > Public Subnet 1과 Public 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
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 1의 Status 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 규칙을 설정해주어야 한다.
'AWS 공부기록 > 종합 실습' 카테고리의 다른 글
AWS_Auto Scaling 및 Load Balancer를 이용한 고가용성 환경 구축(2) (0) | 2019.01.02 |
---|---|
AWS_Auto Scaling 및 Load Balancer를 이용한 고가용성 환경 구축(1) (0) | 2019.01.02 |
AWS_웹 애플리케이션 배포 (0) | 2019.01.02 |
AWS_Elastic Load Balancing(ELB) 및 Auto Scaling (0) | 2019.01.02 |
AWS_Amazon Relational Database Service(RDS) (0) | 2018.12.28 |
블로그의 정보
현생이네
현생사는갓생지망생