728x90
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
728x90

강의 : 인프런 - AWS 가입부터 활용까지

 

 

- AMIs는 Amazon Machine Images의 약자이다. 

- Machine은 가상머신으로 컴퓨터를 의미하며 Images는 컴퓨터가 가진 상태를 그대로 얼려서 나중에 똑같이 복원할 수 있는 형태의 데이터를 뜻한다. 즉, 운영체제/SW/설정들/실행된 프로그램 등을 그대로 얼려 만든것이 Image 이다.

 

- 해당 기능은 서버에 중요 작업을 할 때, 이미지로 상태를 백업해 놓고 문제가 발생했을 때 문제가 발생한 인스턴스는 삭제하고 다시 원본 이미지를 이용해 새로운 인스턴스를 만드는데에 이용된다.

 

 

 

AWS Marketplace에서 Wordpress 설치하기

 

아마존 머신 이미지를 이용해서 다른 사람이 만든 인스턴스를 사용해서 빠르게 서비스를 만들어 보는 단계이다.

만들어놓은 윈도우 인스턴스에 다른 사람이 만들어 놓은 WordPress AMI를 설치해보자. 

https://aws.amazon.com/marketplace/search/results?x=0&y=0&searchTerms=wordpress 

 

AWS Marketplace: Search Results

Version 6.2 Sold by DigitalCube Co. Ltd Starting from $0.01/hr or from $40.00/yr (up to 30% savings) for software + AWS usage fees WordPress powered by AMIMOTO is the ready-to-run WordPress solution for Amazon EC2. This 1-Click AMI was developed by our exp

aws.amazon.com

 

 

 

강의에서 HVM(하드웨어 가상 머신) 버전을 선택하는 것이 좋다고 했는데 현재 시점으로는 없으므로 가장 위에 있는 WordPress를 선택한다.

 

 

728x90
728x90

강의 : 인프런 - AWS 가입부터 활용까지

 

윈도우 서버에는 IIS(Internet Information Server) 라는 웹서버가 내장되어 있기 때문에 별도의 설치 없이 활성화만 시켜주면 웹서버를 사용할 수 있다.

 

 

Server Manager -> Manage -> Add Roles and Features 클릭

 

계속 Next 클릭하다 'Server Roles' 단계에서 Web Server(IIS) 클릭 후 Add features 클릭.

 

설치 완료. 조금 오래 기다려야 한다.

 

 

설치 완료 후 시작표시줄의 검색 창에 iis 검색해서 실행하면 iis의 관리자 창이 뜬다. 

 

 

관리자 창에서 좌측의 Default Web Site->Explore 를 클릭하면 

이 창이 뜨게 된다. 해당 디렉토리(C:\inetpub\wwwroot)는 이 컴퓨터(인스턴스)에 누군가 웹 브라우저를 통해 접속했을 때, IIS라는 웹 서버가 받은 요청에 해당되는 파일을 찾는 디렉토리이다. 

 

 

 

그 다음으로 notepad에 "Hellow AWS"를 입력한 뒤 위의 디렉토리에 저장한다. 

 

파일이름, 타입, 인코딩 형식도 위와 같이 지정해준다.

 

 

그 후 localhost/index.html 로 이동하면 아까 노트패드에서 작성한 파일이 창에 뜨는 것을 확인할 수 있다. 

=> localhost 는 현재 웹 브라우저가 설치되어 있는 컴퓨터 자신으로, 이 컴퓨터에 설치된 웹 서버 IIS의 Document 루트의 index.html 을 IIS가 웹 브라우저로 전송했기 때문이다.

 

현재는 localhost를 통해서 웹서버가 설치된 웹 브라우저에 접속한 건데, 이제 가상머신이 아닌 다른 컴퓨터에서 가상 머신에 접속하여 index.html에 접근해보자. 

 

가상머신이 아닌 다시 맥에서 가상머신의 도메인으로 이동해보자.

(도메인은 인스턴스 정보 세부사항에서 확인 가능)

