본문 바로가기
AWS/AWS TechCamp

2. AWS TechCamp [기초 과정] : 기초부터 배우는 AWS 핵심 서비스로 웹 애플리케이션 구축하기

by jys275 2024. 6. 25.

2024년 6월 25일 (화) 2:00 PM – 5:00 PM

 
 


 
 
AWS Region
전 세계에 AWS 데이터센터가 클러스터 형태로 위치한 물리적 위치이다.
하나의 리전은 고가용성, 확장성과 내결함성을 위해 3개 이상의 AZ로 구성된다.

Availability Zones(가용영역)
모든 AWS 리전은 지리적 영역 내에서 격리되고
물리적으로 분리된 최소 3개의 AZ(가용 영역)로 구성된다.
 
 


 

Amazon VPC(Virtual Private Cloud)
 
 
사용자가 정의한, 논리적으로 격리된 가상의 프라이빗 네트워크 환경이다.
간단한 구성만으로도 AWS의 확장 가능한 인프라를 기존 데이터센터 환경과 유사하게 사용한다.

Amazon VPC 구성

1. 리전 선택 및 IP 주소 범위 설정 

리전 선택 후에는 IP주소 범위를 정해야 한다. CIDR라는 국제 표준을 사용한다.
IP 대역의 시작 주소와 크기(넷마스크)를 정의.

2. 가용 영역 내 서브넷 정의 

서브넷을 용도에 따라 분리하여 관리 측면에서 가시성 높게 운영한다. 
컴퓨팅 리소스를 여러 가용영역에 배포하여 네트워크 장애 등을 고가용성 확보가 가능하다(+보안).

3. Internet Gateway 설정 

Internet Gateway는 VPC와 인터넷을 연결해 주는 어떠한 대문이다.
이를 위해서는 통로를 만들어줘야 하는데, 이것이 라우팅 테이블이다.

4. 라우팅 테이블 구성 

Destination(트래픽을 이동할 대상 IP 주소(대상 CIDR)의 범위)와
Target(대상 트래픽을 전송할 때 사용할 게이트웨이, 네트워크 인터페이스) 등이 존재한다.
 
VPC에서는 인터넷 게이트웨이를 통해 연결된 퍼블릭 서브넷과 
그 외로 프라이빗 서브넷으로 서브넷을 구성하여, 네트워크의 망분리 환경을 구성할 수 있다.

5. 네트워크 보안 구성

보안 구성을 위해서는 방화벽 설정을 해야 한다. 즉, VPC에서 액세스를 제어해야 한다.
서브넷 단위 방화벽인 NACL과 인스턴스 단위 방화벽인 보안그룹이 존재한다.




 

Amazon EC2(Amazon Elastic Compute Cloud)
 
 
EC2 인스턴스는 AWS에서 제공하는 가상 서버이며, 클라우드에서 온디맨드 확장 가능 컴퓨팅 용량을 제공한다.
원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있다.

동작 방법
EC2 인스턴스는 가상 환경이고, 각각의 인스턴스에서 필요한 운영체제,
소프트웨어 등의 템플릿들이 모두 담겨있는 것이 AMI(Amazon Machine Image)이다.
 
이 AMI를 선택하여 EC2 인스턴스를 시작할 수 있다.
 
특징
EC2 인스턴스는 여러 유형으로 나뉘는데 사용자는 
자신의 워크로드에 가장 적합한 인스턴스 유형을 선택하여 최적의 성능을 얻을 수 있다.


ELB(Elastic Load Balancing)
네트워크 트래픽 분산을 통한 애플리케이션 확장성 개선, 여러 가용 영역을 기반으로 고가용성 제공,
트래픽에 따라 자동 조정을 하는 로드밸런싱을 제공한다.

EC2 Auto Scaling
비정상 인스턴스를 교체할 수 있는 Fleet management,
수요에 맞게 다이나믹하게 확장하는 Dynamic scaling.
 
변화하는 수요에 동적으로 대응하고 비용을 최적화한다.

