Windows Azure 및 Amazon EC2 및 Google App Engine


159

개발자 관점에서 대규모 소셜 웹 애플리케이션에 어떤 플랫폼을 고려 하시겠습니까? 어떤 대안의 강점이라고 생각하는지에 대한 세부 정보를 제공 할 수 있다면 좋을 것입니다.


2
나는 최근에 같은 것을 비교하고있다-내 장단점을 내 블로그에 게시했다. 소규모 프로젝트 비용을 기준으로 Azure가 출시되었지만 EC2와 Google App Engine은 모두 강력한 경쟁자입니다. blog.dantup.com/2010/10/…
Danny Tuppeny

2
이 질문은 커뮤니티 위키 여야합니다.

랙 공간 ftw!
Greg

답변:


227

GAE (Python 및 현재 Java)와 Azure에서 동일한 앱을 작성했습니다. 나는 아마도 다른 것들을 위해 둘 다 계속 사용할 것입니다. 다음은 계속 업데이트 할 몇 가지 생각입니다.

GAE를 사용해야하는 이유 :

  • 기본적으로 하루에 하나의 무료 VM을 사용할 수 있습니다. Azure를 사용하면 단일 웹 사이트 방문자가 없어도 매달 거의 100 달러를 지불합니다. DB가 1GB를 초과하면 스토리지에 $ 90 ($ 9-> $ 99)를 추가로 지불합니다. 업데이트 : Azure에는 이제 다른 가격대에서 다양한 VM 및 DB 크기가 있습니다. 자세한 내용은 여기를 참조하십시오 .
  • GAE의 지불은 상당히 세분화되어 있습니다. 대부분의 리소스는 요청 당 GB / MB 당 청구되며 대부분의 리소스에 대해 매일 무료로 할당됩니다. 그러나 2011 년 11 월에는 인스턴스 시간당 웹 서버 요금을 청구하기 위해 Azure와 AWS에 합류했습니다. 자세한 내용은 여기를 참조하십시오 .
  • GAE의 관리 부담이 가장 적습니다. 설치가 완료되면 배포 및 재배포가 빠르고 모든 것이 자동으로 수행됩니다. 예를 들어 앱에서 사용중인 서버 수, 데이터 샤딩 방법,로드 균형 조정 방법에 대해 걱정하지 않아도됩니다.
  • 메일이 작동합니다. 작성 당시 Azure는 SMTP를 제공하지 않으므로 타사 서버가 필요합니다.
  • 캘린더, 메일 등 다양한 Google 제품과 완벽하게 통합됩니다. 사용자 기반을 제어하지 않으려는 경우 사용자 관리를 Google에 위임 할 수 있습니다.
  • GAE를 사용하면 상점에 추가하는 기능을 알 수 있습니다. Azure를 사용하면 Sql Azure Database가 많은 사랑을받을 수 있다는 느낌이 들지만 더 비쌉니다. Azure Storage는 가장 큰 어려움을 겪을 것입니다. 관계 무결성, 순서 없음, 메모리 내 컨텍스트를 더 이상 고민하지 않아도됩니다. GAE의 스토어에는 Azure Tables보다 훨씬 적은 제한과 기능이 있습니다.
  • Python 또는 JVM 기반 언어를 이미 사용하고 있다면 좋은 선택입니다. 오늘날 많은 언어가 Java 바이트 코드로 컴파일됩니다.
  • 앱 업데이트는 매우 빠릅니다. Python의 경우 바로 가기 키 설정이 있었고 시간이 전혀 걸리지 않았습니다. 이제 Eclipse Eclipse Plugin for Java를 사용하며 매우 잘 작동합니다. Azure가 더 어리 석습니다.
  • 로컬에서 테스트 한 앱은 변경없이 클라우드에서 실행될 것입니다. Azure를 사용하면 구성이 다르고 올바르게 설정하기 전에 삭제-빌딩-업로드-업로드 시작을 중단하는 데 시간을 보냈습니다.
  • GAE에는 로그 뷰어에 데이터 편집기가 포함 된 훌륭한 UI가 있습니다. Azure에서는 현재이를위한 외부 뷰어 / 편집기를 찾아야합니다.
  • GAE를 사용하면 동일한 데이터 스토어에서 여러 버전의 애플리케이션을 실행할 수 있습니다. 배포 후 버전을 테스트 한 다음 준비가되면 현재 '실시간'버전을 설정할 수 있습니다. 무언가 잘못되면 다시 바꿀 수 있습니다.


    Azure를 사용하는 이유 :

  • App Engine 데이터 스토어의 성능 특성 및 비용 영향은 놀라 울 것입니다. 간단한 CRUD 이외의 작업을 수행하는 경우 일반 DB보다 더 열심히 노력해야합니다. 임시 쿼리가 없습니다.
  • Azure에는 더 많은 선택권을 제공하는 두 가지 저장소 접근 방식이 있습니다. 관계형 DB 인 SQL Azure Database (SAD)와 관계형이 아닌 테이블, Blob 및 큐로 구성된 Azure Storage입니다. SQL Server에 투자 한 경우 SAD로 쉽게 이동할 수 있지만 비용이 많이 들고 확장 성이 떨어질 있습니다. 업데이트 : App Engine에는 베타 버전의 MySQL API가 있습니다.
  • SOA 유형의 접근 방식이 있으면 Azure가 더 잘 설계된 것 같습니다. 그들의 아키텍처는 엔터프라이즈 세계에서의 경험으로부터 이익을 얻는 것 같습니다. GAE는 단순히 웹 페이지를 제공하는 데 더 중점을 둔 것 같습니다.
  • 디버그에서 앱을 실행하고 중단 점 등을 넣을 수 있습니다.
  • Azure에는 클라우드에 배포 할 수있는 "스태 이징"환경이 있지만 만족할 때까지 클라우드로 구축 할 수는 없습니다.
  • 다른 용도로 .Net을 사용하고 있으며 백엔드에서 .Net과 통합하는 것이 GAE보다 훨씬 쉽습니다. (업데이트-GAE에서 Java를 사용하면 정상적으로 작동하며 10 초 시간 초과는 이제 30 초입니다).
  • 많은 MS "Live"오퍼링과 통합

    따라서 명확한 대답은 없습니다. 비용과 사용 편의성으로 인해 현재 App Engine을 기본값으로 사용하고 있습니다. 매우 MS 지향적 인 앱에는 Azure를 사용할 수 있습니다. 다운로드에는 Amazon S3를 사용하지만 애플리케이션 수준의 모든 항목을 전문가에게 맡기는 것을 선호하기 때문에 EC2를 사용하지 않을 것입니다.


  • 10
    Richard, Azure의 또 다른 장점은 관계형 데이터베이스를 보유하고 있다는 것입니다. Bigtable의 파편은 다소 외국의 패러다임입니다.
    hyperslug

    22
    App Engine을 사용하면 여러 버전의 앱을 스테이징 할 수도 있습니다. 각 버전에는 테스트 할 수있는 고유 한 URL이 있으며 배포 할 준비가되면 해당 버전을 기본값으로 표시하면됩니다. 테스트, 배포가 쉬우 며 필요한 경우 문제가 발생하면 이전 버전으로 롤백하십시오.

    Azure는 약정없이 월 사용량이 $ 99 인 약정없이 약정없이 지불합니다.
    Akash Kava

    1
    microsoft.com/windowsazure/pricing 는 SQL 애저에 대해 말한다 : "* 웹 에디션 : 1기가바이트 관계형 데이터베이스 = $ 9.99 / 월까지 * 비즈니스 버전 : 최대 10GB까지 관계형 데이터베이스 = $ 99.99 / 월 * 데이터 전송에 = $ 0.10 / GB 당 $ 0.15 out-(아시아에서 $ 0.30 in / $ 0.45 out / GB) "
    Richard Watson

    1
    App Engine은 이제 블록 스토리지와 함께 SQL을 지원합니다. code.google.com/apis/sql
    devnul3

    176

    개발자 관계를 수행하는 App Engine 팀에서 일하고 있습니다. 그러나 이것이 내 편입니다.

    그것들은 직접 비교할 수 없습니다. 어떤 앱에도 쓸 수있는 앱 세트가 있지만 각 경우마다 다른 것을 작성하게됩니다. App Engine은 파일에 쓰기, 소켓 등이 아닌 제한된 런타임 환경과 비 관계형 DBMS를 제공합니다. 그러나 그 대가로 무한정 확장 가능한 런타임 환경과 앱이 원하는만큼 확장 될 수 있다는 합리적인 수준의 확신을 얻습니다.

    반면에 Azure는 약간 덜 제한된 환경을 제공하므로 더 넓은 범위의 앱을 작성할 수 있지만 더 많은 스택을 직접 구현하고 있기 때문에 더 많이 작성해야하며 확장성에 대한 보증이 훨씬 느슨합니다. .

    마지막으로 AWS는 최고의 DIY 솔루션을 제공합니다. 그것들은 하드웨어와 스토리지를 제공합니다. 스택을 처음부터 빌드하고 유지 관리하고 업그레이드하는 등의 작업을 수행합니다. 규모에 맞게 작성하는 경우에만 앱의 크기가 조정됩니다. 그러나 하드웨어를 완전히 제어 할 수 있습니다.

    내 조언은 다음과 같습니다. 앱이 App Engine 모델에 적합하고 소셜 네트워크 앱이 App Engine 모델 (Java 또는 Python, 선택한)에서 앱을 작성하는 것의 좋은 예가 될 수 있습니다. 더 저렴하고 확장 가능한 앱을 작성하는 것이 훨씬 쉽습니다.

    앱이 GAE 모델에 맞지 않는 경우 MS 스택 용으로 작성 중인지 여부와 실행 환경에 대해 원하는 제어량에 따라 Azure 또는 AWS를 선택하십시오. 대부분의 앱이 GAE에 적합하지만 작은 부품에는 맞지 않는 경우 GAE에서 실시간 서비스를 제공하지만 S3에서 스토리지 또는 EC2에서 대량 처리와 같은 하이브리드를 고려할 수 있습니다.


    이 같은 문제 어떻습니까 : App Engine이 잘못되었을 때 ?
    Cristian Ciupitu

    @Cristian 듣고 싶은 것이 무엇인지 잘 모르겠습니다. 모든 서비스에 가끔 다운 타임이 있습니다. 여기에는 App Engine과 EC2가 모두 포함됩니다.
    닉 존슨

    @Nick Johnson : 맞습니다. 어떤 서비스 든 가끔 다운 타임이 발생하고 100 % 가동 시간을 기대하지 않습니다. 반면에,이 문제는 다운 타임 문제처럼 보이지 않습니다. 나에게 그것은 Google App Engine의 한계처럼 보입니다. 즉, 코드가 꽤 제한된 시간 안에 실행되어야합니다. GAE에 익숙하지 않으므로 오해가있는 경우 수정 해주세요.
    Cristian Ciupitu

    1
    @Cristian Ah. 실행 시간이 너무 길어서 예외 자체가 발생하지만 성능 저하의 원인은 일시적인 성능 문제였습니다.
    Nick Johnson

    나는 "비교할 수 없습니다"에 동의합니다. 이러한 서비스를 비교하는 것은 사과와 오렌지를 비교하는 것과 같습니다. 둘 다 과일입니다.

    27

    나를 위해, 잠금은 결정 요인입니다.

    Google을 선택하면 애플리케이션이 Google에서만 작동합니다. 어느 정도 시간이 지난 후에도 만족도가 떨어지면 갇혀있는 것입니다.

    MS를 선택하면 응용 프로그램은 Azure에서만 작동합니다. 같은 것.

    아마존에서는 (a) 익숙한 머신과 똑같이 작동하는 가상 서버를 얻게됩니다. 만족하지 않습니까? 앱을 들고 실제 하드웨어에 설치하십시오.


    3
    GAE는 상당히 표준적인 Java 서블릿 애플리케이션을 실행할 수 있으며 표준 기반 지속성을 사용할 수 있습니다.
    Stephen Denne

    4
    GAE가 완전히 개방되었습니다 (JDO 스토리지 API를 사용해야합니다.)

    1
    Google은 여전히 ​​한 번에 얻을 수있는 데이터의 양을 제한합니까? 잠금은 코드 이상의 데이터를 기반으로합니다.
    Mark Ransom

    4
    AppScale을 사용하여 EC2 또는 원하는 다른 곳에서 앱을 실행할 수 있습니다. appscale.cs.ucsb.edu
    Amir

    3
    오늘 이것을 가로 질러 누군가 일주일 만에 구글에서 전환 할 수있었습니다. 또한 처음부터 모범 사례를 사용하지 않으면 몇 달이 걸릴 수 있음을 인정합니다. carlosble.com/?p=719
    Mark Ransom

    20
    • .NET 개발자 인 경우 Azure로 이동하십시오.
    • Python 또는 Java를 사용중인 경우 Google로 이동하십시오.
    • Ruby를 사용중인 경우 Amazon으로 이동

    내 개인적인 선택은 현재 Java를 사용하는 Google입니다 (대부분 .NET 인 경우에도). 비용에 대해 생각하십시오-스키마를 비교하기가 어렵습니다.

    이 기사를 확인하십시오-http: //www.infoq.com/news/2008/11/Comparing-EC2-App-Engine-Azure


    8
    모든 .NET 개발자가 Azure로 이동해야하는 것은 아닙니다. Amazon EC2는 완벽하게 수용 가능한 옵션입니다. 그러나 훌륭한 기사를 참조한 +1.
    Andrew Arnott

    그렇습니다. 아마존은 가상 머신의 자유가 다소 있지만 커뮤니티는 주로 루비를 지향합니다.

    1
    AWS는 Windows 2003 Server AMI에서 .Net 개발자를 지원하지만 많은 .Net 개발자가 아직 AWS에서 구체화하지 않은 Windows Server 2008에 배포하고 있다고 생각합니다. AWS 포럼을 정기적으로 사용하는 경우 Amazon 이이 문제에 대해 조용한 것임을 알 수 있습니다.
    Richard Dorman

    2
    나는 거래에 의한 .NET 개발자이지만 웹 사이트에 Azure를 사용하여 가격이 0 인 가격은 Google의 길을 보냈습니다. 내 블로그에서 약간의 비교를 썼습니다 : blog.dantup.com/2009/12/… blog.dantup.com/2009/12/…
    Danny Tuppeny

    4
    Ruby를 사용하는 경우 Amazon 대신 Heroku 또는 EngineYard를 고려하십시오.
    andy318

    20

    거미 류의 동물처럼, 나는 편견, 구글 사람입니다. 그래서 그러나, 나는, 또한 아마존 주주있어 편견이 부분적으로 ;-) 처음을 상쇄 할 수있다. Azure 경험이 없습니다. (하지만 MSFT 주식도 보유하고 있기 때문에 다른 편견도 있습니다.).

    가장 간단한 방법은 App Engine이 시스템 관리 작업이 필요하지 않은 코딩만으로 쉽게 제한없이 작업 할 수있는 기능을 제공한다는 것입니다 . AWS는 훨씬 융통성이 있지만 유연성 을 활용 하려면 실질적인 시스템 관리 작업 필요합니다. 결국 나는 두 번째 거미 류의 제안을 할 것입니다 : App Engine이 귀하의 요구를 충족시킬 수 있다면 절대로 가십시오. 더 많은 유연성이 필요한 경우 AWS가 갈 길입니다 (Azure의 알려지지 않은 기능이 더 잘 맞지 않는 한)-AWS와 같이 Azure가 수행 할 수있는 작업에 관계없이 AWS가 더 유연해질 것이라고 생각합니다. 필요한 OS를 선택할 수도 있습니다).


    14

    방금 Azure로 작업을 시작했으며 F #에서 http://code.msdn.microsoft.com/fsharpazure 에서 할 수 있다는 인상을 받았습니다 .! 지금까지는 관리 형 방식으로 기능 프로그래밍을 사용할 수있는 유일한 클라우드 플랫폼입니다 (물론 EC2에서 Haskell 또는 Algol 68을 수행 할 수 있음). Visual Studio 통합의 품질에 깊은 인상을 받았습니다. 실제 SQL Server 인 스토리지를 사용하여 로컬 "클라우드"DevFabric을 테스트하여 업로드하기 전에 재생할 수 있습니다. GAE가 그렇게 할 수 있습니까? F # (Linux 및 OCaml에서 제공)을 사용하여 VS를 학습하는 Azure를 보면 오래 전에 MS 스택으로 전환했으면 좋겠습니다. SQL 스토리지를 생성하고 VS에서 검사하는 것은 매우 쉽습니다. 매우 편리합니다. 오픈 소스에는 일치하는 도구 세트가 없으며 사람들이 MS에게 공정한 고려를 할 시간입니다. 필자는 Mac OSX 기반 (Vista로 이중 부팅)을 계속 사용하고 있으며 직감은 Azure를 로컬로 개발할 수 있으므로 Azure 개발을위한 별도의 Vista 상자가 제공됩니다. .NET은 PowerShell, SQL 및 LINQ, C # 및 F # (내 주요 이유)과 같은 Unix 파이프 세계에서 왔을 때 정말 압도적이지만 대신 모든 것이 추가되고 학습 가치가 있음이 밝혀졌습니다. 리눅스; 모든 경우에 Azure는 시야를 넓힐 것입니다.


    2
    Azure에는 Amazon Elastic Map Reduce의 기능 (오픈 소스 하둡 기반)과 원격으로 일치하는 항목이 없습니다. 프로그래밍 방식으로 많은 작업자 역할을 설정할 수도 없습니다.

    3
    Microsoft는 .NET 개발자 기반을 통해 수익을 창출하려고 노력하고 있으며 Microsoft 스택을 활용하면 이점이 있다는 것이 사실입니다. 이것만으로도 값 비싸고 블록 비용이 많이 드는 모델을 구성한다고 확신하지 않습니다. 클라우드 컴퓨팅의 핵심은 Azure에서 아직 제공하지 않는 유지 관리 비용 부담없이 유지되는 탄력성입니다.

    GAE에서 Clojure를 사용할 수 있습니다. the-deadline.appspot.com/login

    8

    GAE를 좋아하는만큼 현재 프로젝트에서 GAE를 통해 EC2를 사용하는 주된 이유는 전 세계 다른 지역에 위치한 데이터 센터에서 응용 프로그램의 프런트 엔드를 서비스 할 수 있어야하기 때문입니다. GAE는 한 번에 하나의 데이터 센터에서 실행됩니다. 예를 들어, 아시아 지역의 사용자가 내 응용 프로그램에서 가능한 가장 빠른 응답 시간을 위해 서버를 공격해야합니다. dns,로드 밸런서, 선택한 데이터베이스, 데이터의 하둡 처리 등을 위해 S3로 밀려 드는 독창성 관리 기능을 추가하면 EC2는 정말 매력적인 솔루션이됩니다.


    5

    고려해야 할 사항 :

    속도 향상 : 선택한 환경에서 어떤 종류의 문서가 존재하고 명확하고 잘 지원되는 샘플이 명백하고 유용한 지 선택한 환경에서 얼마나 빨리 생산성을 얻을 수 있습니까?

    비용 : 비용이 중요한 요소이지만 실제로 고객을 확보 할 수있는 상용 앱을 만드는 경우 이러한 모든 선택이 가능합니다. "소규모"인스턴스에서 하나의 proc을 사용하여 Azure를 24x7 사용시 한 달에 약 $ 90로 실행한다고 가정하면 그 시간에 몇 명의 사용자를 서비스 할 수 있습니까? 이중화를위한 두 번째 인스턴스를 추가하십시오. 트래픽이 보증하는 경우에는 그다지 비용이 들지 않습니다. 그렇지 않은 경우 왜 저렴한 호스팅 제공 업체 대신 클라우드에 있습니까? 이를 구현하려면 더 큰 비용 요소가 필요합니다. AWS는 롤 자체 솔루션입니다. 안정적이고 잘 관리되는 솔루션을 얻기 위해 처리해야 할 것이 많습니다. Azure와 GAE는 즉시 사용할 수 있습니다. 내 마음에 AWS는 당신이 넣어야 할 작업으로 인해 가장 비쌉니다. 세밀한 수준에서 세부적으로 제어해야합니까? 그렇다면,

    원하는 작업 수행 능력 : AWS Azure는 2 위, GAE는 3 위입니다. 원하는 것이 Java와 Python이라면 큰 문제는 없습니다. C ++에서 관계형 DB 또는 광범위한 다중 스레드 데이터 처리를 수행하려는 경우 가장 큰 문제입니다 (이 중 하나라도 지금 수행하고 있는지 확실하지 않습니까?).

    이식성은 어떻습니까? 나중에 자신의 팜으로 가져 가거나 다른 클라우드 팜으로 옮길 수 있습니까? 그것들은 모두 어느 정도 휴대 가능합니다.

    생각해야 할 것이 많지만 여전히이 문제에 대해 배우고 있습니다.


    TyphoonAE 및 AppScale은 다른 곳에서 GAE 앱을 실행하기위한 훌륭한 도구입니다.

    4

    수요를 충족시키기 위해 인스턴스를 수동으로 시작해야하는 경우 클라우드가 아닙니다.

    Azure 및 EC2는 일부 서비스가 측면에있는 가상 서버 일뿐입니다.

    최신 정보:

    EC2와 Azure는로드시 자동으로 새 인스턴스 시작을 관리하는 옵션을 제공하지만 여전히 관리해야합니다. 또한 유휴 상태 인 인스턴스에 대한 비용을 지불합니다.

    GAE는이 기본 제공 기능을 자동으로 처리하며 요청 중에 코드가 실행되는 시간에 대해서만 요금을 청구합니다.


    1
    Amazon CloudWatch가 트래픽을 기반으로 추가 인스턴스를 시작하는 문제를 해결한다고 생각합니다.

    1
    Azure에 대해 가장 많이 본 데모 중 하나는로드에 따라 웹 작업자를 스핀 업 또는 스핀 다운하도록 임계 값을 설정하는 코드를 작성하는 확장 성 데모입니다. Windows azuer 교육 키트에 포함되어 있음 : microsoft.com/downloads/en/…

    4

    다른 고려 사항이 있습니다.

    GAE-ghs.google.com DNS를 통해 라우팅되는 모든 트래픽은 AWS 및 Azure보다 서비스 스택으로서 플랫폼에서 더 높으며, 머신 중 하나를 통해 페이지를 동적으로로드하여 가격을 낮게 유지할 수 있습니다. 이 접근 방식으로 스케일링이 세분화되고 단점은 정적 IP가 아니며 필터링되거나 차단되기 쉽습니다. 고정 IP 제한이 없으므로 사이트 별 https 인증서를 설정할 수 없습니다.

    AWS와 Azure는 정적 IP와 전용 VM을 제공하여 https 인증서와 같은 기본 요구 사항을 허용합니다. 관계형 스토리지 지원도받을 수 있습니다. 이 전용 VM 사실을 반영하면 비용도 높아지며, VM 당 확장하여 40 달러 / 월 단위로 확장 할 수 있습니다. 이점은 VM을 직접 가져 오므로 GAE에 대한 30 초 CPU 처리 제한으로 제한되지 않고 더 큰 작업을 실행할 수 있다는 것입니다.

    따라서 필터링 된 국가의 고객 기반을 고려하거나 정적 IP가 자체 DNS 설정을 수행하거나 관계형 DB 또는 30 초 이상의 작업이 필요한 요구 사항이 필요한 경우. AWS, Azure는 훨씬 친숙합니다.


    3

    각 클라우드 제품이 제공하는 솔루션을 살펴보고 하이브리드 모델로 이동하십시오. 일부 문제에는 망치가 필요하고 다른 문제에는 드라이버가 필요합니다. 도구를 알고 올바른 문제에 적용하십시오.


    3

    위의 답변 중 하나에 대한 의견을 남길 평판이 충분하지 않습니다. 이러한 클라우드 솔루션의 적합성은 요구 사항 및 기술 세트를 포함한 많은 요소에 따라 다릅니다.

    nosql 데이터베이스가 필요한 소셜 네트워킹 프로젝트가 있습니다. AppEngine은 다양한 프레임 워크를 더 잘 지원한다면 좋은 솔루션이 될 것입니다. nonrel 어댑터가있는 Django는 Python GAE에서 작동하지만 여러 가지 이유로 Rails를 선호합니다. Rails3는 몇 달 동안 나 왔으며 커뮤니티 나 GAE 팀의 어느 누구도 아직이를 지원할 레시피를 작성하지 않았습니다. 루비와 레일 내부, jruby, GAE 내부를 알고 자신 만의 레시피를 작성하는 기술을 가지고 있지 않다면, 다른 사람들이 플랫폼에 올라가는 자비에 달려 있습니다.

    AWS는 훨씬 더 많은 작업을 수행하지만 최소한 내부 개발자 나 더 높은 권한을 요구하는 사람이 아니라 모든 도구를 사용하여 플랫폼을 통해 많은 문제를 관리적으로 처리 할 수 ​​있습니다.

    Ruby 개발자를위한 Heroku와 EngineYard에 대한 저의 불만은 데이터베이스 확장 방법에 대한 미스터리입니다. 그들은 어떻게 확장합니까?

    필자의 경우 NoSQL 솔루션을 선택하고 Mongo가 좋은 선택 인 것 같습니다. MongoMachine은 Heroku 또는 EY와 같은 사람들에게 권장되는 솔루션 인 것 같지만 비용이 많이 듭니다. GB 당 $ 2.50? 스토리지는 GAE 또는 EBS에서 $ 0.10 GB / mo에 불과합니다.


    1

    나는 최근에 Google App Engine을 실험하기 시작했으며 웹 소셜 네트워크의 경우 모든 요구를 충족시킬 것이라고 생각합니다. 쉽게 사용할 수 있으며 Python 또는 Java와 함께 사용할 수 있습니다. 파일에 대한 액세스를 제공하지는 않지만 응용 프로그램의 경우 GQL (제공하는 데이터베이스에 대한 SQL과 같은 인터페이스)이 충분할 것입니다 (그리고 매우 강력합니다).

    고려해야 할 사항 중 하나는 GAE의 애플리케이션이 Google 계정 사용자 또는 Google Apps를 사용하는 도메인의 계정 (바로 가기)을 사용할 수있는 인터페이스를 사용할 수 있다는 것입니다. 이 중 하나를 선택하십시오. 따라서 이미 Google Apps 웹 사이트를 사용하고 있다면 사용자가 새 계정을 등록 할 필요가 없으므로 Google App Engine이 적합합니다.

    편집 : Arachnid가 지적했듯이 자신의 로그인 시스템을 코딩 할 수는 없습니다. 죄송 합니다만 걱정하시면됩니다.

    다른 두 가지 대안에 관해서는, 나는 그것들에 대해서만 읽었고 테스트하지 않았습니다. 그러나 나는 GAE가 내 연구에서 더 쉬운 프레임 워크를 제공한다고 생각합니다.

    어떤 경우에도 공간 및 대역폭에 대한 무료 할당량을 사용하여 GAE를 사용해보고 필요에 맞는지 확인할 수 있습니다.

    행운을 빕니다.


    Nitpick : GQL은 데이터베이스가 아닙니다. GQL은 Python 런타임을위한 SQL과 같은 쿼리 언어이며 데이터 저장소 위에 작성됩니다. 당신은 그것을 사용할 필요가 없습니다-쿼리 API도 있습니다.
    Nick Johnson

    또한 GAE 앱에서 원하는 모든 사용자에게 로그인 할 수 있습니다. GAE는 Google 계정 사용에 대한 바로 가기를 제공하기 만합니다.
    Nick Johnson

    두 가지 경우 모두 옳고 그름을 고릅니다. 지적 해 주셔서 감사합니다. 그것을 편집 할 것인가 :)

    BigTable은 Google의 데이터 스토리지 엔진이며 시간을 소비 한 후 SQL RDBMS가 웹 앱을 작성하는 데 필수적이라는 생각에 세심한 관심을 기울이는 데 궁금해지기 시작했습니다. BigTable 스토리지 모델은 단순하고 유연하며 성능이 뛰어나고 확장 가능하며 놀랍도록 잘 작동합니다.

    1

    Azure에는 서버 "서비스로 플랫폼"으로서 Windows / SQL이 있으며, 확실하게 고착되어 있지 않으며, 자체 데이터 센터에서 Windows / SQL로 돌아가십시오 (리눅스는 없지만 Java, Python, PHP, Ruby, Tomcat을 지원합니다). , Apache 등). Amazon과 마찬가지로 액세스 가능한 가상 머신 옵션도 제공하므로 원하는대로 설치 / 실행할 수 있습니다.

    아마존에는 가상 머신 만 있기 때문에 여전히 설치, 패치, 라이센스, 보안 등을해야합니다. 제 생각에는 클라우드로 이전 할 때 얻을 수있는 이점이 있습니다. 데이터 센터에서 다른 곳으로 무언가를 옮겼습니다.

    Google은 관계형 데이터베이스가 없으며 귀하는 충격을받습니다. 그들은 실제로 파이썬 개발자와 일부 Java 지원을 제공합니다. 그들은 실제로 내 의견으로는 클라우드 공간의 플레이어가 아닙니다.


    4
    제프 - SQL Server 2008의 훈련 한 마이크로 소프트 파트너, 나는 확실히 좋아하고 Windows / SQL 스택의 장점을 잘 알고 있어요,하지만 난 열심히되는 하나의 동의를 누르면있어 틀어 구글의 빅 테이블과 함께합니다. BigTable API를 랩핑하는 수십 개 정도의 좋은 라이브러리가 있으며이를 psuedo RDBMS에서 색인화 된 문서 사일로에 이르기까지 모든 것으로 노출시킵니다. BigTable은 많은 서버에서 확장되도록 설계되었습니다 (Google은 땀 지점이 클러스터 당 1,500 개라는 것을 알았습니다). 이는 SQL이 단순히 잘 수행 할 수없는 업적입니다.

    1

    여기서 언급되지 않은 한 가지는 누군가가 끔찍한 이름 외에 "Windows Azure AppFabric Service Bus & ACS"를 고려한 것입니다.

    온 프레미스 인프라에 대한 투자로 비즈니스의 관점에서 Azure를 매력적으로 만드는 강력한 통합 기능 스택으로 보입니다.


    그렇습니다. 그러나 단점은 Microsoft가 비즈니스를위한 온-프레미스 Azure 호스팅에 대해 "아니오"라고 공식적으로 언급 한 것입니다.

    1
    실제로는 사실이 아니지만 Microsoft는 Hyper-V (무료) 및 Systems Center & InTune과 같은 매우 강력한 프라이빗 클라우드 스택을 제공하지만 "Azure"는 아닙니다. 제 3 자에 대한 "Azure Appliances"옵션이 곧 제공되기를 원하지만 이러한 비용을 정당화하려면 상당히 커야합니다. 최소 약 1000 개의 노드를 지원해야한다고 들었으므로 Datacentre 소유자에게 더 좋습니다.

    0

    Amazon EC2를 잠시 실험하고 약간의 지연이 발생한 후 비용 때문에 실험하면서 Google Apps를 연구하기 시작했습니다. Erlang을 개발 언어로 선호하지만 Python을 처리 할 수 ​​있으므로 결정적인 요소는 아닙니다. 고정 IP를 보지 못했을 때였습니다. 또한 스택에서 더 높아지는 것에 대한 전체 부분은 성능과 관련하여 약간 긴장합니다.

    나는 AWS가 저렴했다 좋겠지 만, 구글이 제공 될 때까지 고정 IP 바람직 추가 언어 와 같은 스칼라, JRuby를하고 얼랑 등을, 선택은 나를 위해 분명하다 : AWS를 . 처음 두 언어도 단순해야하며 둘 다 JVM 기반입니다. 나는 그것에 대해 뭔가를 읽는 것을 기억하는 것처럼 이미 해결 방법을 통해 수행되었을 수도 있습니다.


    Pedantic하기 위해 앱 엔진에서 Scala, JRuby 및 Clojure를 실행할 수 있습니다. 이제이 언어들을 사용 하기 쉬운 지 아닌지 는 또 다른 이야기입니다.
    Chris Smith

    0

    나는 비교를 지원하는 플랫폼에 대해 생각하는 것 외에도 확장 성, 액세스 용이성, 다목적 성 (구현 측면에서)에 있어야하며 비즈니스 사례에 대해 경제적으로 실행 가능한 다른 호스팅 플랫폼을 수용 할 수 있으며 엔터프라이즈를위한 여러 솔루션을 보유 할 수 있습니다 애플리케이션 (즉, 스토리지, 전송, 대역폭, 라이센싱 정책 등), 서비스 품질의 기록 신뢰성, 보안 감사, 청구 투명성 및 비용 등을 추적 할 수 있습니다. 위의 모든 지표를 살펴보면 AWS 점수가 훨씬 높다고 생각합니다 . 나는 2 년 이후 AWS에서 10 개의 프로덕션 계정을 관리하고 있으며 동시에 회사 / 사업부는 고객의 거대한 확장 성 요구를 충족시킬 수있었습니다 .... AWS의 경우 인프라, 업데이트 (있는 경우 /있는 경우)를 유지해야합니다. 필수), 보안 등 그러나 시장에서 모든 도구를 자유롭게 사용할 수 있습니다. 기존 IT 리소스는 AWS의 모든 인프라도 유지할 수 있습니다.

    Azure에는 VS 2010과 통합 된 IDE가 있지만 응용 프로그램 (배포 용 플랫폼)을 성공적으로 배포 한 후 클라우드의 실제 비용이 시작됩니다. 실시간 배포 / 확장 가능한 생산 시나리오를 해결하기 위해 아직 먼 길을 가고 있습니다 ....... 모든 사람들이 알고 있듯이 MS는 많은 숨겨진 계획을 원가 계산에 사용합니다.. 추정치).

    GAE는 Python / Java 앱에 매우 적합합니다. 애플리케이션 재 작성 (기존), 테스트, 배포 등을위한 엄청난 노력 (자원 + 비용 측면).

    당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
    Licensed under cc by-sa 3.0 with attribution required.