Of course, then you're using Dynamo.
398 karma · joined December 2, 2015
Of course, then you're using Dynamo.
Look for ways to divide-and-conquer your lambdas into smaller parts. If you need to run some logic for every record in some table, give N records to a single lambda (where N is some small number which doesn't make the lambda take anywhere close to 300s).
You can orchestrate this workflow with several different AWS tools which exist all over the spectrum of cost and ease-of-use.
Easiest is definitely just having the master lambda directly invoke the other lambdas with InvocationType:Event.
SNS is another easy option. Lambda(master)->SNS(per N records)->Lambda(splinter). Downside is that you'll probably completely blast out your global AWS concurrent function execution limit pretty quickly because you have no control over how quickly SNS will trigger your functions.
Kinesis is a more powerful option. SQS also has potential, but you can't directly trigger a Lambda from SQS. One pattern I've seen used is to have a CWEvents cron trigger a lambda every M seconds to read N records from SQS. Depending on how consistent your workload is, this might make sense because it gives you really fine-grained control over that ratio between "how quickly will my jobs be processed" and "am I approaching my AWS global account limits". But if your jobs are really disparate you'd be invoking lambdas all day to do a whole bunch of nothing 90% of the time.
Its possible Apple could go too far, but I don't think its fair to say Apple did anything wrong _yet_. They're always early on removing this stuff, but they've never been wrong. Literally never.
But on the other hand, these machines aren't just sitting there powered off when they aren't provisioned. They have to keep them warm so they provision ultra quick.
So maybe there is some level of mining they could accomplish with their "idle" cycles, given the efficiency of the datacenter, the power of their GPUs, and the price of Bitcoin, which would be profitable. I don't know.
But I do agree: Sometimes I see people try to push Node/Express as a good choice for teaching basic APIs. Its not the worst choice, but its startling how easy it is to forget how insanely confusing async callbacks are for new devs.
Alternatively, I've used something as simple as DynamoDB to distribute config information and secrets to services.
Its actually been that price for about 2.5 years now. With competition from Google, Microsoft, and Backblaze, its possible we could see a push toward even cheaper prices before too long.
As for security, S3 does support SSE at rest with a user-provided encryption key. So you're good to go there.
Its my hunch that the statement you quote is just simply wrong. If you're keeping a computer at home that is doing something valuable enough to keep it around, it should valuable enough to you that there has to be _some_ price cheap enough, and _some_ capabilities good enough, that the cloud makes sense. The exception to this is, of course, the hobbyists and the tinfoil hatters.