5 ms·
In The Works – Amazon Aurora Serverless
- drej 9y agoCool... but.. how?
- jeffbarr 9y agoRead the post!
- drej 9y agoI have, I'm just excited and baffled at the same time :-)
- odammit 9y agoAurora already spreads each "10GB chunk of your database volume is replicated six ways, across three Availability Zones." It looks like from the diagram they are taking advantage of that fact and spinning down the instances that serve off those "disks"
- strong_silent_t 9y agoSo, if I'm understanding right, it is using the database server instances as the current Aurora does. You just aren't responsible for managing them, the service makes those decisions within the spectrum of Aurora's capabilities and can change it in a very small time increment. EDIT: pretty impressive though, looking at James Hamilton's criteria for "Automatic Management and Provisioning" here: https://www.usenix.org/legacy/event/lisa07/tech/full_papers/hamilton/hamilton_html/index.html https://www.usenix.org/legacy/event/lisa07/tech/full_papers/... , I think this addresses everything database related, as long as you are under the maximum capacity of Aurora.
- brootstrap 9y ago3 months later... AWS announces serverless, databaseless database system.
- ignoramous 9y agoWhich might be when their marketing team decides to re-launch S3?
- noobiemcfoob 9y agoI'd merrily laugh at that ad :)
- maxxxxx 9y agoAnd then "cloudless"?
- bpicolo 9y agoI wonder how the cost differs, given they have to keep hot standbys? Perhaps a lot of behind-the scenes prediction to make it cost effective? Takes a while to create a standby from scratch for large DBs. Either way, sweet tech. Seems like a fun thing to build
- sologoub 9y agoReally wish "serverless" also meant that it can work with AWS Lambda efficiently. As is, each function would try to open a connection, making the overall overhead extremely high and stressing DBs.
- k__ 9y agoCan't you open the connection outside of the function? So as long as the function is hot, it won't reconnect.
- mjb 9y agoThat's right. Make connections to databases (and most other things) the first time your Lambda handler runs, and stash them in a static/global variable for re-use on future runs. That allows you to amortize the cost of forming the connection over many executions of your function, which improves latency, reduces cost, and reduces load on the backend.
- mrep 9y agoIs this for the master or the read replicas? If it is for the master, that would be amazing and I would wonder if you can scale up past the 1 instance size max (currently r4.16xl)
- superasn 9y agoLast week I created a small framework called lambdaphp[1]. My aim was to host a Wordpress or Laravel site on aws lambda without paying any monthly hosting charges. I got everything running (sessions, fs, request, etc) except of course I still had to use RDS and I think this takes care of it too. So now I can expect to run a full site which is only billed by the amount of resources consumed. Of course my project was just for my own amusement but I think this is the way how it's going to be done soon or where Aws is heading. Seems pretty nifty! [1] https://github.com/san-kumar/lambdaphp https://github.com/san-kumar/lambdaphp
- meritt 9y agoAWS will likely add PHP support, yes but they absolutely will not do what this project does: Running a NodeJS http server that launches a PHP binary and runs local scripts.
- superasn 9y agoThat's just one way to make it happen until we get proper support. I wrote to AWS support and they said that they will consider PHP support for AWS lamba as many people have requested it too (did not give me an ETA though). The funny thing is the response time is quite good despite running it through a NodeJS server that launches a PHP binary (340ms, faster than 98% of the sites as per pingdom[1]). [1] https://tools.pingdom.com/#!/ex9izm/https://www.lambdaphp.host/ https://tools.pingdom.com/#!/ex9izm/https://www.lambdaphp.ho...
- meritt 9y agoI understand your options are limited until AWS adds first-class PHP support but there are still plenty of superior ways you could arrange this. You're running the PHP CLI as opposed to using a persistent process daemon and speaking to it over one of the other SAPIs (e.g. FastCGI). You're also completely defeating the inherent async properties of NodeJS too by launching a synchronous PHP process, and you're completely missing the benefit of "pre-warming" servers. Only the NodeJS aspect gets to pre-warm but a PHP process must launch from cold for every single request. 340ms is not a good response time at all. You need to elevate your expectations.
- dhd415 9y agoGiven the existing architecture of Aurora, the independent scaling of CPU and storage seems pretty straightforward. What is much harder to scale up and (especially) down is a warmed-up buffer pool which is critical for consistent query performance. I wonder if that is what they mean in the article when they say that scaling happens on a "pool of 'warm' instances". If so, I'd be very interested in more details on how that works.