EC2 = Elastic Compute Cloud의 약자.

아마존 웹 서비스(AWS)에서 심장이라고 할 정도로 중요도가 큰 핵심 서비스이다.

한 대의 컴퓨터를 EC2를 통해서 '임대한다'고 할 수 있다. 

다만, 실존하는 것이 아니라 아마존에서 만들어놓은 거대한 인프라 위에 가상으로 컴퓨터가 

만들어지는 것이다.(클라우드 컴퓨팅의 개념)

클릭 몇 번만에 생성 및 삭제가 가능하다.(유연하게 다룰 수 있다) Elastic라는 뜻이 "유연하다"


- ,EC2를 사용해서 할수 있는 가장 대표적인 일은 


1. 아마존 EC2를 통해 인스턴스(=한 대의 컴퓨터를 뜻하는 단위)를 생성하고,

2. 인스턴스를 활성화(running)시킨 뒤,

3. SSH로 putty등을 이용하여 접속을 한 뒤,

4. 웹 서버 설치하고 그 웹 서버를 통해서 사용자가 요청하는 웹페이지, 이미지, 동영상 등을 제공하는 일.


[인스턴스 생성]


인스턴스란 가상의 컴퓨터 1대를 의미한다.




아마존의 핵심 서비스인만큼 맨 위에, 맨 처음에 EC2가 뜬다.

참고로 위 화면은  AWS 개발자 콘솔로 불리며 모든 AWS 서비스들을 관리할 수 있는 화면이다.

회원가입을 하고 난 뒤, 다음과 같은 화면이 메인페이지가 된다.


1. 위에서 EC2를 클릭하고 들어가면.



위와 같이 나온다. 만든게 없으므로 아무것도 안나올것이다.

위 네모. Launch instance를 클릭한다.


2. OS를 선택하라는 화면이 나온다. 난 우분투를 선택한다. Windows OS는 대부분 유료이므로 주의! 




3. 프리를 사용할 것이므로 기본적으로 선택된 것을 확인 후 Next




4. 만들기 전 컴퓨터의 성능 조정... 뭔 소리인지 모르므로 건들지 말고 Next  



5. 저장 공간을 설정하는 부분. 



Volume Type에서 SSD는 Magnetic보다 추가 요금이 발생 할 수 있다고 한다.. 

Magnetic을 바꿔도 되지만 테스트이므로 그냥 SSD로~


 

6. 내가 만들 클라우딩 컴퓨터의 이름을 설정한다. 본인 마음대로~




7. 방화벽을 설정하는 부분. 

기본적으로 SSH 포트번호인 22가 열려있으며, 
웹 서버 구축을 하기 위해서는 Add Rule버튼을 눌러서 HTTP 80포트도 추가해준다.



여기까지 하면 NExt 버튼이 아니라 


이렇게 바뀐다. 다시 한번 클릭


그러면 리뷰. 즉, 여태까지 지정해줬던 성능과. 환경세팅들이 정리되어 보여준다.

맞다면 드디어 Launch 버튼을 누를 수 있다.



키를 만들어야한다. Create a new key pair 로 변경후 키 이름을 아래에 적고 다운로드 키 페어 클릭~

다운로드에 저장된다~

그다음에 Launch를 눌러서 정말 진짜로 드디어 마침내 서버를 생성할 수 있었다.



만들어졌다~

다음엔 

이제 접속을 해봐야하므로 PUTTY를 이용하는 방법을 찾아보도록 하겠다.

Posted by sungho88
,

아마존 웹 서비스(Amazon Web Service)는 줄여서 AWS라고 부른다.

AWS를 사용하기 위해서는 당연히 먼저 가입을 해야한다. 가입하려면 아래 사이트로 접속을 하면 된다. 


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


1. 가입 또는 로그인을 클릭한다.



AWS는 기업용 회사 즉, 결제와 관련된 사이트이기 때문에 일반적인 회원가입과는 차원이 다르다.

즉, 보안과 개인정보가 까다롭다.




 


다음과 같이 4가지 단계.


1. 연락처 정보

- 이름

- 주소(나라/시/동/우편번호까지..)

- 핸드폰번호


2. 결제 정보

