next aws 세미나 후기

AWS란 무엇인가?

  • 제프 베조스라는 인물이 약 20년 간 아마존 서비스를 운영 중이다.
  • 전세계 190 국가가 사용한다.
  • aws의 규모는 2015년 순익 2조원으로 마진률이 약 25% 정도다. 아마존은 많이 벌고 있다.
  • 클라우드란, 네트워크로 연결된 가상의 컴퓨터 자원을 받는 것을 말한다.
  • aws의 특징, utility 기반으로 서비스를 제공한다. 과거 유틸리티는 전기, 수도, 가스 등 언제 어디서든 원하는 만큼 사용하게 된다. 예약할 필요가 없다. 정액 결제를 하고 쓰지 않는다. 쓰고 싶을 때 원하는 만큼을 쓰는 것이 유틸리티다. aws는 이와 같다. 쓴만큼만 요금이 나오며, 필요할 때만 쓰고 필요하지 않으면 안쓰게 된다.
  • 마치 스프링처럼 탄력성을 확보할 수 있다. aws의 모든 제품군들은 탄력성을 가지고 있다.
  • 가트너의 보고에 따르면 aws는 1등에 랭크되어 있다. 2등부터 꼴찌까지 모두 합쳐도 그보다 aws 사용 규모가 더 크다.
  • ms는 ceo가 바뀌면서 물리적 수치는 크게 변하지 않았으나 잠재력은 급진하여 aws에 근접하고 있다.
  • 2010년 중반에 아마존이 최초로 매출 8조원을 달성했다. 2015년 지금, 이때의 규모를 매일 추가하고 있다.
  • aws는 인텔의 cpu만을 사용하고 있으며, intel이 따로 전용으로 cpu를 설계해줄 정도로 수요가 많다.
  • cloud 비용은 갈 수록 떨어지고 있으므로 숨만 쉬고 있어도 점점 더 싸지고 있다.

AWS Global Coverage

  • 11개 Regions이 있다. 곧 한국에 12번째 리전이 생길 것이다. 내년 상반기에 한국에.
  • 각 리전은 하위 영역으로 가용 영역이라는 개념을 가지고 있고 이것은 복수개의 데이터 센터의 집합이나 데이터 센터라고 생각하면 좋다. 이는 레플리카 셋이기 때문에. 하나의 리전은 두 개의 가용영역을 가지며 이 둘이 동시에 문제가 발생해야 서비스가 다운 될 것이다.
  • 크리스마스는 커플의 날이 아니라 솔로의 날이다. 집에서 솔로가 스트리밍으로 동영상을 쫙 보는 날이다. 트래픽 급증.
  • 넷플릭스는 100% aws를 쓰는데 넷플릭스의 트래픽으로 다운된 적이 있다. 이후 넷플릭스는 aws에 보상을 요청하지 않고 자신들의 아키텍쳐를 개량했다.
  • 서버 한달의 비용으로 생각하면 aws는 그리 싸지 않다. 그러나, 물리적 서버를 운영하기 위한 온갖 비용을 고려하면 싸다! 그렇지만 한국은 인건비가 적기도 하고 해서 물리 서버를 사고 직원을 고용하는 것과 비교하여 상대적으로 그리 싸지 않다.

재밌는 점.

  • SPOT instance : aws 서버 중 상당수가 놀고 있다. 이 남는 부분을 경매를 통해 1/10 가격으로 쓸 수 있는데, 최고가를 지정한다. 이를 넘기는 회사가 나오면 빼앗기고, 이를 2분 전에 공지한다. 이걸 적당히 사용하는 아키텍쳐를 만드는 것도 aws를 잘 아는 기술.
  • 경매로 gpu 좋은 인스턴스를 시간당 400원 정도로 받아서 고성능 게임을 즐길 수도 있다. 현재는 일본 리전을 쓰므로 30fps 정도 나오는데 한국에 들어오는 내년이면 60fps도 가능할 것이다.
  • 온갖 스타트업들이 다 쓰고 있으며, 넥슨, 쿠키런 등에도 쓰이고 있다. 안쓰는게 이상할 정도.
  • 유연한 인프라를 가지고 있다. 오토 스케일링 : 사용자의 트래픽에 따라서 인스턴스의 수를 유연하게 조절한다. 물리 서버를 직접 사는 것에 비해 사용자 입장에서는 상당히 아낄 수 있다. 아마존 입장에서는 최고 이상의 트래픽을 예측하고 준비하지만.. 그래도 많이 남으므로 이런 기능을 제공하는 것이다.
  • DDOS 어택도 감당할 수 있다!
  • 쿠키런 같은 경우 트래픽이 출퇴근, 점심시간 순으로 많으며 새벽에는 거의 없다. 1대로 감당할 수 있는데 안정성을 위해 2대 인스턴스를 띄우고 있다.
  • aws와 아마존 닷컴은 분리된 계열사다.
  • nasa의 화성 탐사(큐리오시티 등) 스트리밍도 aws를 통했다. nasa의 메인 서버가 다운되었어도 aws로 연결하여 전세계 트래픽을 버틴 것이다.
  • mlb도, 올림픽도 aws를.

