728x90

[AWS 를 이용한 자유로운 규모 확장과 축소]

 

Step 1) Scalability

- Scalability 에 두가지 전략이 있다. (Scale Up/Down)

 

- EC2의 큰 특징

 : 가상화 / 종량제 (이 두 특성은 EC2에 국한되지 않고 클라우드 컴퓨팅의 핵심 아이디어이다.)

 

- 가상머신이란?

 : 물리적 기계(컴퓨터)가 아니라 물리적 컴퓨터의 위에서 돌아가는 SW적인 컴퓨터

 

- 개인용 시장에서의 가상머신

 : VMWare, VirtualBox, Parallels

 

- 클라우드 시장에서는 기업이 타겟임.

 

- 변화하는 수요에 얼마나 탄력적으로 공급을 변화시킬 수 있는가가 관건이며 이는 클라우딩 시스템을 기반으로 공급의 질적 변화를 이룰 수 있다.

 

 

Step 2) Scale Up (전략 1) 

=> 인스턴스를 이미지화 시키고 더 좋은 인스턴스 타입으로 업그레이드 

 

 

- 인프라 수요에 따라 계속 컴퓨터 자원을 업그레이드 하는 것. 

- 실천하기 비교적 쉬움. 

- 이 전략을 EC2 인스턴스에서 실현해보자.  -> 각각 공격과 수비를 하는 컴퓨터 두 대가 필요함. (한대의 컴퓨터가 나머지 컴퓨터 웹서버에 계속 접근하면서 늘어나는 사용자 환경을 시뮬레이션 함)

 

- 웹서비스를 제공하는 수비쪽 인스턴스에 wordpress 를 설치하고 공격쪽 인스턴스도 생성한다. 수비쪽 인스턴스에서 Scale Up을 해나갈 것이다.

- 유저 인스턴스에서 부하(Load) 발생기(아파치에서 만든 ab 프로그램)를 이용해 사용자들이 많이 발생하는 상황을 시뮬레이션 해 보자.

 

*ab 프로그램 사용 방법 

$sudo apt-get install apache2-utils

$ab

<옵션>

-n : Number of requests to perform -> 웹 서버에 몇번의 접속을 시도하겠는가

-c : Number of multiple requests to make at a time -> 동시에 몇번의 접속을 시도하겠는가 

(c = 1, n = 100이면 순차적으로 100번 접속하는 것이고

 c = 100, n = 1이면 한 번에 100명이 접속하는 것임)

 

옵션 값을 조정해가며 요청을 완료하기까지 소요되는 시간과 초당 처리 속도 및 개별 처리 속도를 비교해보자.

 

 

Step 3) Elastic IPs

- 인스턴스를 Stop 후 재시작하면 IP가 달라진다. Stop하는 동안 자원(IP)을 회수하기 때문이다. 

- Scale Up을 위해 기존 인스턴스를 이미지화 후 인스턴스 성능 업그레이드를 하려 할 때, 기존 IP가 바뀌어버리는 문제가 있다. 이때 사용하는 것이 Elastic Ip이다. (유료 서비스)

- Elastic Ip는 고정 ip를 의미하며 ip 주소를 아마존으로부터 받아 소유하는 것이다. -> 사용자는 동일한 ip로 접속할 수 있음 

 

 

Step 4) 인스턴스 교체

- 성능이 업그레이드 된 인스턴스를 새로 만든 후 기존 인스턴스에서 부여받은 Elastic Ip를 새 인스턴스에 부여한다.

 

 

Step 5) Scale Out (전략 2)

- 여러대의 컴퓨터를 사용해서 협력하는 것

- 계속 Scale Up 하다 보면 단일 컴퓨터의 한계 발생하는 문제에 대한 방안

728x90

+ Recent posts