161119_OSS개발자포럼 AWS 입문 Hands-On 과정 후기

2016. 11. 19.


페이스북 OSS개발자포럼 에서 진행하는


AWS입문 Hands-On 과정을 수강했다.






강의전 안내 메일이 왔다.




준비사항
* AWS Free tier 계정(https://aws.amazon.com/ko/free) 혹은 강의 시간 동안 사용되는 요금(최대 2천원정도)을 스스로 부담
* 쉘을 사용할 수 있는 환경
      - bash를 기준으로 작업
      - zsh과 같은 다른 쉘을 사용하는 경우 진행 중 실행하는 명령어를 알아서 고쳐 써야 함
* ssh를 사용할 수 있는 환경
      - EC2에 ssh를 열 수 있어야 진행 가능
      - 우분투와 같은 리눅스 환경을 듀얼 부팅으로 설치해오거나 가상 머신으로 설치해올 것
      - 윈도우라면 putty 사용 혹은 윈도우 10 레드스톤부터 제공되는 리눅스 서브 시스템 업데이트를 해서 bash를 사용 가능하게 준비할 것
* 아주 기본적인 수준에서의 vi 사용법 숙지
      - EC2에 ssh를 열어서 파일 수정을 할 수 있어야 함
* 웹 서비스 개발 환경 준비
      - 진행 중간 중간 스스로 프로젝트 상태 및 DB 확인을 위해 필요
      - 파이썬 IDE로 Pycharm, DB 툴로 MySQL Workbench를 추천하며, 그 외 emacsvi, mysql-cli와 같은 본인이 선호하는 툴이 있으면 대체 가능
      - Pycharm과 MySQL Workbench는 윈도우, 우분투에서 사용 가능하므로 추천




생소한 말이 많다.

- bash는 무엇이고 zsh는 무엇인가? ssh는 또 무엇이며 EC2는 무엇인가?
- 쓰여진 영어들을 다 모르겠다. 




급하게 생활코딩 아마존 강좌를 소환했다. 


무려 2012년에 찍힌 강좌다. 


이고잉 선생님은 대단하시다. 



<영상을 올렸으나 영상이 다른 곳에 탑재가 안 되도록 처리된듯 하다>








영상을 보면서 EC2 (이씨투)의 뜻을 알았다. 

Elastic (탄력있는) Compute Cloud 라고 하고, 독립적인 컴퓨터란다. 

Linux, Window 운영체제를 제공하고 

웹서버, 에플리케이션 서버로 사용할 수 있단다. 




EC2는 일반적인 목적 (모든 용도로 사용)할 수 있지만, 

AWS에서 EC2가 구현하기 어렵거나 불가능한 서비스를 만들어 낸다고 한다. 





참고로 S3는 Simple Storage Service 는 파일서버인데

파일을 저장했다가 주는 서버인데 

무제한 저장할 수 있는 특징이 있다고 한다. 

스케일(많은 사람들이 방문하는 것)은 아마존 인프라가 담당해준다고 한다. 



파일이 저장할 때 (일반적으로 객체라고 함), 

1바이트에서 5테라바이트 단일파일을 저장할 수 있다고 한다 (대박!)






다음으로 RDS. 관계형 데이터 베이스 (Relational Database Service). 

Mysql(마이에스큐엘), Oracle, SQL Server 지원 

백업, 리플리케이션을 아마존 인프라가 자동으로 제공하며, 

데이터 관리를 대행해준다고 한다. 







다음은 ELB. Elastic Load Balancing 

EC2로 유입되는 트래픽을 여러 대의 EC2로 분산한다. 

장애가 발생한 EC2를 감지해서 자동으로 배제한다. 

Auto Scaling (자동으로 규모를 분석) 기능을 이용해서 EC2를 자동으로 생성, 삭제 
(아마존 웹서비스의 꽃이라고 한다) 





<영상을 올렸으나 영상이 다른 곳에 탑재가 안 되도록 처리된듯 하다>







다음 강좌 영상이다. 

아마존을 이용하는 가장 큰 이유를 스케일이라고 한다. 

트래픽이 발생할 때, 효율적으로 대응해주는 서비스라고 한다. 



처음에는 한 대의 EC2로 모든 역할을 했지만, 

한 대의 EC2 컴퓨터로 역할을 하기 어렵기 때문에 역할에 따라서 시스템을 분할한다. 

트래픽이 더 늘어나게 되면 EC2 컴퓨터 앞에 ELB를 두어서 헬쓰체크를 해서 적절하게 사용자들을 분산해준다고 한다. 

서비스 스케일이 경직성이 생겨나면 (만약에 백만명 오다가 만명이 오면) Cloud Watch 가 체크해서 자동으로 EC2를 자동으로 증감하게 된다. 




RDS데이터베이스 경우 

한 대의 데이터베이스를 스케일 업하다가 

더 요구가 많아지면, 마스터(쓰기작업, 한 대만 존재)와 슬레이브(읽기작업,다수 대)로 분산하여 운영한다. 


그러다가 더 많아지면, shading 을 해서 RDS데이터베이스를 물리적으로 분산한다. 

이런 물리적 분산작업이 어렵기 때문에 

RDS데이터베이스의 일부 기능을 포기해서 확장성을 얻어낸 

NoSQL(노에스큐엘)을 사용한다. 

확장성이나 규모를 걱정할 필요 없다. 







아마존은 대용량 시스템, 규모가 있는 시스템을 만드는 데 도움을 준다고 한다. 








계정을 만들었다.



bash를 설치하려고 구글에 검색 했다.


[Windows 10/윈도우 10] WSL Windows 10 Bash 사용하기(lxrun) 라는 글이 가장 위에 있었다.  (http://sanghaklee.tistory.com/39)



들어가서 똑같이 하니 맥북에 패럴로 깔린 윈도우 내 우분투 리눅스가 깔렸다. 







리눅스를 깔면서 vi 가 뭔지 알았다.

윈도우 메모장과 같은 리눅스 기본 텍스트 에디터란다.



자연스럽게 'vi 명령어 모음' 로 구글 검색 했다.

인쇄도 한다.




위 사진을 페이스북에 게시했더니

맥에서 터미널이 바로 나온단다 ㅠㅠ




다시 검색했다.


맥 터미널 실행방법 및 명령어가 나왔다.


다시 공부한다.






다시 생활코딩으로 왔다.





<영상을 올렸으나 영상이 다른 곳에 탑재가 안 되도록 처리된듯 하다>





EC2는 한 대의 독립적인 컴퓨터를 아마존 웹서비스에서 사는 것.


컴퓨터를 1분만에 클라우딩에서 살 수 있다.


웹서버를 설치하고, 웹브라우져/동영상을 사용자에게 제공하는 기본적인 컴퓨터를 제공해준다.


컴퓨터를 생성하고 삭제하기가 매우 쉽고, 생성하는 동시에 가금이 된다.





<영상을 올렸으나 영상이 다른 곳에 탑재가 안 되도록 처리된듯 하다>





이제 EC2에 접속하기 위해서는 원격제어 SSH방법을 알아야 한다고 한다. 


생활코딩에서 제공하는 주소로 날라간다. 







<영상을 올렸으나 영상이 다른 곳에 탑재가 안 되도록 처리된듯 하다>




동영상을 본다.




SSH는 Secure Sell(Sell는 명령어로 컴퓨터를 제어하는 방식)의 약자로 원격지(자신의 집같은)에 있는 컴퓨터를 안전하게 제어하기 위한 프로토콜 또는 프로토콜을 사용하는 프로그램을 의미한다고 한다. SSH 서버, SSH 클라이언트를 통칭해서 SSH 라고 부른다. 통신프로토콜. SSH가 나타나기 전에는 텔렛이나 여러 방법으로 제어 했는데, 그런 방식이 평문으로 데이터를 주고 받기 때문에 중간에서 다른 사람이 쉽게 가로챌 수 있수 있었는데, SSH는 Secure가 붙어서 암호화된 데이터를 주고 받기 때문에 강력한 보안상의 이점이 있다. 



SSH는 클라이언트와 서버로 구성되어 있는데, 웹이 브라우져와 서버프로그램이 있는 것과 같다. 
클라이언트는 명령을 내리고, 서버는 명령을 전달하는 연락을 한다고 한다. 
SSH클라이언트는 리눅스나 맥에 기본적으로 설치되어 있다고 한다. 



지금까지 맥프레 노트북을 거의 크롬이나 페북용도로만 활용했는데, 대박이다. 


맥은 유닉스계열 운영체계이기 때문에 SSH클라이언트와 서버가 탑재되어 있다고 한다. 

그냥 터미널을 열고 SSH을 이용하면 된다고 한다. 









<영상을 올렸으나 영상이 다른 곳에 탑재가 안 되도록 처리된듯 하다>






이젠 웹서비스 개발환경을 준비하기 위해서 

맥에서 웹서버 설치 생활코딩 영상을 본다. 

주소는 https://opentutorials.org/course/1688/9338 다. 




<영상을 올렸으나 영상이 다른 곳에 탑재가 안 되도록 처리된듯 하다>





맥에서 서버를 구축할 수 있는 비트나미 프로그램을 받는다. 





이제 Pycharm(파이참)을 설치한다. 파이썬 IDE라고 한다. 

주소는 https://www.jetbrains.com/pycharm 다.




다음으로 DB툴로 MySQL Workbench를 설치한다.

공식 사이트에서 받을 수 있지만 Homebrew를 추천하는 글을 

읽고, http://brew.sh/index_ko.html 에서 설치한다. 



결국 나중에 공식 사이트에서 받았긴했진 말이다.





1부 강연이 시작되었다.


윤석찬 님은


주말에 배우려는 이런 열정이 대한민국을 위한 일이라고 개요하고 시작한다.




대가의 클라쓰는 역시 다르다.




나는 배움의 공간에서는


이해력이 떨어져서


3~5번을 봐야 이해가 되어


공부하려고 영상을 찍는다.



혹시 몰라 내가 찍은 영상을 공유해도 될런지 여쭸는데,


허락해 주셨다.



아울러 강연자료까지 OSS개발자포럼에 공유해주셨다.


대박이시다!!


http://www.slideshare.net/awskorea/aws-cloud-open-source








강의 영상 1번이다. 








강의 영상 2번이다. 








오늘 그룹이 오픈소스 개발자 그룹이라서

아마존 앱서비스에서 오픈소스와 관련된 정보를 공유한다고 한다.


흥미로운 점은 AWS 를 '에더베스'라고 말한다.






오픈 소스를 잘 활용하면 AWS를 잘 활용할 수 있다고 한다.


네이버, 다음 등 상위권 업체들은 오픈소스를 사용하고 있다고 한다.





오픈 소스를 활용하면서 문제점은

배우는 기간이 필요한데, 그 다음 문제는 오픈 소스를 활용해서 관리 운용, 디버깅의 이슈가 많았다고 했다. 


나는 2년전 AWS에 들어왔는데 많은 서비스가 오픈소스에 기반한다고 한다.



클라우드 컴퓨팅이란? 회사에서 개발할 때 필요한 모든 눈에 보이는 물리적 자원은 가상화 했다고 한다. 소프트웨어적으로 활용할 수 있도록 만들었다고 한다.



따라서 필요할 때마다 사용할 수 있다.
사용한 만큼만 지불한다.
대용량 서비스다.



여러 가지 다양한 구매옵션을 사용할 수 있다고 한다.


2006년에 시작한 AWS로 다른 회사들도 도입을 하고 있다고 한다.


AWS 는 처음에 이름과 서비스를 매칭하는 것이 쉽지 않다고 한다.

CPU/메모리 - EC2
하드디스크 - Amazon Elastic Block Store (EBS)
스토리지 - Amazon Simple Storage Service (S3)
데이터베이스 - RDS



AWS가 주는 장점이 여러 가지가 있는데, 개발자에게 중요한 것은
서비스를 만들기 위한 [애플리케이션 환경, 웹 서비, 데이터베이스, 운영체제 설치, 물리적 서버]를 AWS가 관리해주고 단지 '여러분의 소중한 서비스'에게만 집중하게 해준다는 점이다.


AWS 콘솔을 보면

가장 왼쪽은 기본적인 것이고, 오른쪽으로 가면서 관리형 도구가 있다. 가장 오른 쪽에 있으면 상단의 앱서비스가 있다.




AWS 서비스 철학

1. Primitives - 서비스 70개가 레고블럭이다. 다 알 필요는 없다. 서비스에 필요한 핵심 서비스만 알아도 된다.

2. Fully-managed - 설치해서 쓰는 것이 아닌 몇 번 클릭하면 소프트웨어가 세팅되어 있다. 개발하는 데만 집중하면 된다.

3. Innovative - 아마존의 기술혁신을 통해서 롱텀으로 개발을 하고 있다가, 클라우드 컴퓨팅 IT기술적인 부분에 리더쉽을 가지고 있다. 최근 클라우딩 컴퓨팅이 대세가 되면서 이슈가 되고 있다.


2주 후에 라스베이거스에서 아마존 서비스 미리 보여준다고 한다.




AWS in 2016

기존 데이터 센터를 통해서 서비스를 받고 있을 것이다. 지역별로 데이터 센터가 있어서 운영한다. AWS서버가 몇 대인지는 어리석은 질문이다. 생각하는 것보다 대단히 많다.

전 세계 14군데 리전이라는 곳에 펼쳐져 있다.

그곳에 가까운 곳에 실습을 할 수 있다.

리전안에 에이지(AZ)가 있다. 에이지 하나에 데이터 센터가 많이 있을 수 있다.

에이지를 통해서 언제든지 서비스를 복구 할 수 있다.

Edge는 60여개가 있다. 글로벌 서비스를 배포한다.




AWS 오픈소스 직접 활용하기

가상서버스를 띄울 수 있다.

아마존에서는 자신만의 AMI(Amazon Machine Image; 부팅 디스크)를 만들어 공유한다.


AMI 중에는 Amazon Linux가 있다. 외부에서도 사용할 수 있는 독커 이미지도 있다.



AWS ElasticBeanstalk 는 손쉽게 웹서비를 구성 및 배포할 수 있는 무료 관리형 서비스다.

개발자만 쓰는 것이 아니라 큰 회사에도 쓰고 있다.


AWS Marketplace 이용할 수 있다.

많은 도구 들이 있다. 가령, 내가 워드프레스를 원하면 바로 사용할 수 있다.


대표적인 회사가 비트나미와 클라우드9 이다.




오늘 배우는 것은 한 번 배우고 나서 각각의 플랫폼을 선택해서 사용하면 된다.





Amazon RDS


 관계형 DB(RDB) 관리형 서비스
  . DB 서버를 따로 EC2 에 직접 설치 불필요
  . 업데이트, 보안 패치, 백업 등 지원
  . 상용 라이센스 선택적 이용 가능



다양한 OSS데이터 제공

인-메모리 기반 캐시 서비스
   . 자주 사용하는 작은 값이나 DB병목을 해결하기 위해 자주 업데이트 하는 핫 아이템에 대해 메모리 캐시에 저장하는 용도로 활용

지원 OSS플랫폼  - Memcashed  및 Redis지원



Amanzon EMR
. 오픈소스 기반 빅데이터 관리형 서비스
. EMR 5.1.0


기타 오픈소스 기반서비스
. Amazon Elasticsearch Service -  ELK 지원
. Amazon ElasticTranscoding Service - FFMPEG이용한 도영상 인코딩
. Amazon CodeCommit - Git 지원
등등.. 20가지



<AWS 활용하기>
1. 오픈소스를 직접 설치해서 쓸 수 있다.
2. 기존 플랫폼을 활용할 수 있다.
3. AWS 오픈 소스 직접 참여할 수 있다.



오픈소스는 어렵지 않다.

아주 작은 것부터 할 수 있다.

오타 잘못된 것 찾는 패치를 넣는 것 등 아주 작은 것부터 시작한다.

오픈소스는 일종의 Life coding 이다. 생활에서 할 수 있다.


1. github.com/AWS  도구가 있다.
2. github.com/AWSLabs 도구.
3. github.com/donnemartin/awesome-aws ; AWS 관련 모든 오픈 소스가 있다.




개발자 컴퓨니티에게 지원한다.



쉬는 시간이다.



10분 쉬는 시간이 마치고,




모임을 개설한 유우영님은

보편적으로 많이 쓰는데, 잘 쓰이지 않는다.

동영상 강의를 보다가 막히면 더 이상 하기가 싫어지기 때문에 만들었다고 한다.





다시 이어서 3시간 동안 실습이 이어진다.


강사는 정주홍 님. 조교가 세 분이나 계셔서 도와준다.




강의자료는

https://www.dropbox.com/s/dzpy7w44hfz9zvm/OSS%20AWS%20%ED%95%B8%EC%A6%88%EC%98%A8%20%EA%B0%95%EC%9D%98.pdf?dl=0


로 공유해주셨다. (이 자료는 처음 자료이고 )



나중에 공유된 자료는


http://www.slideshare.net/JuHongJeong1/oss-aws-69310654 다.








이제 실습에 집중하려고 실시간 후기는 거의 남기지 못하고 있다.


AWS는 고정 아이피보다는 고정 도메인을 선호한다고 한다.


아이피는 안에서 계속 바뀐다. 클라우드 서비스는 아이피는 계속 돌아가고 도메인으로 되어 있다.






실습안에 제시한 코스를 따라서 계속 입력하니


Hello world 라고 떳다.










계속 실습을 진행하며, 따라서 했는데, 


서버 구성을 전혀 모르는 나로써는 마지막에 힘에 부쳐서 


다 완성하지 못했다. 


아마 좋은 서비스나 일반인이 하기는 쉽지 않을 듯 하다. 



그래도 100달러 쿠폰을 받아서 대박이었다. 


아마존 클라쓰인가?!!







왜 한국에는 이런 서비스가 없는 것일까? 라는 질문을 드렸는데



이미 한국에 데이터센터가 있고, 한국인을 고용한 다국적 기업이라는 말씀을 들었다.






배움을 마치고 돌아가는 길에


중학교 2학년 방진혁 군을 만났다.


물어보니 서버에 대한 지식이 있어서 어렵지 않았다고 한다.


대박이었다.






정직이 퇴색해져 허해진 이 때


코딩처럼 정직함이 대한민국에 넘치길 소망하며,


광주에 내려가는 기차를 탄다.


댓글

  1. 수고 많으셨습니다. 최만 선생님^^ 많이 피곤하실터인데 공유와 나눔을 실천하시는 진정한 IT선생님^^

    답글삭제
    답글
    1. 저는 하수 중 하수입니다. 감사드립니다. 열심히 준비하겠습니다. 최만드림

      삭제
  2. 오늘 조교 3인방 중 1인 이었던 유용우입니다. 세미나 과정을 정말 상세히 잘 기술하셨네요..! 수고하셨습니다!!

    답글삭제
    답글
    1. 하수의 삽질입니다. 열심히 남겨서 저보다 뒤에 오신 분들을 위해 준비하려 합니다. 조교님 완전 대박이셨습니다. 잘 배웠습니다. 최만드림

      삭제
  3. 와 정말 ... 강의 잘 정리하셨네요. 열정이 부럽네요

    답글삭제
    답글
    1. 영광입니다. 사실 중요한 실습과정을 기술했어야 하는데요 능력이 일천해서요 ㅠㅠ 열심히 배우겠습니다. 신세계는 즐겁습니다. 최만드림

      삭제

댓글 쓰기