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 가입부터 활용까지

 

-윈도우서버 : 윈도우 운영체제를 서버 용도에 최적화 한 것. 보안성이 강조된 운영체제. 이 방법으로는 맥을 쓰고 있더라도 윈도우의 인터넷뱅킹과 같은 서비스를 이용할 수 있다.

 

 

 

윈도우 인스턴스를 생성해보자.

윈도우 선택

 

2~5단계 계속 진행하다 6단계에서 아래 두개의 보안 그룹을 생성해준다. 

패스워드는 기존 키 페어 선택 후 이전에 리눅스 인스턴스를 생성했을 때 발급받은 키로 로그인 해준다.

 

그 후 인스턴스에서 오른쪽 마우스 클릭 후 연결을 클릭하면 아래의 창이 뜨고 '암호 가져오기' 버튼을 클릭해서 윗 단계에서 다운한 키 파일을 선택한다. 

 

 

맥에서 원활한 원격제어를 하기 위해서는 맥용 원격 제어 프로그램을 다운받아야 한다. 

 

다운 후 실행해서 '+'버튼을 눌러 Add PC 한다.

 

PC name 에는 도메인 주소를 넣고 User account에서 Add User account 를 선택한 뒤 위 화면과 같이 Username과 Password를 넣어준다.

 

 

 

생성 완료!

 

 

윈도우에서 구글 페이지에 접속한 모습이다.

(한영키가 작동하지 않는 문제가 있다...)

 

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

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

 

 

[2. EC2(Elastic Compute Cloud) 시작하기]

Step 1) EC2 소개

EC2의 여러 기능 중 컴퓨터를 생성하는 기능을 이용해보자.

(독립된 컴퓨터 한 대(Instance)를 통째로 임대해주는 서비스라고 생각하면 됨.)

- Ubuntu를 선택한다.

 

Step 2) 인스턴스 타입

 

- Instance 유형(type)은 요금과 관련되며 앞에 c가 붙으면 같은 가격일 때 CPU에 중점을 둔 것이고 m이 붙으면 메모리에 중점을 둔 것임.

 

*인스턴스에 따른 과금 정책 (https://aws.amazon.com/ko/ec2/pricing/)

- 예약 인스턴스 : 일정 기간(1년,,2년,,3년,,)동안 인스턴스를 끌 필요 없이 쭉 쓸 때 할인된 가격에 인스턴스를 사용할 수 있음.

- 스팟 인스턴스 : 아마존의 남는 인스턴스 양에 따라 가격이 달라짐. 운이 좋으면 아주 저렴한 가격에 인스턴스를 이용할 수 있음

 

 

Step 3) 인스턴스 장치 설정

- 클라우딩 컴퓨터 네트워크와 관련된 부분 설정 가능

- Shutdown behavior(종료 방식) : 운영체제에서 컴퓨터를 셧다운했을 때 Stop(인스턴스 지우지 않고 일시정지) 하거나 Terminate(삭제)할 수 있음.

 

Step 4) 스토리지 추가

-  EBS 장착하는 부분.

 - Size 30GB 까지는 무료임.

- 리눅스는 기본 8GB, 윈도우는 기본 30GB

- Volume Type : SSD가 Magnetic보다 빠름. 

- IOPS : 저장장치의 속도 지정

- Delete on Termination : 저장장치가 인스턴스와 분리되어 있으므로 이걸 체크하면 인스턴스 삭제 시 저장 장치도 함께 삭제됨. (컴퓨터와 하드디스크가 같이 폐기되는 것과 같음)

 

Step 5) 태그 추가

- 인스턴스의 설명(역할이나 관리자)을 메모하는 단계

ㅜ가

Step 6) 보안 그룹 구성

- 인스턴스에 접근하는 권한 지정

- 방화벽과 같은 기능

- 유형 : 인스턴스에 접속하는 여러 방법(원격제어, Ftp를 이용해 인스턴스에 파일 업로드, 웹서버에 브라우저를 통해 일반 사용자가 접근)들 중 제한된 방법들로만 인스턴스에 네트워크를 통해 접근할 수 있도록 정책을 정하는 것임.

   1) SSH : 리눅스/유닉스에서 사용하는 원격제어 방식으로 원격제어를 허용할 때 사용됨. (윈도우 원격제어는 Rdp)

             - 소스 : 모든 SSH의 방식 허용(Anywhere) / 현재 접속한 웹페이지의 ip만 허용(My ip) / 특정 ip만 허용(Custom ip)

   

   2) HTTP : 사람들이 웹브라우저를 통해 인스턴스에 접속하도록 허용할 때 사용

             - 소스를 My ip 로 해버리면 내 ip에서만 접속 가능하도록 설정되므로 Anywhere로 해야한다.

 

 

 