aws 서비스의 종류

  • S3 : 오브젝트 스토리지. 99.999999999% 안정성. 11 9이라고 하여 안깨질 확률을 말한다. 용량은 무제한.
  • EC2 : 서버, S3와의 네트워크 비용은 무료다.
  • CloudFront : 전세계 53개로 흩어진 엣지를 통해 분산하여 S3, EC2 등에 연결한다.
  • SWF, SQS etc : Paas
  • Cloud Formaition : 한 지역에 있는 서버 구성을 문서화하여 필요시 3분 만에 동일한 구조의 서버를 계속 늘려갈 수 있다. delete stack 버튼을 통해 생성된 서버를 제거할 수 있으므로 매우 유연하게 운영할 수 있다. 이는 글로벌하게 적용되므로 해외 트래픽 증감에도 유연하게 적용할 수 있다.
  • 빌딩 블럭 : 레고 조립하듯 여러 서비스를 조합하여 서비스를 구축할 수 있다. 이 점이 물리 서버를 대여하는 것과는 다른 것이다.
  • Elastic Beanstalk : 소스만 넣으면 EC2, S3 등을 알아서 자동으로 구축한다.
  • Lambda : Java, Javascript, python을 수행 가능한 로컬 메서드를 수행하는 서비스를 구축할 수 있다. 이는 DB 등은 별개로 사용해야 한다. 즉 메서드를 수행하는 전용 서버를 구축하기 위한 것이다. 상당히 인기.
  • Glacier : 싸구려. cheap. S3에 비해 1/3 정도의 가격인데 업로드는 빠르지만 읽기가 4~5 시간 이상 오래 걸린다. 자주 쓰지 않는 로그 데이터 등을 넣기에 적합하다.
  • RDS : RDB 관리에 용이하다. RS를 자동으로 하며 fail back 역시. DBA의 필요가 매우 준다.
  • DynamoDB : 무제한이며 매우 빠른 속도를 제공한다. 대신 복잡한 쿼리는 쓸 수 없다. key value 검색이나 range 검색 정도가 가능하다. 레코드 제한이 없는 무제한이므로 게임 데이터 등을 넣기에 좋다.
  • RDB가 커버 가능한 용량은 수십 테라까지 정도다. 그러나 최근 서비스는 페타 바이트가 나오므로 RDB로는 한계가 있다.
  • Redshift : 페타 바이트를 저장 가능한 DB를 제공하며 여기서 빠른 select가 가능하다.

실습

  • https://qwiklabs.com/ 에 가입한다.
  • LAB catalogue -> labs -> elastic compute cloud
  • 가격 계산 : http://calculator.s3.amazonaws.com/index.html
  • instance의 이름을 정할 때 신중히. 스크립트를 통해서 별도로 관리가 가능하므로.
  • 요금은 running에서만 받는다.
  • sudo yum -y update
  • sudo yum -y install httpd
  • sudo service httpd start
  • sudo chkconfig httpd on
  • S3의 파일 명에는 한글은 쓰지 않는다. 퍼블릭으로 바꾸어도 접속 권한 문제 발생.
  • S3 bucket의 전체 퍼블릭 설정하기.
    • static web hosting –> enable
    • bucket policy
      • aws policy generator
      • allow, *, getObject 선택
      • ARN : arn:aws:s3:::bucketName/*
      • add statement
      • generate policy
      • copy -> paste
    • 이후 static web hosting에 있는 end point 주소로 이제 접속 가능.
    • 왜 이렇게 복잡한가? S3는 디렉터리 구조를 가진 것이 아닌 key value만 가지고 있으므로 복수개의 권한을 한번에 설정하기가 쉽지 않다.
  • aws S3 업로드 api
    • 권한 설정 : 생략
    • $ aws s3 cp ./file s3://bucketName/
    • 기타 생략.
  • Action -> image ->create image : 이 이미지는 내부적으로 S3d에 생성 된다.
  • Action -> more like this : 백업 된 이미지로 같은 인스턴스를 새로 만든다.

오토 스케일링

  • ELB(Elastic load balancer), 클라우드워쳐(모니터링), AS(오토 스케일링) ->LC(가짜 EC2), EC2 들로 구성되어 있다. 워쳐에 의해 트래픽이 관측되다 필요시 오토스케일러가 인스턴스의 수를 조절한다.