Cập nhật : Câu trả lời không còn được cập nhật. Vì Cloud SQL của Google không còn ở trong BETA, điều đó có nghĩa là cả AWS và GAE đều hỗ trợ các ứng dụng java được viết để sử dụng cơ sở dữ liệu MySQL và việc di chuyển không còn khó khăn nữa. Ý tưởng tổng thể là cả hai nhà cung cấp dịch vụ đám mây đều có xu hướng đi đến một điểm mà họ cung cấp "mọi thứ": Google đã khởi chạy Compute Engine trong khi Amazon đang làm việc trên Beanstalk . Tuy nhiên, các dịch vụ IaaS của Amazon trưởng thành hơn của Google trong khi các dịch vụ PaaS của Google trưởng thành hơn của Amazon. Tất cả chỉ đơn giản là bạn muốn IaaS hay PaaS.
Có một sự khác biệt chính giữa AWS và Google App Engine: AWS là cơ sở hạ tầng như một dịch vụ (IaaS) trong khi GAE là nền tảng như một dịch vụ (PaaS). Điều này có nghĩa là với AWS, bạn vẫn cần quản lý các máy chủ của riêng mình (phiên bản ec2, phiên bản db, bộ cân bằng tải, v.v.) => yêu cầu một số công việc sysadmin. Với GAE, bạn chỉ cần viết mã ứng dụng của mình và triển khai nó lên đám mây google mà không cần quan tâm đến máy chủ nào hoặc trên bao nhiêu máy chủ. Google thực hiện tất cả các công việc sysadmin cho bạn.
Cả hai đều sử dụng mô hình trả tiền để sử dụng.
Câu trả lời cho mỗi câu hỏi:
- Được hỗ trợ bởi AWS. Đối với GAE, bạn cần sử dụng bộ lưu trữ dữ liệu của riêng họ (nó được gọi là bảng lớn). Bạn có thể sử dụng JPA để truy cập dữ liệu bảng lớn, nhưng có rất nhiều hạn chế (chẳng hạn như bạn không thể thực hiện nối bảng). GAE có hỗ trợ cho cơ sở dữ liệu quan hệ nhưng có vẻ như nó đang ở giai đoạn thử nghiệm.
- Cả hai đều có một số gói miễn phí: AWS , GAE
- Khó khăn. Như tôi đã nói ở điểm 1, gae sử dụng bộ lưu trữ dữ liệu NoSql độc quyền. Nếu bạn muốn chuyển sang mô hình quan hệ, bạn sẽ cần thiết kế lại các mô hình của mình.
- Đọc hướng dẫn của họ: AWS , GAE .
Lưu ý : AWS cũng có hỗ trợ PaaS thông qua cây đậu đàn hồi , nhưng điều đó vẫn còn trong BETA