Launch Template(시작 템플릿)
EC2 시작 템플릿이란 AWS에서 EC2 인스턴스를 시작할 때 사용하는 구성 템플릿이다.
이 템플릿을 사용하면 반복적이고 복잡한 설정 과정 없이 인스턴스를 쉽게 시작할 수 있다.

즉, 시작(launch)을 간소화하고 단순화하기 위해 시작 요청을 템플릿화하여 생산성이 향상된다.
 
 


 
 

실습 구성도 아키텍쳐
실습 과정

 
 
Web Application with EC2(네트워크 구성하기)
 
 
VPC 생성하기
VPC를 이용하면 사용자가 정의한 가상의 네트워크 공간 안에서 AWS 리소스를 시작할 수 있다.
 
해당 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께
고객의 데이터 센터에서 운영하는 기존 네트워크와 매우 유사하다.

VPC 생성하기
현재 아키텍쳐 구성

 
추가 서브넷 생성하기
고가용성을 확보하기 위해, 다중 가용 영역에 서비스를 배포하는 것이 중요하다.
따라서 앞에서 생성한 서브넷이 위치한 가용 영역 A 외에 다른 가용 영역인 C에 서브넷을 생성한다.

추가 서브넷(C) 생성하기
현재 아키텍쳐 구성

 
라우팅 테이블 편집하기
라우팅 테이블에는 서브넷 또는 게이트웨이의 네트워크 트래픽이 전송되는 위치를 
결정하는 데 사용되는 라우팅이라는 규칙 집합이 포함되어 있다.

라우팅 테이블 편집하기
현재 아키텍쳐 구성

 
보안 그룹 생성하기
보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 한다.

 
 


 
 
Web Application with EC2(웹 서버 생성하기)
 
 
Amazon EC2를 통해, 원하는 만큼 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능하다.
 
또한, Amazon EC2는 갑작스러운 트래픽 증가와 같은 변동 사항에도
신속하게 규모를 확장하거나 축소할 수 있어 서버 트래픽 예측 필요성이 줄어든다.
 
 
웹 서버 인스턴스 생성하기

생성한 인스턴스 퍼블릭 IPv4 주소 웹 브라우저 확인
현재 아키텍쳐 구성

 
AMI 생성하기
Amazon Machine Image(AMI)는 인스턴스를 시작하는데 필요한 정보를 제공한다.
 
인스턴스를 시작할 때, AMI를 지정해야 하는데,
동일한 구성의 인스턴스가 여러 개 필요할 때는 한 AMI를 사용하여 여러 인스턴스를 시작할 수 있다.
 
본 과정에서는 위의 "웹 서버 인스턴스 생성하기"에서 생성한 인스턴스의 이미지를 뜨는 작업을 수행한다.

AMI 생성하기
현재 아키텍쳐 구성

 
AMI 기반 인스턴스 생성하기

새롭게 생성된 webserver2의 퍼블릭 IPv4 주소 웹 브라우저 확인
현재 아키텍쳐 구성

 
 
로드밸런서 생성하기
Elastic Load Balancing(ELB)은 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스,
컨테이너, IP 주소, Lambda 함수, 가상 어플라이언스와 같은 여러 대상에 자동으로 분산시킨다.
 
이는 단일 가용 영역 또는 여러 가용 영역에서 다양한 애플리케이션 부하를 처리할 수 있다.

로드밸런서의 상태가 active된 것을 확인 후, DNS 이름 웹 브라우저 확인
웹 화면을 새로 고침하면 위와 같이 Application Load Balancer에서 기본으로 제공하는 라운드 로빈 알고리즘에 따라 값이 변경된 것을 확인
현재 아키텍쳐 구성

 

 


 

 

Amazon Web Servives, "AWS Workshop Studio Join hands-on events and workshops", 

AWS Workshop Studio, 2008 - 2024, https://catalog.workshops.aws/

 

Amazon Web Servives, "AWS Builders Korea Program 클라우드 실습 A to Z",

AWS Builders Korea Program, 2024, https://kr-resources.awscloud.com/aws-builders-korea-program