1

I'm building a mobile app that needs a backend that I've chosen to host using Amazon Web Services.
Their mobile SDKs provide APIs to work directly with the DynamoDB (making my app a thick client), including user authentication/authorization with their IAM service (which is what I'm going to use to track users). This makes it easy to say "user X wants their information. Here's their temporary access key. Oh, here's the information you requested."

However, if I used RDS as a backend database, I'd have to create web services (in PHP or Java/etc) that my app can talk to. Then I'd also have to implement the authentication/authorization myself within my web service (which I feel could get very messy). I'd also have to host the web service on an EC2 instance, as well as having the RDS instance. So my costs would increase.

The latter seems like it would be a lot of work, something which I could avoid by using DynamoDB (and its API) as my backend.

Am I correct in my reasoning here? Or is there an easy way to authenticate/authorize a PHP web service with an AWS RDS database?
I ask because I've only ever worked with relational databases before, so there would be a learning curve to get the NoSQL db running. Though hypothetically my plan is to eventually switch to a NoSQL db at some point in the future anyways due to my apps increasing demands.

Side note: I already have my database designed in MySQL.

4

1 回答 1

0

由于无法对 RDS 表进行细粒度访问控制,因此没有直接将 IAM 与 RDS 一起使用的解决方案。此外,IAM 策略不能动态执行(即使用身份池)。RDS 是一项非托管服务,因此不作为 SaaS 端点提供。DynamoDB 是一种 REST 服务,呈现为分布式键值存储并向客户端公开端点(AWS SDK 只是它们的包装器)。

DynamoDB 作为分布式服务诞生,可以保证对数据访问的细粒度控制,从而允许并发访问。

于 2015-05-21T21:18:42.543 回答