Scalability, Scale Up, 스트레스 테스트, Elastic IPs

LeeKyoungChang·2022년 4월 7일
0
post-thumbnail

AWS 가입부터 활용까지 를 듣고 정리한 내용입니다.

 

📚 1. Scalability

  • EC2 인스턴스 이론 정리
  • 클라우드 컴퓨팅의 핵심적인 아이디어 : 가상화, 종량제

✔️ 가상머신

  • 가상머신 : 컴퓨터
  • 가상 : 현실이 아니다. 실제로 물리적인 형태를 가지고 있는 컴퓨터가 아니라 논리적인 컴퓨터 위에서 돌아가는 소프트웨어에서 돌아가는 컴퓨터

 

✔️ 여러 가지 운영체제가 만들어지는 구조

스크린샷 2022-03-29 오전 10 53 01
  • 컴퓨터를 사용하기 위해서는 운영체제를 다운 받아야 한다.
    • 운영체제 : window, mac, unix
    • 운영체제가 하는 역할 : 운영체제 위에 여러 프로그램을 설치시(소프트웨어)들은 물리적인 기게를 제어하는 것이 아닌, 운영체제를 통해 기계를 제어할 수 있다.
  • 가상 머신을 사용한다고 하면, 운영체제에 프로그램을 하나 더 설치하는 것이다.
    • 이 프로그램은 무엇일까? 가상 머신 (소프트웨어로 만든 기계)
    • 운영체제에 가상 머신으로 프로그램을 추가하는 것이다.

 

✔️ 가상머신

  • 자기가 CPU, Memory 등을 가지고 있다.
  • 하나의 물리적인 기계 위에 여러 가지 가상머신을 이용한다면, 그 위로 여러가지 운영체제를 사용할 수 있다.
  • 가상 머신의 종류
    • VMWare, VitualBox, Parallels
  • Cloud 컴퓨팅 : 대규모 컴퓨팅 파워가 필요한 기업용에서 중요하다. (회사, 연구소, 대학교 등에서)
    • 이들은 많은 물리적 컴퓨터 기계들을 배치해놓는다.

 

스크린샷 2022-03-29 오전 11 01 34

✔️ aws 사용하는 입장

회사를 크게 스타트업과 대기업으로 분류해서 aws 사용하는 입장을 보자

(1) 스타트업(회사 시작 단계)

  • 프로젝트를 이용하는 사람들이 적다.
  • 개발하는데에 집중 중이다.

(2) 대기업

  • 강력한 클라우드가 필요하다.

 

✔️ 클라우드 컴퓨팅을 사용하면 좋은 점은?

  • 물리적인 컴퓨터는 크기 및 성능등이 정해져 있지만, 가상으로 생성된 컴퓨터는 크기 및 성능을 변경할 수 있다.
  • 여러 대의 컴퓨터를 묶어 하나의 컴퓨터처럼 사용할 수 있다.
  • 물리적인 컴퓨터를 여러 개로 쪼갠 것처럼 아주 저렴한 가상의 컴퓨터를 이용할 수 있다.

 

📖 클라우드 컴퓨터 사용? 사용하지 않는다?

스크린샷 2022-03-29 오전 11 03 15스크린샷 2022-03-29 오전 11 06 23

🔔 전통적인 모델 vs 클라우드 컴퓨팅 모델
(1) 전통적인 모델을 구매해서 컴퓨터를 사용시

  • 규칙적이지 않는 불연속적으로 증감한다.
  • 전통적인 모델을 사용시 비즈니스적으로 성공하기 힘들다.

(2) 클라우드 컴퓨팅 모델을 사용시

  • 빨간색 수요, 파란색이 공급
  • 수요가 증가에 따라 공급도 증가하여 빠르게 대응하는 것을 알 수 있다.
  • 사용자가 늘어나면 컴퓨터를 만들고, 사용자가 줄어들면 컴퓨터 수를 줄인다.
  • 가상화 기계를 쓰기 위해서는 물리적인 컴퓨터위에 운영체제, 가짜 기계를 만드는 것이기 때문에 그만큼 성능 상에서 패널티를 물게 된다.

 

