Medium - AWS vs Azure vs Firebase vs Heroku vs Netlify—How To Choose the Best Platform for Web Projects
in Trend
Trend 파악을 Medium 기고문 요약 포스팅 - 올바른 플랫폼을 결정하는 많은 사실들에 대해서
Photo by Javier Allegue Barros on Unsplash
웹과 모바일 개발은 최근 몇 년간 크게 발전해오고 있습니다. 최근 웹 어플리케이션들은 주로 Angular, React, Vue.js 와 같은 강력한 자바스크립트 기능을 기반으로 만들어지고 있습니다. 어디에서나 이런 웹 어플리케이션을 호스팅 할 수 있지만 아마 당신은 호스팅 이상의 것이 필요할 수도 있습니다. 구글, 아마존, 마이크로소프트 같은 큰 클라우드 회사와 같은 곳은 당신이 요청하는 거의 모든 것을 제공할 겁니다. 반면에 Netlify와 같이 신흥 경쟁자들은 최신 웹사이트를 만드는데 인상적인 UX를 제공합니다.
이 기사에서는 웹 기반 프로젝트에 초점을 맞춰서 다음과 같은 플랫폼들을 살펴볼 것입니다.
- Amazon Web Services (AWS)
- Microsoft Azure
- Firebase / Google Cloud Platform
- Heroku
- Netlify
이 기사는 단지 해당 주제에 대해 짧게 살펴보는 것에 지나지 않는 다는 것을 기억하세요. 프로젝트의 규모와 요구사항에 따라 고려해야될 사항은 많이 있습니다. 다음과 같은 것도 있죠
- Costs : 어떤 플랫폼들은 처음에는 저렴하게 시작하지만 확장을 하는 순간 엄청나게 비싸지는 경우가 있습니다.
- Performance : 특정 플랫폼이 성능면에서 다른 것들 보다 우수합니다.
- Features : 어떤 플랫폼들은 웹 프로젝트와 같이 집중하는 타겟이 있는 반면에 큰 플랫폼들은 거의 모든 서비스 솔루션들을 제공합니다.
- Availability in your region : 유럽 개인정보 보호법의 규제와 같은 것을 고려해야 합니다.
- Compliance & IT security : ISO/IEC 27001 같은 자격이 되는지 확인해야 합니다.
자 그럼 위의 플랫폼들이 이런 것들을 할 수 있는지 확인해 봅시다.
Image source: Amazon
Amazon Web Services (AWS)
Amazon Web Services는 꽤 오랫동한 클라우드 컴퓨팅 시장에 있었습니다. AWS는 멋진 이름을 가진 다양한 상품을 제공합니다.
- Amazon S3 (클라우드 저장소)
- Amazon EC2 (가상 서버)
- Amazon DynamoDB (NoSQL 데이터베이스 관리)
- AWS Device Fram (AWS 클라우드 환경에서 안드로이드, iOS, 웹앱의 테스트를 실제 기기로 수행)
넷플릭스, Unilever, 삼성이 AWS를 사용하고 있습니다. 1년간 무료로 사용할 수 있으며 그정도면 충분히 이해할 수 있는 시간이죠. 그러나 AWS가 해를 거듭하며 거대해져서 사용법이 직관적이지는 않습니다.
Image credit: Microsoft
Microsoft Azure
Microsoft Azure는 최고의 클라우드 컴퓨팅 플랫폼 중에 하나입니다. 마이크로소프트는 스타트업 기업들에게 제한된 Azure 서비스를 무료로 이용할 수 있는 특별한 프로그램을 제공합니다. Azure는 다음과 같은 서비스를 제공합니다.
- Azure Kubernetes Service : 배포의 단순화, 관리, Kubernetes 오퍼레이션
- Azure DevOps : 소스코드 팀 공유 서비스, 작업 추적, 소프트웨어 배포
- Web Apps : 규모에 맞는 웹 앱을 생성하고 구축할 수 있음
- Azure Cosmos DB : 전 세계적으로 분산된 멀티 모델 데이터베이스
어도비, BMW, HP와 같은 선두 기업들이 Azure에 의존하고 있습니다. 마이크로소프트는 B2B에서 좋은 입지를 가지고 있기 때문에 큰 단체들은 마이크로소프트의 Azure를 더 선호합니다. 아마존과 비슷하게 Azure의 UI는 복잡해서 새로운 사용자들에게는 어려울 것입니다.
Image credit: Firebase/Google
Firebase / Google Cloud Platform
Firebase는 구글의 개발 플랫폼 입니다. 기술적으로 Firebase는 구글 클라우드 플랫폼에 사용됩니다. 페이팔, 트위터, 그리고 구글 클라우드의 고객들을 목표로 합니다. 구글의 경험덕분에 Firebase는 다음과 같은 유용한 서비스를 많이 제공합니다.
- Cloud Functions : 관리 서버없이 코드를 수행하는 것
- Test Lab : 구글이 관리하는 기기에서 앱을 테스트 하는 것
- Google Analytics : 무료로 무제한의 앱 분석 기능
- ML Kit : 모바일 개발자를 위한 머신러닝
많은 개발자들은 구글 인프라의 강력한 기능 때문에 파이어베이스를 좋아합니다. 그러나 GDPR과 데이터 보호에 관한 규제가 강력해지면서 어떤 회사들은 구글 인프라를 사용하는 것을 피하기도 합니다.
Image credit: Heroku
Heroku
Heroku는 CRM 솔루션으로 유명한 미국 클라우드 기반의 소프트웨어 회사, Salesforce의 PaaS 입니다. Heroku의 무료버전은 테스트에는 좋지만 활동이 없으면 바로 슬립모드에 들어갑니다. 추가적인 기능을 제공하는 무료, 유료 애드온들이 많이 있습니다.
- Apache Kafka
- MongoDB
- New Relic
- Send Grid
Heroku는 자바, 파이썬 자바와 같은 유명한 언어를 지원합니다. 게다가 deploy에 사용할 수 있는 Heroku는 CLI를 제공합니다. Citrix, Toyota, Unsplash 같은 기업이 Heroku를 사용하는 것으로 알려져 있습니다.
Image credit: Netlify
Netlify
Netlify 는 새로운 경쟁자 입니다. 무료버전이 꽤나 후해서 Heroku의 무료버전과는 달리 슬립모드도 없습니다. Netlify의 UX와 기능은 직관적이고 매끄러운 작업을 가능하게 해줍니다. Netlify가 제공하는 강력한 애드온은 다음과 같습니다.
- Analytics (GDPR 준수)
- Functions (AWS Lambda 기능의 쉬운 배치)
- Forms (서버쪽의 코드나 자바스크립트 없이 form을 관리할 수 있음)
- Identity (가입, 로그인, 비밀번호 복구와 같은 관리를 커스텀 인증 서비스 없이 지원)
단점으로는 마이크로소프트나 아마존같은 클라우드 제공자가 웹 프로젝트 이상의 기능을 제공한다는 것입니다. 게다가 Java나 C#과 같은 다른 언어를 쓸 수 없고 JAMstack이라는 프롬프트를 사용해야 합니다. 그러나 서버 쪽의 Java나 C#의 기능을 사용할 수 있습니다.
WeWork, Verizon, Nike가 Netlify의 고객입니다. Vue.js나 Kubernetes같은 유명한 오픈소스 프로젝트도 Netlify를 사용하죠.
Conclusion
위에서 살펴보았듯이 고를 수 있는 많은 선택지가 있습니다.
- 웹 어플리케이션을 호스팅 할 때 저는 Netlify를 애용합니다. 빠르고 지원도 좋고 사용하기 쉽죠. 게다가 빠르게 성장하고 있는 상품입니다.
- Herokusms Node.js를 백엔드가 필요할 때 사용하는 플랫폼입니다.
- Firebase는 제가 아직 큰 프로젝트에서는 사용해 보지 않은 플랫폼입니다. 시작단계라면 좋은 선택이 될 수 있고 특히나 안드로이드와 iOS를 사용하여 작업을 한다면 더욱 좋을 것 입니다.
- Azure와 Aws는 당신이 매우 큰 프로젝트를 수행하거나 Azure, AWS가 제공하는 방대한 기능이 필요할 때 합리적인 선택이 될 것입니다. 양 플랫폼 모두 은행과 같이 높은 보안이 필요할 때도 적합합니다. Netlify 같은 플랫폼에 비해서는 훨씬 보안이 우수하죠.
Summary
- 클라우드 플랫폼 5개에 대한 비교
- 프로젝트의 성격과 팀의 고려사항에 따라 가장 적합한 클라우드 사업자를 선택하는 것이 프로젝트 효율에 영향을 미칠 수 있다.