AWS 프로젝트 WAS WEB 구성하기 - 2

2022. 12. 7. 01:57클라우드 공부

1. 시작 템플릿 생성 및 EC2 시작하기

> 템플릿 이름은 원하는 이름으로 입력

> os이미지는 위처럼 아마존 리눅스로

> 인스턴스는 프리티어 유형으로

> 키는 새 키 페어 생성 클릭

> 키 페어 이름에 원하는 이름 설정

> 키 페어 생성으로 생성하기

> WASWEBbastion키를 발급받는다

> 서브넷은 포함하지 않기 선택

> 보안 그룹의 경우 미리 생성한 보안 그룹 중 알맞은 그룹으로 선택

> 아래로 내려서 고급 세부 정보 클릭

> 맨아래로 내려서 사용자 데이터에서 우리가 사용할 데이터를 정의 하기

==========================================================

WAS 시작 정의

#!/bin/bash

sudo yum -y update

sudo yum -y groupinstall 'Development Tools'

sudo yum -y install yum-utils zip unzip wget mc git net-tools tree

sudo amazon-linux-extras install epel

sudo yum -y makecache

sudo yum install -y yum-utils

sudo yum -y install docker

sudo systemctl start docker

sudo systemctl enable docker

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

sudo usermod -aG docker ec2-user

mkdir /home/ec2-user/workhome

cd /home/ec2-user/workhome

sudo git clone https://github.com/kimhyungeol/pigma_realreal

cd pigma_realreal

sudo docker build -t pigmaproject:0.1.0 .

sudo docker run --rm -p 80:8000 -d --name pig pigmaproject:0.1.0

> 도커설치 및 도커빌드를 진행 하고 도커 이미지 배포까지 진행함

==========================================================

==========================================================

WEB 시작 정의

sudo yum -y update

sudo yum -y install nginx

sudo amazon-linux-extras install nginx1

git clone https://github.com/kimhyungeol/asdf

sudo mv default.conf /etc/nginx/default.d/

sudo systemctl start nginx

sudo systemctl enable nginx

> nginx 설치까지 진행하게 됨 미리 프록시설정 파일을 만듬

==========================================================

> 이제 이 시작 템플릭으로 시작을 클릭

> 네트워크 서브넷 부분만 체크해서 a영역과 c영역에 만든 서브넷 선택

> 4개의 인스턴스 생성 was 2web 2

> 생성 된걸 확인 할 수 있다.

 

2. 오토스케링 생성

 

> 오토 스켈링으로 자동으로 EC2가 늘어나고 교체되도록 구성 할 수 있다.

> 이름은 알맞게 입력

> 정의 한 시작 템플릿으로 시작하도록 구성

> 알맞은 템플렛으로 선택 후 다음 클릭

> 알맞은 네트워크를 선택

> 여기서 중요한 부분은 오토스케링을 할 대상 서브넷을 전부 선택해 주어야 한다.

> WASWAS 서브넷 전부 WEB이면 WEB 서브넷 전부 선택

> 기존 만들어 놓은 로드 밸런서

> 일단 원하는 용량을 2 최소 2 최대 3으로 설정

> 아래 검토 누른 후 확인 후 오토스켈링 그룹 생성 하기 클릭

> WEB 이랑 WAS둘다 해주어야 한다.

 

3. bastion 생성 하기

> 이름과 알맞은 os 선택 후 다음

> t2.micro 선택

> 만들어 둔 키페어 선택

> vpc 서브넷 보안그룹 전부 미리 생성 해둔 것으로 선택 생성하기

> bastion 서버에는 미리 생성한 키를 옮긴 후 필요한 서버로 ssh연결을 진행 하면 된다.

$ ssh -i ./WEB.pem [타겟ip]

> WEB서버로 접속을 진행 했고 접속이 된걸 볼 수 있다.

 

4. 동작 테스트

 

> Router53에서 ALB1번으로 www.pigmamusic.com이라는 도메인을 부여함

> 홈페이지 접속 시 도메인 입력 시 ALB를 타고 WEB으로 들어가서 리버스 프록시로 ALB2 등록 ALB2에서 WAS로 접속 하는 구조를 구축

> 두 개의 영역에 홈페이지에 차별점을 두어서 라운드 로빈 방식으로 접속이 되는지 확인 할 수 있다.

 

 오토 스켈링 테스트

> stress 툴로 양쪽 WAS서버에 큰 스트레스를 부여해 보았다.

> 그 결과 오토 스켈링에서 자동으로 WAS를 하나 생성 했다.

 

고가용성

> ALB로 고가용성을 지원해 준다

> 우선 WAS 하나를 종료 하자

> WAS서버 하나를 종료해도 서비스가 종료되지 않고 계속 수행하는걸 확인 가능하다.