✔️ 그래서? scalability를 사용해보자!

  • 하나의 컴퓨터에 맞추어 쓸때는 물리적인 컴퓨터를 사용하는 것이 좋지만, 현실은 변화가 강하므로 클라우드 컴퓨팅을 사용하는 것이 매우 좋다.
  • scalability은 얼마나 많은 컴퓨터에 대한 요구를 수용할 수 있는가?
  • 컴퓨터가 필요하면 컴퓨터를 빠른 속도로 늘리고 ,컴퓨터가 필요하지않으면 빠른 속도로 줄인다.
  • scalability : 규모 가능성, 변화하는 수요에 얼마나 탄력적으로 공급을 변환할 수 있는가

 

이제, EC2를 이용해서 어떻게 scalability를 사용하는지 두 가지에 대해 공부한다.

 

📚 2. Scale Up

scalability 두 가지 전략 : Scale Up, Scale Out

  • 컴퓨터를 사용하는데 있어, 컴퓨터의 수요(웹 사이트를 운영하는데 웹 사이트 접속자가 늘어나거나 줄어들거나 변화한다.)
  • 수료를 탄력적으로 어떻게 대응할 수 있을까? 이를 위한 전략이 Scale up이다.
  • 컴퓨터의 수요가 늘어나면 더 좋은 컴퓨터로 대체한다.
  • 다만, 컴퓨터의 수요가 갑작스레 줄어든다고 해도 컴퓨터를 줄어들이지는 않는다.
스크린샷 2022-03-29 오전 11 44 46

컴퓨터가 2개가 필요하다.
컴퓨터A : 사용자가 점차 늘어난다. 웹 서버 설치되어 있다. (공격)
컴퓨터B : 컴퓨터에 A에서 컴퓨터 B로 접속한다. 접속들을 받아가면서 Scale Up한다. (수비)

 

📚 3. 스트레스 테스트

현재 웹 서버가 필요하다.

AWS MarketPlace : App Store와 같이 다른 사람이 만든 프로그램을 설치하는 것!

참고 자료

 

웹 서버를 하나 띄우는 작업은 초기에 해야할 일들이 무척 많다.
ex) 초기 작업시 TomCat & Apache를 띄우는데 오랜 시간이 걸린다.

이런 작업을 할 필요 없이 모든 작업을 끝내 놓은 AMI라는 것을 사용하여 서비스 시작도 가능하다.

 

📖 A. 수비 컴퓨터, MarketPlace 접속/설치 (EC2)

AWS Console을 통해 바로 MarketPlace를 이용
MarketPlace를 통해 한 번에 WordPress 서버를 띄울 것이다.

WordPress Certified by Bitnami and Automattic 선택

스크린샷 2022-03-30 오전 10 35 55

 

t2.micro(free)를 선택한다.
Software : 해당 이미지를 제공한 업체에서 지불해야할 가격

스크린샷 2022-03-30 오전 10 36 09

 

BitNami에서 설정해둔 보안설정을 그대로 따라 해준다.

스크린샷 2022-03-30 오전 10 40 48

 

키 페어는 기존에 생성한 키를 활용한다.

스크린샷 2022-03-30 오전 10 41 09

 

✔️ 이제 AMI 실행

인스턴스 화면으로 돌아가보면 새로운 AMI가 추가되었고, 초기화 중임을 확인할 수 있다.

스크린샷 2022-03-30 오전 10 46 45

 

퍼블릭 DNS(IPv4)로 접속하면 설치된 본인의 WordPress 웹 화면을 확인할 수 있다.

스크린샷 2022-03-30 오전 10 50 36

 

WordPress 초기화면을 확인한다.

스크린샷 2022-03-30 오전 10 49 31

 

📖 B. 공격 컴퓨터 설치 (EC2)

공격 컴퓨터 인스턴스 추가는

EC2 Ubuntu 설치를 참고하며 설치하면 된다.

 

✔️ Ubuntu Server 20.04 LTS 선택

스크린샷 2022-03-30 오전 11 01 54

 

✔️ 원격 제어 선택

