amazon-archives / aws-appsync-rds-aurora-sample

An AWS AppSync Serverless resolver for the Amazon Aurora relational database.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Wondering how you viewed the data in the DB

michaelyiu opened this issue · comments

First of all, I love this sample that you created. It's by far one of the easiest to follow for somebody like me who has stumbled upon his first couple of days with AWS products and I really appreciate something like this.

So in Amazon RDS, I can find the database information where it shows CPU utilization and other neat things about the usage. But I can't find anywhere where it visually shows the data within. Also whenever I click on 'Query Editor', it says that "Currently, query editor only supports Aurora Serverless databases".

The other thing I wanted to ask was about scalability. I've read that Aurora is an on demand, auto-scaling database. Is this by default or is there some sort of setting?

I'll start with your last question. It is a setting called engine mode which can be either Serverless or Provisioned as can be seen in the cloud formation spec for Aurora: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html

More details here: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html

You can see that there's another setting which basically specifies the scaling configuration for the cluster, min capacity, max capacity, what's the pausing behavior:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-scalingconfiguration.html

For your first question, yes the query editor only supports Aurora Serverless databases. So that is an option for Aurora Serverless. Another option for Aurora Serverless is to use the new Data API which is documented here: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html

Another option to connect to your cluster is to use an appropriate client such as a mysql client for your operating system if it is a mysql engine. That would allow you to connect to the cluster and execute SQL statements against it.

Thanks for the reply! So I just tried this by adding EngineMode: serverless under the cluster and it failed to update saying "The engine mode serverless you requested is currently unavailable; Status Code: 400; Error Code: InvalidParameterValue

But from the docs the parameter seems valid to me?

It might be a combination of engine/engine mode/region. See here for an example template with engine mode serverless.

https://stackoverflow.com/questions/51879688/creating-an-aurora-serverless-cluster-from-cloudformation?rq=1

I'm using us-east-1 so I don't think region is an issue.

Actually, now I realized that when I created the stack that I used the Amazon S3 template URL provided if you were to click the "Launch Stack" button in the sample and I actually was not able to get the .yml file in the repo working. The key difference in the files is literally the one line EngineMode: serverless

I'm wondering if serverless is incompatible with 5.7?

edit: well that can't be right if the creator of the sample created it with serverless in mind. But I'm not quite sure what the issue is.

edit: So I tried placing it under the instance as well and got this error message: "Encountered unsupported property EngineMode"

As stated in the docs: Aurora Serverless is only available for Aurora with MySQL 5.6 compatibility.

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html

Ah, I suppose I'm curious as to why the repo included 5.7 + serverless. Thanks for helping me out!

The repo didn't include serverless - it wasn't available at the time. CloudFormation support for serverless was launched on September 20 2018.

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ReleaseHistory.html

AppSync did recently launch support for Aurora Serverless through the Data API that you might want to have a look at:

https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-rds-resolvers.html

Oh I see, okay cool. Thanks for the resources!

Just to add on to Ionut's last point - the Aurora Serverless support is a native data source for AppSync, meaning there's no Lambda to be invoked between the two services. If Aurora Serverless is something you want to end up using, then you might see better performance if you utilize that feature.

Feel free to re-open if you have any other questions!