- AWS는 돈이 나갈 수 있는 경로(신용카드)를 반드시 제공해야 한다.  

- 또는 해외에서 사용할 수 있는 MasterCard 또는 VISA가 쓰여진 카드가 등록 가능하다. 

( 유효기간 및 카드번호까지 입력해야한다)


3. ID 확인

- 핸드폰 번호를 다시 한번 입력한다. 확인 버튼을 누르면 전화가 걸려온다. 미국/캐나다에서..;;

- 그 순간 PC 화면에 PIN 번호가 떴다. 휴대폰에 인증하라고 한다. 요금 나올까봐 급하게 입력했다.

- 그 순간 PC 화면에 인증완료라는 창이 떴다. 

- 드디어 무지 힘든 가입이 끝났다!!  고 생각했다.


4. 계획지원

- 어떻게 컨설팅을 해줄까? 이말이다.

- 개발자모드, 비즈니스 모드 등이 있다. 문제 발생 시 컨설팅 및 지원 해주겠다. 그러니까 돈을 내거라.  

- 무료로 사용할거다 하는 사람은 그냥 기본에 체크!!

(아래 캡처화면)


 

 


5. 확인

- 끝났는줄 알았는데 메일을 보냈다고 또 인증을 하란다.

- 메일 접속 후 링크를 타고 다시 돌아오면 마침내 진짜 정말로 끝!!!


참고로 AWS 계정에 로그인하는데 필요한 비밀번호는 최대한 어렵게하는것을 추천한다.

이 사이트에서는 실수를 하게 되거나 또는 해킹을 당하게되면 막대한 금액이 청구될 수 있기 때문이다.

(수천대의 서버를 간단히 만들 수 있음)

또한 이 계정으로 접속하는 PC 역시 바이러스가 있으면 안된다. 최대한 안 깔려있는 깨끗한 컴퓨터로 접속을 하는것을 추천한다.

Posted by sungho88
,

[분할 정복 알고리즘(Divide and conquer algorithm)]


-  그대로 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 방법(알고리즘)

-  즉, 한번에 해결하기 어려운 문제를 작은 단위의 문제들로 나누어 해결하는 방법이다.

-  정복(conquer)이 들어가는 이유는 재밌게도 나폴레옹과 관련이 있다.1805년 12월 2일 아우스터리츠 

   전투에서 프랑스의 황제(皇帝) 나폴레옹은 숫자면에서 우세했던 연합군을 물리치기 위해서 나폴레옹은 

   연합군의 중앙으로 쳐들어가 그들의 병력을 둘로 갈라 놓았고, 둘로 나누어진 병력은 개별적으로는 

   나폴레옹의 군대보다 숫자가 적었기 때문에 전투는 나폴레옹의 승리로 끝나게 되었다. 분할정복법은 위와 

   같은 사례를 프로그램에 이용한 것이다.


분할정복법을 구현하기 위한 순서는 다음과 같다.
  1. 분할(Divide) : 분할이 가능한 경우, 큰 문제를 하나 이상의 작은 문제로 분할한다.
  2. 정복(Conquer) : 분할이 가능하다면 계속 분할한다. 분할이 불가능하다면 나눈 작은 문제를 각각 해결한다.
  3. 결합(Combine) : 정복된(해결된) 해답을 모아 큰 문제의 답이 되도록 결합(병합)한다.
분할 정복 알고리즘은 문제를 쪼개는 과정이 가장 핵심적인 기능이며 효율적인 분할을 하는 것이 중요하다.
문제 분할만 잘해도 그것을 해결(정복)한 뒤 병합하는 과정은 간단하기 때문이다. 하지만, 분할정복법의 경우 
대다수가 재귀호출을 통해 구현되기 때문에 그만큼 많은 부담을 갖게 된다.
 

[분할 정복 알고리즘을 이용한 대표적인 알고리즘]

  • 퀵 정렬 (Quick Sort)
  • 병합 정렬 (Merge Sort)
  • 피보나치 수열 (Fibonacci Sequence)
  • 거듭 제곱 (Exponentiation)
  • 고속 푸리에 변환 (Fast Fourier Transform, FFT)

참고 블로그 

http://debugnote.com/algorithm/2015/07/06/quick-sort/



Posted by sungho88
,