All of My Records

[AWS] AWS에 대하여 :: 내가 만든 프로젝트 AWS를 통해 배포하기 1

by 캐떠린

AWS

'배포'란?
배포에 대해 설명하기 전, 아래의 예시(출판사에서 영문 글을 책으로 출판하는 과정)를 봐보자.
1. 번역가는 영문 글을 한글로 번역한다. → 컴파일
2. 번역된 글은 출판사에서 적절히 페이지를 분리하여 책으로 엮는다. → 빌드
  (1~2번 과정을 하나로 묶어 '빌드 한다'라고 하기도 한다.)
3. 엮은 책은 출판이 되어 서점에 진열된다. → 배포

이제 개발자의 입장에서 아래 예시를 봐보자.
1. 이클립스에서 코드를 작성한 후, 실행(Ctrl + F11)한다. → 컴파일 + 실행
2. 정상적으로 실행됨을 확인 후, *.war 파일로 내보내기(export)한다. → 빌드
3. 2번의 파일을 웹 서버에 올린다. → 배포

따라서 '배포'는 작성한 코드를 빌드하고, 빌드된 실행 가능 파일(jar, war)을 사용자가 접근할 수 있는 환경에 배치하여 사용할 수 있게 하는 것을 말한다. 개발자가 완성한 소프트웨어를 최종 사용자가 이용할 수 있도록 하는 것!

 

내가 Spring으로 만든 웹 사이트는 내 로컬에서만 돌아갈 뿐, 다른 사람의 컴퓨터에서 볼 수 없었다. 이제 다른 이에게도 내 사이트를 보여주고 자랑하고 이용하게 하기 위해 배포를 해보자!

배포를 하기 위해서 운영 서버 환경 구성이 필요한데, 나는 운영 서버 환경 구성에 'AWS' 클라우드 서비스를 이용할 것이다.

그러므로 'AWS'에 대해 알아보자!

 

AWS(Amazon Web Services)란? 

AWS는 미국 기업인 아마존에서 만든 클라우드 서비스 플랫폼이다.

AWS는 다른 웹사이트나 클라이언트측 응용 프로그램에 대한 온라인 서비스를 제공하는데, "실제 아마존이 운영하는 수많은 하드웨어 중 일부를 우리에게 떼어준다" 라고 생각하면 된다.

- 공식 홈페이지: https://aws.amazon.com/ko/

AWS 탄생 배경

인터넷 쇼핑몰을 운영하던 아마존은 늘어난 트래픽과 주문량을 감당하다 보니 자연스럽게 굉장히 뛰어난 수준의 내부 인프라 시스템을 구축하게 되었다. 컴퓨팅, 스토리지, 데이터베이스 등 운영 서버에 필요한 인프라를 누구보다 안정적이고, 저렴하게 운영할 수 있는 능력을 전 세계 모든 회사를 대상으로 제공하자는 생각으로 클라우드 서비스 플랫폼 AWS가 탄생하게 되었다.

AWS 제공 서비스

AWS에서는 단순히 컴퓨팅 서버만을 제공하는 것이 아니라 운영 서버에서 자주 사용되는 온갖 서비스들을 함께 제공한다. 데이터베이스, 배포 자동화, 모니터링, 이메일, 보안, 테스트, 도메인 등 100가지가 훨씬 넘는 서비스를 제공하고 있다.

만약 AWS같은 클라우드 서비스를 이용하지 않는 다면 직접 서버를 구매해서 MySQL과 같은 RDB를 설치 및 관리해야 하지만 AWS의 DB 서비스인 RDS를 이용하면 몇 번의 클릭만으로 RDB를 생성하고 안정적으로 운영할  수 있다.

AWS의 클라우드 시장 점유율

아마존뿐만 아니라 구글, 마이크로소프트, IBM, 네이버 같은 인터넷 대기업들도 클라우드 서비스를 제공하고 있으나, 2018년 기준 AWS는 전 세계 클라우드 시장의 33%정도를 차지하고 있고 이는 2~4위 업체들의 총합보다 많다.

AWS의 리전(region)

AWS는 전 세계의 일부 지역에 인프라를 구축해서 호스팅하고 있는 글로벌 서비스다. 지리 영역을 리전(region)이라고 부르는데, 서비스하려는 지역에 가장 가까운 리전을 선택해야 네트워크 지연 시간을 최소화할 수 있다. 한국에는 서울 리전이 있기 때문에, 한국에서 서비스를 하고자 한다면 서울 리전을 선택해야 한다.

클라우드 서비스 플랫폼을 써야 하는 이유

클라우드 서비스 플랫폼을 사용하지 않을 경우, 기존의 운영 서버 관리 방식을 사용해야 한다.

기존의 운영 서버 관리 방식이라면, 서버를 직접 구매한 후 회사나 IDC에 설치해서 관리해야 하고, 이 서버들이 문제없이 돌아가게 하기 위한 전문 인력들도 필요하다. 서버뿐만 아니라 서버에 설치되는 수많은 인프라(데이터베이스, 캐시, 보안 등)에 대해서도 전문 인력들이 필요하다. 또한 필요에 따라 유연하게 서버를 늘리거나 줄이기 힘들기 때문에 서버를 넉넉하게 구매해놓고 사용하지 않는 비효율적인 자원 낭비의 경우도 많다.

하지만 클라우드 서비스를 이용할 경우 필요한 사양의 서버를 쉽게 추가하거나 제고할 수 있고 사용한 시간만큼만 금액을 지불하면 된다. 또한 클라우드 서비스 제공 업체에 전문 인력들이 있기 때문에 개개인이 안정성이나 성능 등에 대해서도 고민을 훨씬 덜 해도 된다. 결국 훨씬 적은 비용, 시간, 인력으로도 큰 규모의 서비스 운영이 가능해진다.

 

그럼, 이제 다음 포스트에서 AWS에 회원가입을 해보자!(준비물: 신용카드)

 

*글 작성에 참고한 도서: '서비스 운영이 쉬워지는 AWS 인프라 구축 가이드'

* 글 작성에 참고한 포스트: https://itholic.github.io/qa-compile-build-deploy/

  (위 포스트에서 컴파일-빌드-배포 설명을 너무 잘 해놓으셔서 많은 도움이 되었다.)

블로그의 정보

All of My Records

캐떠린

활동하기