We are going to migrate our database from Aurora Serverless to Aurora Cluster. Before that, we'd like to test the performance of the new database in a real-time traffic scenario. We have thought about cloning the current API Gateway, targeting the new database and mirroring traffic from the production API to the test API.
Is this crazy? Is there any way to to achieve this without affecting the performance of the production API Gateway? (there is a CloudFront in front of our API Gateway)
Maybe listen for API Gateway events in Cloudwatch and trigger a lambda to run the query against the test API gateway?
Related
I want to create a MySQL instance on AWS RDS and provision a RDS proxy with it for handling lambda requests against the API calls through the API Gateway. I am quite new to AWS and this is the solution I found on the internet on how to best run a MySQL database on AWS. Please do correct me if this is wrong or I should try something better instead.
So anyway this is my setup I wish to carry on. I suspect that fetching data and performing CRUD operations through this will be easy. But I wonder how can I create WebSockets in RDS for a real-time chat feature in my application? Please guide me on how should I achieve this as I have not found any articles regarding this on the internet. Thanks!
You should use AWS API Gateway to create Websocket service not AWS RDS. Please check this resource.
RDS Proxy is one of the way to manage connections. Another solution is AWS Aurora Serverless but you need connect to database within VPC.
Maybe you can consider use serverless framework or chalice to make things easier.
If you want to invoke an AWS lambda function in your query, you can call lambda_sync or lambda async function.
We plan to use Appengine for our Node.JS REST-API which will serve content for our customers. The data will come from a MOngoDB Cluster (or Replicaset), which will also be hosted on Google Cloud Services. Some of the contents might be cached using the Memcache of AppEngine.
Now my question. Is it neccessary to setup a kind of VLAN or similar, to connect to the DB server? How can we assure that the DB server is connected with a good bandwidth / latency to the AppEngine instances? Or is this no matter of concern at all?
Another question, does Google Cloud have a kind of internal DNS, which can be used? So for example that we have a domainname like "ourmongodb.internal" which can be used in connection string of our REST API? Or how is the most recent approach to connect to our DB server instance?
If you use app engine flex you can setup your nodejs app engine server and the GCE VMs that run the mogoDB cluster in the same network and than connect them both in the internal IP space.
I have an on premise oracle database. Can I use anything on AWS e.g. API Gateway to query the database and expose the results via API? I know I could do API Gateway -> Lambda -> Oracle DB where the code in the Lambda function would query the database (assuming query takes less than 5 mins). Are there any other easy options that would be serverless and with minimal amount of code?
Basically I would like to find the simplest way to create an API layer over the top of an existing on premise oracle database so that applications (hosted on AWS) can access this data without connecting directly to the database. Does AWS provide anything out of the box?
There does not seem to be an out of the box way provided by AWS to connect API Gateway to your on premise Oracle DB. So basically the way you provided (API Gateway->Lambda->Oracle) should be the way to go.
Now the question is if you want to connect to your Oracle directly or if your want to create a replication of your database in RDS and create a synch mechanism between RDS and your on premise Oracle DB to keep the DB highly responsive and available (in case of network failure between AWS and your local network). I think that depends on how you access your DB on premise.
If your won't create an replica in RDS you should at least use a VPN connection to your local network to keep data transfer from on premise Oracle to AWS RDS secure.
Yes it is possible to use AWS Lambda and expose the API through API
Gateway. But that is the easy part.
The tough part is to get your On-Premise database connected to AWS
infrastructure. If you have an on premise database, and you are
working in a large enterprise, you will need to get through a lot of
approvals to setup a VPN or a AWS Direct Connect.
The ideal solution is to use AWS Direct Connect to extend your
corporate infrastructure to connect to AWS and then use Lambda to
connect to the DB.
Also there is no out of the box solution in AWS to connect to
OracleDB. At the most, you can wrap all business logic in Stored
Procedures, and execute them in the lambda function. You can always
use the JDBC from Lambda to connect and query your database.
Try this from AWS Marketplace https://aws.amazon.com/marketplace/pp/B01MU8W71L
Can we use aws mobile hub for authentication and integrate asp.net web api for other business logic is it a good design ? I want to use sql server instead of dynamodb also i am not very fimiliar with lambda functions. Any suggestiosnb
I'm not providing a recommendation here regarding ASP.net, but I just wanted to let you know that you can use AWS RDS to host managed SQL Server instances, so you do have the option of using an architecture like...
Amazon API Gateway ->
AWS Lambda ->
AWS RDS (SQL Server)
You can find documentation on that here:
http://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html
...and more info about AWS-hosted SQL Server...
https://aws.amazon.com/rds/sqlserver/
And, if you want to kick the tires on hosting business logic in the cloud using Amazon API Gateway and AWS Lambda, you can create an API in AWS Mobile Hub, here:
https://aws.amazon.com/mobile
I have 2 application servers, one is the real production server and another a "backup" server which can go live if the production app server is down. I want an apache webserver which will send incoming requests to both application servers. I do not expect the apache web server to crash, so am fine with "single point of failure".
I know that apache has a mod_proxy_balancer module, but can it be used for replication rather than load balancing? 99% of my http traffic is from some remote devices which do not need any kind of ui. UI is only used for maintenance and reports.