9. Deploy to cloud server

9.1. Why do we need a cloud server?

앞 절에서 만든 Spring Boot 게시판 서비스를 모두가 사용하게 하려면 어떻게 해야 할까요?
외부에서 제가 만든 서비스에 접근하려면 24시간 작동하는 서버가 필요합니다.
이동욱 저자님은 24시간 서버에 세가지 선택지가 있다고 소개해주셨습니다.

  • 집에 24시간 PC 구동시키기
  • 호스팅 서비스 이용하기
  • 클라우드 서비스 이용하기

클라우드와 호스팅의 가장 큰 차이는 유연성입니다.
호스팅 서비스는 IDC에 물리 서버를 실제로 구축해서 서비스하지만
클라우드 서비스는 서버를 가상화해 사용자의 필요에 따라 실시간으로 확장과 축소가 가능하다는 점에서 이점이 있습니다.

9.2. Type of cloud server

Amazon에 따르면, Elastic Computer Cloud(EC2)는 안전하고 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공하는 웹서비스입니다. EC2는 개발자가 더 쉽게 클라우드 컴퓨팅 작업을 할 수 있도록 돕습니다.
예를 들어 서버 로그 관리, 모니터링, 하드웨어 교체, 네트워크 관리 등을 지원해줍니다. 제 게시판 앱은 IaaS에 해당하는 AWS EC2에 올라갔지만 사용자가 얼마나 서버를 관리하는지, 얼마나 기술을 제공받는지에 따라 클라우드 컴퓨팅은 몇가지 형태로 나뉩니다.

  • Infrastructure as a Service(IaaS)
    • 기업이 준비한 환경에서 개발자들이 장비를 선택할 수 있는 서버
    • 고객은 가상 서버 하위 레벨에 대해서 고려할 필요가 없다.
    • AWS의 EC2처럼 원하는 OS를 깔아 서버로 바로 사용할 수 있다.
  • Platform as a Service(PaaS)
    • 클라우드에서 컴파일해서 결과를 가져올 수 있게 하는 형태의 서버
    • 개발자는 node.js, java와 같은 런타임을 깔아놓고 소스코드만 적어서 빌드한다.
    • heroku, google app engine, ibm bluemix 등이 있다.
  • Software as a Service(SaaS)
    • 모든 것을 클라우드에서 제공하고 사용자는 별도 설치에 대한 부담이 없다.
    • public cloud에 있는 SW를 웹 브라우저로 불러와 언제 어디서든 사용할 수 있다.
    • 웹 메일, 구글 클라우드, 네이버 클라우드, 드롭박스 등이 있다.

references

* 스프링 부트와 aws로 혼자 구현하는 웹 서비스 - 이동욱님 (👍)

* <https://www.comworld.co.kr/news/articleView.html?idxno=49797>

* <https://wnsgml972.github.io/network/2018/08/14/network_cloud-computing/>

+ Recent posts