데이터과학 유망주의 매일 글쓰기 — 쉬어가는 시간 — 1

배우는 자(Learner Of Life)
7 min readDec 7, 2020

--

Heroku vs AWS

# Heroku, #AWS

Heroku와 AWS를 비교해보자. (1)

오늘 한일:

이번 한주는 “쉬어가는 한 주"다. 정확히 말하면, 아무것도 안하고 쉬기보다는, 그동안 부족했던 것을 채워가는 시간이다. 그동안, 과제를 하면서 놓친것들 등을 다시 한번 학습해보는 시간이라고 할 수 있다.

그래서, 지난 과제에서 내가 짚고 넘어가지 못한 것들에 대해 정리해 보았다. 그 중 하나가 Heroku와 AWS같은 것들에 대한 좀 더 깊은 탐구였다.

Heroku는 어플리케이션을 쉽게 배포할 수 있게 해주는 플랫폼이며, AWS는 클라우드 서비스 플랫폼이다. 둘은 어떠한 차이가 있을까?

AWS

유연하고(flexible), 신뢰성있으며(reliable), 스케일이 조정가능하고(scalable), 사용하기 편리하고 가성비 좋은 클라우드 컴퓨팅 솔루션을 제공하는 플랫폼이다. 개발자에게 저장소, 데이터베이스, analytics, 네트워킹 및 배포/출시(deployment/delivery) 기능들을 제공한다. AWS 클라우드는 현재 전세계 16개의 지역에서 제공되며, 그 숫자는 계속 증가하고 있다.

AWS의 장점:

  • DevOps 팀이 있다면 인프라를 설정하고 관리할 수 있다.
  • 웹 또는 모발일 앱의 새로운 버전이 개발되었을 때, 빠르게 출시할 수 있다.
  • 앱을 쉽게 출시할 수 있게 해준다.
  • AWS 웹 서비스는 프로젝트가 고사양의 컴퓨팅이 필요할 때 이상적이다.
  • 어플리케이션 개발팀의 생산성을 높여준다.
  • 설정, 스케일링, 셋업, 다른 자동화된 기능들을 지원한다.
  • AWS는 모든 리소스에 대해 컨트롤을 할 수 있게 해준다.
  • AWS는 조직에서 이미 사용하고있는 프로그래밍 모델, OS, 데이터베이스 및 아키텍쳐를 을 사용할 수 있게 해준다.
  • 바로 지불해야할 비용이 없이, 비용을 지불한 만큼 서비스를 얻을 수 있다.
  • 데이터 센터를 마련하고 유지하는데 비용이 들지 않는다.
  • 빠른 배포를 할 수 있다.
  • 쉽게 용량을 더하거나 뺄 수 있다.
  • 제한없이 빠르게 클라우드에 접근할 수 있다.
  • 그 어떤 개인용/특화된 서버 보다도 소유를 위한 총 비용이 매우 낮다.
  • 비용을 일원화하여 관리할 수 있다.
  • 융합식 량을 제공한다.
  • 전 세계 어느 곳에서도 클릭 몇번 만으로 어플리케이션을 배포할 수 있다.

AWS의 단점

  • 에러에 대한 정보가 없고, 배포의 신뢰성이 떨어진다.
  • 배포과정이 쉽지 않으며, 매우 길다. 간단한 웹 사이트도 15~20분이 걸린다.
  • AWS는 기술적으로 복잡한 서비스를 제공하는 스타트업에게는 적합하지 않다
  • 업데이트나 새로운 스택 버전이 자주 릴리즈되지 않는다.
  • 레시피, Capistrano, 또는 수동으로 어플리케이션을 직접 배포해야한다.
  • AWS에서 다수의 어플리케이션 인스턴스를 론칭하는 것이 어렵다.

Heroku

Heroku는 Salesforce라는 곳의 소유이다. 클라우드 서비스와 소프트웨어 개발 플랫폼을 제공하며, 웹 어플리케이션의 빠르고 효과적인 개발, 출시 및 스케일링이 가능하다. 모니터링, 캐싱(caching), 이메일링 및 네트워킹 등을 할 수 있는 140개 이상의 alert, analytic 및 보안 서비스 add-on을 제공한다.

내제된(built-in) 즉각적(instant) run-time 어플리케이션 서비스를 제공한다. 또한, 소프트웨어가 자동으로 인프라를 관리해준다는 장점이있다. Heroku는 AWS같은 플랫폼위에 만들어진다.

