[Opinions Wanted]: What might be the pros/cons of ...
# help
d
[Opinions Wanted]: What might be the pros/cons of using one of these two solutions over the other for keeping s3 buckets insync? 1. Using AWS Step Functions 2. Using Simple AWS Lambda Particularly interested in major differences in: • features • cost • stability • speed
In my case, they are both in the same region… but separate AWS accounts. Want to merge back PROD into Dev bucket for 200GB worth of video data. • changes to prod sync to dev • deleted files in prod sync and delete in dev
d
My first thought is: any reason the CLI didn’t make the list?
aws s3 sync
My thought on the actual question would be that the Step Functions solution would be a massive increase in cost and speed (Standard step functions are pretty much the most expensive service). The other two would be similar. You didnt ask about complexity, but it seems worth mentioning that the step functions would also be far more complex and more difficult to maintain.
a
AWS Batch task which internally uses rclone. I use to move my media out from s3 to my CDN.
d
Yes, CLI is what I just used now. But I’m looking for a “set and forget” solution that will “keep” them in sync. (serverless)
d
If that were more important than stability, and I was looking to do this, I would implement it very similarly to the Simple Lambda approach, even having never seen it. I would’ve never have thought of the need to complicate it to the level of the Step Functions approach, and while I am not sure, I am not sure it fits your description anyway, I dont see the event-based trigger. For stability and time-sensitivity, I might just run both the lambda and periodic syncs.
d
I keep hearing that Step Functions are $$$$ but never actually used them. They just “sound” amazing. I keep wanting to try them, its really too bad they are so highly priced. Seems like it could be a very useful tool in serverless.
d
Well, there are “express” ones that only last 5 min that are reasonable, but kind of defeat the purpose. I definitely agree with you, I think they are only useful for sparse human-driven interactions, like say an approval process where an email gets sent with a button on it, and it may take a year to get to.
FWIW, I have tried them for a CSV upload process, and I found myself constantly wishing I was just handling it using lambdas and something like SQS. It was harder to write (Additional Cloudformation, no CDK at the time), harder to debug, and provided no apparent benefit.
d
well also they can replace complex conditional logic that would normally be in a single lambda. Especially if those actions could complete async with eventbridge. etc • transcoding a video in chunks with each chunk processed by a single lambda all at the same time • running some kind of browser screenshoting / spidering with chrome in lambda
d
if you can cut out code entirely, it MIGHT make sense, but I have not come across many use cases where I wouldnt need some kind of shim.
d
anyway…. here’s hoping that they get cheaper and easier to use / observe.
d
@AlexK Lol, this didn’t JUST come out DAYS before me asking for it. When does that ever happen with AWS?! Usually its days after you’ve taken months to build something to do it. 😛