You do, if your stuff is in a private subnet. If you are just "playing around" however, you have options:
a) Spin up your resources in a public subnet, give then a public IP(be very careful about your security group rules if you do this)
b) Create your own NAT gateway EC2 instance(can be way less expensive than a NAT GW as tiny instance sizes can forward a lot of traffic). It's almost trivial to do. Disable source/dest check, enable ipv4 forward, configure routes.
c) IPV6 :) Depending on what your destination is (+ an egress only IGW)
I wouldn't recommend either (a) or (b) for a large production environment, but small deployments will do fine. You can't escape network egress charges though.
I've done B before for dev environments and it works well. For production there is a large list to make it high availability.
Which brings up one of the travesties of NAT Gateway is if you have a dev (or more) and staging and you want it to match prod you're all the sudden stuck with a paying for multiple NAT gateways.
https://www.lastweekinaws.com/blog/an-alternat-future-we-now...
Heck, even if you're not a hobbyist, I've worked with companies that have dev environments that mirror production (except smaller instance sizes) and now all the sudden you have a ton of NAT gateways eating money for providing a basic networking service.
To be fair, large corporations probably should develop that mentality rather than shovelling vast amounts of cash into the problem and hoping it will go away one day (Hint: it doesn't).
EB was great at the beginning, but as the number of connections to other AWS and third party providers increased, it has become incredibly clunky to tweak the build files. What's even worse is that when something does go wrong -- which it inevitably will -- it's extremely hard and slow to debug exactly what went wrong.
Using it with celery has also been rough.
All of that being said I'm ambivalent about having EB on this list. I think it's a good product that has languished partially due to three reasons:
1. AWS having too many overlapping tools (AppRunner, Lightsail, ECS, etc.) 2. AWS haven't added or prioritized as many new features on EB for years 3. The devOps tooling is much more mature these days.
A year ago I tried CDK using python and all commands ran incredibly slow. I'm curious if that was fixed, or if it's a problem with other languages too.
Did you start with CloudFormation and move onto CDK, or did you start with CDK?
The reason I ask is to determine whether you try to reconcile what's going on in CDK vs what's going on in CloudFormation.
Years ago I started with CloudFormation, then moved to Terraform because CloudFormation lacked a lot of features back then. About a year ago I tried CDK. My impression was that CDK makes it very difficult to know what's actually happening under the hood. It's bad enough to have to understand CloudFormation, but the CDK adds more complexity over CloudFormation with the intent of being "magic" enough that people don't need to know how it works.
And maybe that's fine. Perhaps people can be productive without knowing how something works. But that drives me insane. When technology is magic and something goes wrong then it's impossible to fix (fixes require understanding what went wrong). Also magic makes it difficult to predict the effect when you make changes.
- It provides a library in your favorite language to map objects -> CFN YAML
- It provides a command line to deploy that CFN YAML + any needed resources, like Lambda payloads. This is done with `cdk bootstrap` [0]
Mapping objects to YAML is straightforward -- every language has some way to serialize arbitrary objects to YAML. CDK provides level 1 constructs [1] with the allowed CFN types. I use TypeScript, so these types are _super_ helpful, especially with Intellisense. I'm not sure how helpful they are if you're using Python.
Once you have those level 1 constructs, you can build abstractions on top of them. That's what the more complicated L2/L3 constructs are.
Because the end result is CFN YAML, you do still need to understand CFN. CDK just makes the authoring experience significantly more pleasant by eliminating the need to write CFN YAML. You still need to know how to deploy CFN YAML.
[0]: https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html
[1]: https://docs.aws.amazon.com/cdk/v2/guide/constructs.html#con...
Workmail is a weird choice, I mean its just fine as an email system so why cut it? Plus migrating email hosts is kinda a pain. I use it for my personal/professional email and, I never interact with Workmail directly since its on my phone.
Lightsail, it sounds like the primary reason is that it won't make money on its own but I figured that was never it's purpose. It always seemed like Lightsail existed to get people into AWS for smaller projects.
Cloudformation I strongly disagree with. I use it for all infrastructure and having used terraform in the past I much prefer it. My only real problem with CF is that it is not required that all new features are part of CF when they launch. That fixes CF but doesn't need a replacement to make it work. Throw in some UI improvements, but no reason to throw it out.
FYI to the author, there’s a curious bug with using the back button on iPhone/safari.
If from this thread I click the link to go to your page, and before doing anything hit the “back” button, this works fine.
If I go to your page, and then scroll to the bottom, and then hit back (like I did after reading the article), safari seems unable to do so, staying on the page and appearing to get caught in a loop with a growing list of history links to the same page. I think something about the jump links is confusing safari. I do have various extensions installed in safari, so if no one else has this issue it may just be me.
This does not happen in the iPhone/orion browser, which function fine.
Edit looks like an issue with “Hush Nag Blocker” (https://apps.apple.com/us/app/hush-nag-blocker/id1544743900) which was originally installed to deal with the cookie nag spam epidemic. I’ll have to look into alternatives.
The CF web interface does not do a great job of showing the hierarchy and relationships between resources.
And working around circular dependency issues in CDK can be a real time sink.
At anything. To say nothing of the godawful expression language in yaml, so CF is bad UX at pretty much every level. Even ops, the thing it’s made for, is excruciating: I just want to see deployment progress per-resource so I can see what’s stuck, and maybe in some distant joyous future, why.
And no we don't use CDK or CloudFormation!
Is App Runner not doing well? I've been using it and it seems... well not great, but I am surprised that it's not at least trending upwards.
I honestly couldn’t see where they were coming from. CF is awful to work with, even more awful when you have to recover from a failed deploy or rollback, and hacking declarative concepts into Typescript for CDK is just a maintenance disaster in the waiting.
I don’t know why you would choose any of those over Terraform or equivalent declarative IaC tools unless you are a die hard AWS fanatic or simply had the misfortune of inheriting the stack.
Now if there was a prolog version? I’ll have some of that.
In all fairness to the speaker, except for having one of the most prominent icons across his slide deck deprecated in real time, it would have been a pretty decent talk. He even made an effort to promote the GitHub integrations as a path forward, and provide some guidance on current tooling. It was clear CodeCommit wasn't the path of most momentum, even if the degree was unclear.
You know the kind where the salesman comes in and in front of the CIO builds some whiz-bang demo and like 20 minutes and has a CEO asking why it takes a month or more to do equivalent stuff by real it workers.
That whiz-bang demo? Maybe that's the only functionality that works right. Maybe it's all using default values that won't pass your internal security and compliance policies.
And lets not forget the pain of integrating something new with existing systems. It's easy to show a demo of something that doesn't integrate with existing systems, and just show a slide or two of what things it integrates with.
As a product, it seems fine. I'm not entirely sure it's an area AWS really needed to have a competitor, but now that they do, /shrug