본문 바로가기
AWS/AWS Cloud School

[AWS] Cloud Technical Essentials - 1

by parkkingcar 2023. 11. 8.

 

서기옥님이 진행하는 Cloud Practitioner Essentials 과정을 기반으로 작성한 글 입니다. AWS 클라우드, AWS 제품, 서비스 및 일반 솔루션에 대한 내용과 그 실습으로 진행하였습니다.

 

 

1. Amazon EC2 인스턴스에서 VPC 생성 및 웹 애플리케이션 시작

 

• 퍼블릭 서브넷 2개가 포함된 새 Amazon VPC 생성 

• 인터넷 게이트웨이 생성 

• 인터넷으로의 퍼블릭 경로가 포함된 라우팅 테이블 생성 

• 보안 그룹 생성 • Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 시작 

• 사용자 데이터 스크립트를 사용하여 웹 애플리케이션을 호스팅하도록 EC2 인스턴스 구성

 

 

 

 

먼저 관리콘솔에서 리전을 선택합니다. 비용과 법적준수, 지연시간을 고려하여 리전을 선택합니다.

 

 

이제 VPC를 생성합니다. 콘솔 상단 검색창에서 VPC를 검색하고 선택합니다. 

 

 

아래에 VPC 생성을 클릭합니다.

 

 

VPC 설정에서 생성할 리소스를 VPC 등으로 선택합니다. 이름 태그는 자동생성을 선택하고 'lab-2'를 입력합니다. 다른 설정도 아래와 동일한지 확인합니다.

 

 

가용 영역을 2개로 선택하고 퍼블릭 서브넷 수를 2, 프라이빗 서브넷 수를 0으로 선택합니다. 서브넷 CIDR 블록 사용자 지정 부분을 확장하여 각 서브넷에 아래와 같이 할당합니다. NAT 게이트웨이와 S3엔드포인트는 사용하지 않습니다. DNS 옵션은 모두 활성화합니다. 

 

 

 

위와같이 설정한 후 우측에서 아래와 같이 미리보기를 확인할 수 있습니다. 이후 아래 VPC 생성을 클릭합니다.

 

 

 

그러면 워크플로를 생성하고 VPC보기를 클릭합니다.

 

 

 

이제 라우팅 테이블에 퍼블릭 경로를 추가합니다. 좌측 탭에 Route tables를 클릭하고 lab-2-rtb로 시작하는 Name 을 가진 라우팅 테이블을 클릭하여 선택합니다. 이후 탭에서 라우팅을 선택하면 아래 사진과 같이 표시됩니다. 라우팅 편집을 클릭합니다.

 

 

 

하단의 라우팅 추가 버튼을 선택합니다. 대상을 0.0.0.0/0을 선택하여 모든 IP를 선택합니다. 대상에서 인터넷 게이트웨이를 선택하고 아래 ID가 lab-2-igw인 인터넷 게이트웨이를 선택한 후 변경 사항 저장을 클릭합니다.

 

 

 

위 과정을 통해 아래와 같은 다이어그램의 VPC가 생성됩니다.

 

 

 

다음으로 VPC 보안 그룹을 생성합니다. 좌측 탭의 Security groups를 선택합니다. 이후 보안 그룹 생성을 클릭합니다.

 

 

 

기본 세부 정보에서 보안 그룹 이름을 'Web Security Group'로 입력합니다. 설명을 'Enable HTTP access from anywhere'로 입력합니다. VPC는 위에서 생성한 lab-2-vpc를 선택합니다.

 

 

 

이후 모든 위치로부터 인바운드 웹 요청을 허용하는 규칙을 추가합니다. 인바운드 규칙에서 규칙 추가를 클릭합니다. 유형을 HTTP로 선택합니다. 소스에서 Anywhere-IPv4를 선택하거나 0.0.0.0/0을 입력합니다. 설명에 'Allow  web requests from anywhere'를 입력합니다. 아웃바운드 규칙은 따로 설정하지 않아도 기본적으로 모든 위치로 허용합니다. 이후 보안 그룹 생성을 클릭합니다.

 

 

 

이제 EC2 인스턴스를 VPC의 서브넷에서 실행합니다. 콘솔 상단 검색창에서 EC2를 검색하고 선택합니다. 

 

 

 

좌측탭의 인스턴스를 클릭합니다. 인스턴스 시작을 클릭합니다.

 

 

 

이름에 'Web Application'를 입력합니다. Quick start 창 아래에서 Amazon Linux를 선택하고 'Amazon Linux 2023 AMI'인 AMI를 선택합니다. 아키텍처는 64-bit (x86)를 선택합니다.

 

 

 

인스턴스 유형은 t2.micro를 선택합니다. 키 페어는 없이 계속 진행을 선택합니다. 이후 네트워크 설정에서 편집을 클릭합니다.

 

 

 

네트워크 설정에서 위에서 생성한 lab-2-vpc를 선택합니다. 서브넷은 아래 lab-2-subnet-public-1-[az-a]에 해당하는 첫번째 가용영역을 선택합니다. 퍼블릭 IP 자동 할당을 활성화합니다. Firewall에서 보안그룹은 Select an existing security group를 선택합니다. 일반 보안 그룹에서 위에서 생성한 Web Security Group 보안그룹을 선택합니다. 스토리지는 기본 설정을 유지합니다.

 

 

 

 

하단의 고급 세부 정보에서 사용자 데이터(User data) 텍스트 박스에 아래 스크립트를 입력합니다. 인스턴스가 실행될 때 최초로 아래 셸 스크립트를 실행합니다.

아래 스크립트는 다음 태스크를 수행합니다. 

• 시스템 업데이트 설치 

• Node.js 설치 프로그램 다운로드를 위한 소스 리포지토리 설치 

• Node.js 설치 

• 애플리케이션 코드 다운로드 

• 웹 애플리케이션 전용 디렉터리 생성 

• 지정된 디렉터리에 애플리케이션을 다운로드하여 추출

#!/bin/bash -ex

# Update yum
yum -y update

#Install nodejs
yum -y install nodejs

# Create a dedicated directory for the application
mkdir -p /var/app

# Get the app from S3
wget https://aws-tc-largeobjects.s3-us-west-2.amazonaws.com/ILT-TF-100-TECESS-5/app/app.zip

# Extract it to the desired folder
unzip app.zip -d /var/app/
cd /var/app/

# Install dependencies
npm install

# Start the app
npm start

 

 

 

우측의 요약에서 인스턴스 개수가 1개인지 확인한 후 인스턴스 시작을 클릭합니다. 

 

 

 

이후 페이지에서 모든 인스턴스 보기를 클릭하여 아래의 페이지로 이동합니다. 만약 인스턴스가 표시되지 않으면 상단에 새로고침을 누릅니다. 아래에 실행중인 인스턴스 상태를 확인합니다. 해당 인스턴스를 선택하면 하단에 퍼블릭 IPv4주소를 확인합니다.

 

 

새 브라우저 탭을 열고 퍼블릭 IPv4 주소를 입력합니다. 위 사진을 기준으로 http://3.106.XXX.XXX:80을 입력합니다. 그러면 아래와 같이 EC2 인스턴스에 웹 서버의 페이지를 표시합니다.

 

 

 

위 과정을 통해 아래 다이어그램과 같은 환경을 구성합니다.

댓글