Step 7) 검토

 

- 인스턴스에 네트워크를 통해 접속할 때 사용할 비밀번호 지정하는 화면.

- 서버 자원은 제한적이므로 복잡한 비밀번호를 써서 인스턴스를 공격으로부터 방어해야 함.

- 비밀번호는 파일로 만들어서 저장함. (키 페어 다운로드) -> 해킹의 위험이라 Trade Off. 

- 아마존에서 랜덤한 비밀번호를 만들어서 파일로 다운받을 수 있게 해 주고, 인스턴스에 비밀번호를 심어서 인스턴스에 접속하려면 해당 비밀번호를 가지고 접속해야만 접속 허용 됨. (Public Key and Private Key)

 

 

 

Step 8) 인스턴스 생성 완료!

- Seoul의 아마존 웹 서비스 인프라위에 컴퓨터를 만든 것이며, 이 컴퓨터에 원격 접속해서 제어할 수 있음.

- 여기에 웹 서버 설치해서 웹서비스 제공하거나 하둡과 같은 빅데이터 시스템 설치해서 데이터 처리 가능.

- 맥 사용자가 ActiveX을 사용해야 해서 윈도우를 써야 하는 경우에도 윈도우에 원격 접속해서 인터넷 뱅킹과 같은 서비스 이용 가능.

- 더 이상 클라우딩 컴퓨터가 필요하지 않으면 해당 인스턴스에 오른쪽 마우스를 클릭해서 terminate하면 됨. (더 이상 과금 발생 x) -> 온디맨드 인스턴스 특징

 

 

 

728x90
728x90

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

 

[1. AWS 시작하기]

Step 1) AWS 회원 가입과 2단계 보안 인증

https://aws.amazon.com/ko/

 

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

제조 AWS를 활용한 Siemens의 에너지, 의료 서비스, 제조 분야 혁신 Siemens가 AWS를 사용하여 어떻게 문화를 바꾸고 혁신을 장려하며 비즈니스 성과를 창출했는지 알아보세요. 자세히 알아보기  업종

aws.amazon.com

 

 

Step 2) 지역과 가용구역

A. 지역

- 전기는 물리적인 거리의 영향 많이 받음. 

- 거리가 멀수록 네트워크 경유지 많아질 확률 높아져서 병목 현상으로 인한 Latency 가능성 높아짐.

- 컴퓨터와 웹서비스의 물리적 인프라가 가까울 수록 속도 빠름.

- 웹 사이트 사용자들이 가까운 인프라를 사용해야 한다. (개발자 위치와 무관)

- 여러 이유로 인해 같은 상품을 쓴다고 해도 요금 다름. (투자비용, 환율 등의 문제)

 

 

- 지역별 클라우드 속도 비교 사이트

https://www.cloudping.info/

 

CloudPing.info

Amazon Web Services and AWS are trademarks of Amazon.com, Inc. or its affiliates in the United States and/or other countries.

www.cloudping.info

Seoul 인프라를 사용했을 때 지연시간이 가장 낮다.

 

 

B. 가용 영역 (AZ; Availability Zone)

- 자연재해 같은 일로 인해 한 건물이 완파되더라도 다른 건물이 백업 역할 함. (안전 장치) 

- 한 지역에는 여러 가용 영역들이 즉 건물들이 흩어져 있고, 각 건물들은 인터넷보다 빠른 전용선으로 연결되어 있기 때문에 마치 같은 건물에 있는 것 처럼 데이터를 주고 받을 수 있음. (백업 & 이전)

- 지역과 지역은 직접적으로 연결성이 없음.

즉, 어떤 지역을 선택하면 그 지역과 관련된 가용 영역이 사용되며 같은 지역의 서로 다른 가용 영역끼리는 빠르게 데이터를 주고 받을 수 있지만, 다른 지역의 가용 영역 사이에는 전용선으로 연결되어 있지 않으므로 인터넷을 통해 느리게 데이터를 교환해야한다. 

 

728x90

+ Recent posts