Week 24, 2019 - WWDC 2019; ECS ENI Trunking

By (4 minutes read)

WWDC 2019

If you’re remotely interested in Apple and its products, you likely heard at least something about the various announcements from WWDC. I’m not going to waste too much time on this today as there is plenty of coverage elsewhere. Just a few quick links before I give some of my own thoughts; as usual MacStories has a lot of excellent coverage of what we can expect on our devices soon, and my colleague Sangeeta Vishwanath wrote up her initial impressions as an iOS developer about the State of the Union announcements.

Personally, I’m looking forward to some of the things coming. Not in the least how both Catalyst and SwiftUI make it easy to build multi-platform apps1. Obviously it’s not just a matter of checking a box and seeing a Mac app appear, but I’m looking at it from a couple of ways. First, this means that a lot of iOS apps will be making the jump to macOS thereby ensuring more possibly good apps2. Secondly, it means that developers who already provide this can share even more code and thereby focus on new features. But just as important is that for a good port to macOS there first needs to be a good iPad app. So I’m happy about that too.

That said, it sounds like there are some less nice changes coming as well. As announced previously, the next version of macOS no longer supports 32-bit apps. Personally, not a major issue except for a couple of games that might never be updated. In an interesting move, they’re switching the default shell from bash to zsh. It sounds like this is related to licensing issues, but it’s good to see a more modern shell3 show up. It might mean that people need to change some scripts though.

And speaking of scripts, it looks like support for scripting languages is getting deprecated? This isn’t a major issue for developers4, but as pointed out by Dr. Drang it makes it more difficult to start out with scripting. Of course, actual removal is still a way out, but it’s worth keeping an eye on.

ECS ENI Trunking

When you run ECS tasks on EC2 in the awsvpc networking mode5, that means you get a separate ENI for each of these tasks. Which is great for certain workloads, except of course for that little detail where AWS doesn’t really give you a lot of ENIs on an instance. And you have to scale up your instance quite a bit to get a decent number of ENIs.

This can now be solved however with ENI Trunking for ECS. Be aware though, this is an Account Setting that you need to enable manually. These Account Settings are quite cumbersome as by default you only activate it for your user, which isn’t very useful unless you’re the only one using the account so please read the documentation on Account Settings to make sure you enable it correctly6.

Ok, now that you’ve hopefully enabled it properly. Let’s have a quick look at what this actually means. First, there is another limitation this one based on instance types. As with most of the fancy networking features these days, it is limited to certain Nitro instances7. But if you use those, it does give you a lot of extra ENIs. There is a list on the feature’s documentation page and it shows that you can now get up to 120 ENIs for the biggest instances, but even on a c5.large you already get 10 of them. Again, if you use this networking mode this should help you save some money by being able to run more of them on the same hardware.

Ambassador Corner

And that brings me to something new. Since I got back into the AWS Ambassador program I’ve noticed that with the expansion of the program there is a lot more output. Everyone in there obviously has their own way of promoting what they do, but as it’s a lot of good content I figured I’d share it with you anyway. These will generally be simple links without comments and can be either a post or a tool.


  1. Where multi-platform indicates any OS built by Apple. ↩︎

  2. And these apps don’t have to be sold on the App Store either. ↩︎

  3. Bash on the Mac was stuck in version 3.2, presumably because of those licensing issues. ↩︎

  4. Let’s be serious, nobody really wants to rely on the outdated built-in versions. ↩︎

  5. Also known as the only networking mode supported by Fargate. ↩︎

  6. Honestly, I’m unsure why this isn’t just enabled by default. ↩︎

  7. No, it doesn’t include t3s. ↩︎

comments powered by Disqus