가상머신 밖에서 가상머신에 접속하여 index.html 요청에 성공한 화면이다.

 

728x90
728x90

강의 : 인프런 - AWS 가입부터 활용까지

 

직접 설치하는 것은 복잡하니 우분투의 sudo apt-get 프로그램을 이용해 쉽게 아파치를 설치해보자.

'apt-get' 은 프로그램을 설치하게 해주는 앱스토어 같은 것이다.

 

$ sudo apt-get apache2

위의 명령어 실행 후 오류가 뜬다면 앱스토어의 소프트웨어 목록을 최신 소프트웨어로 업데이트 하기 위해 아래의 명령어를 입력한다.

$ sudo apt-get update;

 

아파치가 실행되고 서버에 접속하기 위해 인스턴스의 도메인을 알아야 한다.

인스턴스를 클릭하면 아래의 '세부정보' 탭에서 퍼블릭 DNS를 확인할 수 있다. 

해당 도메인 주소로 접속하면 위와 같은 페이지가 뜬다.

 

터미널에서 html 파일이 있는 /var/www로 이동하여 해당 웹페이지의 html 파일을 수정해보자.

 

 

결과이다.

- 전세계 사람들이 이 도메인 주소로 접속하면 이 웹페이지를 볼 수 있는 것이다.

 

 

 

 

- 사용자들에게 웹 페이지를 전송해서 보여주기 위해서는 Security Group을 지정해야한다. 

- 인스턴스 세부정보를 보면 '보안'탭에 보안그룹에 (web server)라고 표시되어 있는 것을 확인할 수 있다. (윗 단계에서 인스턴스 생성 시 웹서버를 만든다는 가정 하에 진행했기 때문)

- 이것은 해당 인스턴스가 web 이라는 보안 설정 그룹의 영향 아래에 있으며 클릭 시 인스턴스에 어떤 방화벽이 설정되어 있는지 등 보안 그룹들에 영향을 받은 최종 결과를 보여준다.

 

80포트가 없으면 사용자는 웹서버에 접속할 수 없다.

 

좌측의 네트워크 및 보안/보안그룹 으로 들어가면 위와 같은 화면이 뜬다.

 

728x90
728x90

강의 : 인프런 - AWS 가입부터 활용까지

[3. EC2 접속과 사용]

- 운영체제마다 원격제어 방법 다름.

 

- 인스턴스에서 오른쪽 마우스 버튼 클릭 후 연결 선택.

 

 

- 1번 : 터미널을 켜는 것.

- 2번 : 위에서 다운한 비밀번호 파일의 권한을 change mod 명령어를 통해 사용자만 읽을 수 있도록 바꾼다.

- 3번 : 터미널에서 비밀번호 있는 디렉토리로 이동한 후  chmod 400 awspwd.pem 를 입력한다.

           

 

* 쉬운 방법 : 해당 파일 선택 후 Cmd+i 눌러서 '공유 및 사용 권한'을 아래와 같이 바꾼다. 

- 4번 : 접속하기

 ssh -i "awspwd.pem" ubuntu@ec2-3-34-98-246.ap-northeast-2.compute.amazonaws.com

-  ssh -i "awspwd.pem" ubuntu@ec2-3-34-98-246.ap-northeast-2.compute.amazonaws.com

- ssh : 접속방식이자 명령을 통해 제어하는 프로그램(ui 없음)

- i : 로그인 시 패스워드 파일 전송해서 제출할 때 필요한 옵션.

- ubuntu : 접속 시 필요한 아이디. 인스턴스 생성시 디폴트 아이디. 인스턴스가 우분투 아니면 ubuntu 대신 ec2-user를 입력해야 함.

 

- 내 컴퓨터가 아니라 생성한 인스턴스에 설치된 운영체제인 ubuntu에 SSH 방식으로 원격제어를 시작한 상태임. 

- 이후에 내리는 명령어는 내 컴퓨터가 아닌 인스턴스에 명령을 내리는 것.

- exit 입력 시 원격제어 종료.

728x90

+ Recent posts