AWS 가입부터 활용까지 를 듣고 정리한 내용입니다.
- EC2 인스턴스 이론 정리
- 클라우드 컴퓨팅의 핵심적인 아이디어 : 가상화, 종량제
✔️ 가상머신
✔️ 여러 가지 운영체제가 만들어지는 구조
✔️ 가상머신
✔️ aws 사용하는 입장
회사를 크게 스타트업과 대기업으로 분류해서 aws 사용하는 입장을 보자
(1) 스타트업(회사 시작 단계)
(2) 대기업
✔️ 클라우드 컴퓨팅을 사용하면 좋은 점은?
🔔 전통적인 모델 vs 클라우드 컴퓨팅 모델
(1) 전통적인 모델을 구매해서 컴퓨터를 사용시
- 규칙적이지 않는 불연속적으로 증감한다.
- 전통적인 모델을 사용시 비즈니스적으로 성공하기 힘들다.
(2) 클라우드 컴퓨팅 모델을 사용시
- 빨간색 수요, 파란색이 공급
- 수요가 증가에 따라 공급도 증가하여 빠르게 대응하는 것을 알 수 있다.
- 사용자가 늘어나면 컴퓨터를 만들고, 사용자가 줄어들면 컴퓨터 수를 줄인다.
- 가상화 기계를 쓰기 위해서는 물리적인 컴퓨터위에 운영체제, 가짜 기계를 만드는 것이기 때문에 그만큼 성능 상에서 패널티를 물게 된다.
✔️ 그래서? scalability를 사용해보자!
scalability
은 얼마나 많은 컴퓨터에 대한 요구를 수용할 수 있는가?scalability
: 규모 가능성, 변화하는 수요에 얼마나 탄력적으로 공급을 변환할 수 있는가
이제, EC2
를 이용해서 어떻게 scalability
를 사용하는지 두 가지에 대해 공부한다.
scalability 두 가지 전략 : Scale Up, Scale Out
Scale up
이다.컴퓨터가 2개가 필요하다.
컴퓨터A : 사용자가 점차 늘어난다. 웹 서버 설치되어 있다. (공격)
컴퓨터B : 컴퓨터에 A에서 컴퓨터 B로 접속한다. 접속들을 받아가면서 Scale Up한다. (수비)
현재 웹 서버가 필요하다.
AWS MarketPlace : App Store와 같이 다른 사람이 만든 프로그램을 설치하는 것!
웹 서버를 하나 띄우는 작업은 초기에 해야할 일들이 무척 많다.
ex) 초기 작업시 TomCat & Apache를 띄우는데 오랜 시간이 걸린다.
이런 작업을 할 필요 없이 모든 작업을 끝내 놓은 AMI
라는 것을 사용하여 서비스 시작도 가능하다.
AWS Console을 통해 바로 MarketPlace를 이용
MarketPlace를 통해 한 번에 WordPress 서버를 띄울 것이다.
WordPress Certified by Bitnami and Automattic 선택
t2.micro(free)를 선택한다.
Software : 해당 이미지를 제공한 업체에서 지불해야할 가격
BitNami에서 설정해둔 보안설정을 그대로 따라 해준다.
키 페어는 기존에 생성한 키를 활용한다.
✔️ 이제 AMI 실행
인스턴스 화면으로 돌아가보면 새로운 AMI가 추가되었고, 초기화 중임을 확인할 수 있다.
퍼블릭 DNS(IPv4)
로 접속하면 설치된 본인의 WordPress
웹 화면을 확인할 수 있다.
WordPress 초기화면을 확인한다.
공격 컴퓨터 인스턴스 추가는
EC2 Ubuntu 설치를 참고하며 설치하면 된다.
✔️ Ubuntu Server 20.04 LTS 선택
✔️ 원격 제어 선택
SSH : 원격제어하기 위한 방법
이제 원격 제어로 접근하여 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://접속하려는웹주소/
요청 | 동시접속 | 총 소요시간 | 실패 | 초당처리속도 | 개별처리속도(초) |
---|---|---|---|---|---|
400 | 1 | 24.073 | 0 | 16.62 | 0.060 |
400 | 2 | 24.348 | 0 | 16.43 | 0.121 |
400 | 10 | 25.014 | 0 | 15.99 | 0.625 |
400 | 20 | 25.041 | 0 | 15.97 | 1.252 |
400 | 100 | 25.560 | 0 | 15.65 | 6.390 |
(1) 400명 접속, 동시 접속 1명
ms : 1/1000
(2) 400명 접속, 동시 접속 2명
(3) 400명 접속, 동시 접속 10명
(4) 400명 접속, 동시 접속 20명
(5) 400명 접속, 동시 접속 100명
➡️ 동시 접속자 수가 늘어날 수록 서비스의 퀄리티가 점차 안좋아진다.
➡️ 이런 경우, ScaleUp
을 사용하면 된다. (사용자 수에 맞추어 서버가 가동된다.)
ip address
를 아마존으로부터 받는 방법, 받게 되면 소유하게 된다.
인스턴스를 중지시켰다가 다시 시작하게 되면 주소가 변경된다.
이를 해결하기 위해 Elastic IPs
를 사용한다.
이는 유료이다.
Elastic IP
를 받은 후, 어떤 인스턴스에 붙이지 않고 나둔다면 한달에 3600원정도 금액이 발생한다.다만? 실행 중인 인스턴스와 연결된 한 개의 Elastic IPs 주소의 경우 무료이다.
✔️ Elastic IPs 추가하고 인스턴스 연결하기
탄력적 IP 주소 할당
탄력적 IP 주소 연결
탄력적 IP 주소에 인스턴스 ID가 연결(추가)된 것을 확인할 수 있다.
해당 인스턴스에서 또한 탄력적 IP 주소가 추가된 것을 확인할 수 있다.
인스턴스 중지된 상태에서도 퍼블릭 IPv4 주소는 이전과 같다.
✏️ 이걸 왜 사용하나면?
Elastic IPs
가 추가된 인스턴스는 인스턴스를 중지 후 인스턴스 시작을 할 때 새로운ip
가 아닌,기존 ip
(이전에 사용하던 ip)를 사용할 수 있다.
✔️ Elastic IPs 삭제
Release Addresses
: 삭제