스크린샷 2022-03-30 오전 11 06 56

SSH : 원격제어하기 위한 방법

 

📖 C. 이제 A, B 두 개의 컴퓨터 접속

스크린샷 2022-03-30 오전 11 08 20

이제 원격 제어로 접근하여 db 설정 등 초기 설정을 할 필요가 없다. 왜? MarketPlace를 이용하여 Bitnami(기존 만들어져 있는) 것을 설치했기 때문이다.

 

✔️ wordpress 화면 접속
bitnami는 접속이 되지 않는다. (AMI Marketplace는 거의 사용하지 않는다.)

 

✔️ 사용자 화면에서 접속
ssh -i 비밀번호키 ubuntu@주소

sudo apt-get update : 최신 버전으로 업데이트
sudo apt-get install apache2-utils : apache2-utils를 설치
ab : apache에서 만든 부하 발생

  • -n : 몇 명이 접속할 것인가?
  • -c : 동시 접속

➡️ ab -n 400 -c 1 http://접속하려는웹주소/

 

요청동시접속총 소요시간실패초당처리속도개별처리속도(초)
400124.073016.620.060
400224.348016.430.121
4001025.014015.990.625
4002025.041015.971.252
40010025.560015.656.390

 

(1) 400명 접속, 동시 접속 1명

스크린샷 2022-03-31 오전 10 52 32

ms : 1/1000

(2) 400명 접속, 동시 접속 2명

스크린샷 2022-03-31 오전 10 55 53

(3) 400명 접속, 동시 접속 10명

스크린샷 2022-03-31 오전 10 58 20

(4) 400명 접속, 동시 접속 20명

스크린샷 2022-03-31 오전 10 59 45

(5) 400명 접속, 동시 접속 100명

스크린샷 2022-03-31 오전 11 01 32

➡️ 동시 접속자 수가 늘어날 수록 서비스의 퀄리티가 점차 안좋아진다.
➡️ 이런 경우, ScaleUp을 사용하면 된다. (사용자 수에 맞추어 서버가 가동된다.)

 

📚 4. Elastic IPs

ip address를 아마존으로부터 받는 방법, 받게 되면 소유하게 된다.

인스턴스를 중지시켰다가 다시 시작하게 되면 주소가 변경된다.
이를 해결하기 위해 Elastic IPs를 사용한다.

이는 유료이다.

  • 시간당 5원이다.
  • 아마존으로부터 Elastic IP를 받은 후, 어떤 인스턴스에 붙이지 않고 나둔다면 한달에 3600원정도 금액이 발생한다.
  • 어떤 인스턴에 붙인다고 해도, 두 개이상일 경우 요금이 발생한다.

다만? 실행 중인 인스턴스와 연결된 한 개의 Elastic IPs 주소의 경우 무료이다.

스크린샷 2022-03-31 오전 11 20 46

페이지 콘텐츠

 

✔️ Elastic IPs 추가하고 인스턴스 연결하기
탄력적 IP 주소 할당
스크린샷 2022-03-31 오전 11 35 21

탄력적 IP 주소 연결
스크린샷 2022-03-31 오전 11 35 56

탄력적 IP 주소에 인스턴스 ID가 연결(추가)된 것을 확인할 수 있다.
스크린샷 2022-03-31 오전 11 36 24

해당 인스턴스에서 또한 탄력적 IP 주소가 추가된 것을 확인할 수 있다.
스크린샷 2022-03-31 오전 11 37 09

인스턴스 중지된 상태에서도 퍼블릭 IPv4 주소는 이전과 같다.
스크린샷 2022-03-31 오전 11 43 11

 

✏️ 이걸 왜 사용하나면?
Elastic IPs가 추가된 인스턴스는 인스턴스를 중지 후 인스턴스 시작을 할 때 새로운 ip가 아닌, 기존 ip(이전에 사용하던 ip)를 사용할 수 있다.

 

✔️ Elastic IPs 삭제

Release Addresses : 삭제

스크린샷 2022-03-31 오전 11 29 39 스크린샷 2022-03-31 오전 11 31 42

 

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글