Heroku의 장점

  • 개발자가 인프라 구성보다도 코드에 집중할 수 있다.
  • 클라우드 어플리케이션 개발 팀의 생산성을 높일 수 있다.
  • 모든 프로젝트에 대해 하나의 요금제를 통해 비용을 지불할 수 있다.
  • 풍부한 어플리케이션 모니터링 기능을 통해 성능을 모니터링하고 향상시킬 수 있다.
  • 개발 및 QA, 그리고 비즈니스 stakeholder들의 통합된 dashboard를 생성할 수 있게 돕는다.
  • 오픈 소스 언어의 서포트를 받을 수 있다.
  • 고사양의 Salesforce 통합이 가능하다.
  • 수직/수평 스케일링이 단순하다.
  • Heroku 운용 및 보안 팀은 24시간 동안 일주일 내내 준비가 되어있다.
  • 플랫폼 및 보안 시스템이 가장 앞서있다.
  • 운용보다는 새로운 기능을 추가하는 것에 집중할 수 있다.
  • Heroku는 시스템 업데이트 동안 downtime이 거의 없다.
  • 어플리케이션 lifecycle의 관리와 허용이 빠르다.
  • 강력한 대쉬보드 및 CLI를 제공한다.
  • 개발자에게 익숙한 workflow를 제공
  • 어플리케이션 개발 및 유지 보수의 비용을 예측할 수 있고, 인사이트를 얻을 수 있다.
  • 개발에 있어 장애를 없앨 수 있다.
  • 지원가능한 도구 제공
  • 초보자 및 스타트업에 적합
  • Heroku Command Line의 인터페이스를 사용하여10초 안에 새로운 서버를 생성할 수 있다.
  • 패치 및 모든 것들을 원활한 상태로 관리하는 클라우드 컴퓨팅 플랫폼을 제공한다.
  • 스케일링, 설정, 설치 및 자동화된 기능들을 지원한다.
  • AWS 제품과 쉬운 통합이 가능
  • 배우기가 지나치게 까다롭지 않다.
  • Salesforce 데이터에 안전하게 연결할 수 있다.
  • 유니크한 DevOps workflow가 필요한 커스터마이징과 서포트를 유연하게 가져갈 수 있다.

Heroku의 단점

  • Inbound및 outbound latency가 높다.
  • 낮은 네트워크 성능
  • Heroku 는 dynos에 그 어떤 다른 서비스를 허용하지 않는다.
  • 추가적인 dynos/worker를 위해서는 적어도 매월 35불 정도를 내야한다.
  • 용량이 크고, 트래픽이 높은 어플리케이션을 돌릴 경우 비용이 비싸진다.
  • 인스턴스 타입에 제한이 있다.
  • 고사양의 컴퓨팅이 필요할 경우에는 적합하지 않다.

주요 차이점:

  • Heroku는 컨테이너 기반 클라우드 플랫폼 서비스(PaaS)로써, IaaS, PaaS, SaaS등을 제공하는 안전한 클라우드 서비스 플랫폼이다.
  • Heroku는 만들어진 코드를 빠르게 배포할 수 있는 환경을 제공하지만, AWS의 경우 배포 과정이 훨씬 더 복잡하다.
  • Heroku는 스타트업이나 중소기업 규모의 비즈니스에 적합하며, AWS는 중견이상 대기업 정도의 비즈니스에 적합하다.
  • Heroku는 저사양의 컴퓨팅을 요구할때 적합하며, AWS는 훨씬 더 많은 컴퓨팅이 필요할 경우 사용하는 것이 좋다.
  • Heroku는 인프라의 유지 및 보수가 필요 없지만, AWS는 DevOps 전문가를 필요로 한다.
  • Heroku는 좀 더 적은 지역에서만 제공된다.

결론

Heroku와 AWS모두 훌륭한 플랫폼들이다. 하지만, 자신이 속해있는 조직과, 그 조직이 얼마나 비용을 지불할 의사가 있느냐에따라 어떤 것을 쓰는 것이 적합한지가 달라진다. 추후 유지 및 보수를 위해 자신의 조직에 DevOps관련 엔지니어가 있는지 확인하는 것이 좋다. 개발자의 생산성을 높이고, 비즈니스 목표를 이룰 수 있는 것이 적합한 플랫폼이라 할 수 있다.

앞으로 할일:

오늘은 Heroku와 AWS의 차이점에 대해 알아보았다. 둘다 세계적으로 유명한 플랫폼이고, 각 상황마다 쓸모가 다르다. 기술적으로 복잡하지 않으면서, 빠른 배포가 필요할 경우 Heroku를 이용할 수 있다. 반대로, 복잡한 어플의 경우 AWS를 이용할 수 있다. Heroku는 작은 규모의 회사, 특히 스타트업에 적합하고, AWS는 좀 더 큰 규모의 중견기업이나 대기업에 적합하다. 놀랍게도 Heroku가 기술지원은 좀 더 좋은 것으로 보인다. AWS는 업데이트가 생각보다 자주 되지 않기 때문이다.

결국, 그 어떤 도구도 상황에 맞게 쓰는 것이 가장 중요한 것 같다. 매번 새로운 지식을 공부하면서 매번 느끼는 거지만, “각 상황에 가장 최선의 결과를 내는 것이 가장 좋은 도구”다. 그러므로, 절대적으로 좋은 도구란 없다, 모든 상황에 가장 적합한 도구가 있을 뿐이다.

이 글은 대부분 Heroku vs AWS: 10 Most Important Differences You Must Know! 를 참조하여 작성했습니다.

참조:

(1) https://railsware.com/blog/wp-content/uploads/2018/11/HerokuvsAWS-illustration.jpg

--

--

배우는 자(Learner Of Life)
배우는 자(Learner Of Life)

Written by 배우는 자(Learner Of Life)

배움은 죽을 때까지 끝이 없다. 어쩌면 그게 우리가 살아있다는 증거일지도 모른다. 배움을 멈추는 순간, 혹은 배움의 기회가 더 이상 존재하지 않는 순간, 우리의 삶은 어쩌면 거기서 끝나는 것은 아닐까? 나는 배운다 그러므로 나는 존재한다. 배울 수 있음에, 그래서 살아 있음에 감사한다.

No responses yet