Security Cloud Courses About
imgs/hero.webp

How To Run Just One Container With AWS App Runner…Hopefully

I recently explored the new user experience of launching just one container in the AWS Cloud. It didn’t go particularly smoothly.

Now, I did achieve the goal of running a single container but it took a lot of missteps and lot of confusing steps to get things up and running.

As a result of that effort, a lot of people suggested I try AWS App Runner. The service has a tag line of, “Production web applications at scale made easy for developers.”

That’s definitely intimidating and doesn’t imply “run just one container.” But if you’ve ever explored the service, it’s definitely a good fit for this task.

In this twitter thread (re-posted here), I once again put on my new user hat 🧒 and took a look at this AWS service, documenting my experiences as I went.

Have a look πŸ‘‡ and let me know what you think on Twitter, where I’m @marknca.

Tweet 1/33 πŸ‘‡ Next tweet

after my epic #containers on @awscloud rant the other day, I had a LOT of ppl tell me I should've used App Runner

that's 100% fair as it it the service that probably makes the most sense

☁️🧡 #cloud #devops

Tweet 2/33 πŸ‘‡ Next tweet πŸ‘† Start

btw, this thread is available as a page (probably more usable) at ...

https://markn.ca/2021/how-to-run-just-one-container-with-aws-app-runner-hopefully/

☁️🧡 #cloud #devops

Tweet 3/33 πŸ‘‡ Next tweet πŸ‘† Start

the original twitter thread is available at πŸ‘‡

now, to put on my new user 🧒 and I'm off on my @awscloud App Runner adventure!

☁️🧡 #cloud #devops

https://twitter.com/marknca/status/1433473472269750276

Tweet 4/33 πŸ‘‡ Next tweet πŸ‘† Start

on the "Containers on AWS" page, App Runner is the last entry in the excellent & much appreciated table

its description?

"Build and run containerized applications on a fully managed service"

that is what I want to do...assuming I can run just 1 container

☁️🧡 #cloud #devops

Tweet 5/33 πŸ‘‡ Next tweet πŸ‘† Start

not a great description in the console's universal search

"Build and run production web applications at scale" << no mention of "containers" at all πŸ˜”

...but the containers page said this was the way. I solider on...

☁️🧡 #cloud #devops

Tweet 6/33 πŸ‘‡ Next tweet πŸ‘† Start

the landing page is pretty standard for an @awscloud service

it serves it's purpose & actually mentions "containers" which is nice

☁️🧡 #cloud #devops

Tweet 7/33 πŸ‘‡ Next tweet πŸ‘† Start

I like the clear pricing on compute and storage costs. that's important to know up front

don't like is the extra πŸ’΅ as "automatic deployments" and "build" are different vectors that I need to account for that could be pricey & complicated quickly

☁️🧡 #cloud #devops

Tweet 8/33 πŸ‘‡ Next tweet πŸ‘† Start

I click on the orange "Create an App Runner service" to get started but only because it's under the "Get started with App Runner" header

I just want to launch a container, not create a whole new service...

"service" sounds heavy, which I'm trying to avoid

☁️🧡 #cloud #devops

Tweet 9/33 πŸ‘‡ Next tweet πŸ‘† Start

I'm on step 1/3 (according to the left hand side). those steps:

1. Source & deployment 2. Configure service 3. Review & create

...seems straightforward enough

☁️🧡 #cloud #devops

Tweet 10/33 πŸ‘‡ Next tweet πŸ‘† Start

right out of the gate, it looks like I can deploy from source as well. that echoes back to the "build" pricing thing

I only want to run a single container, so I stick with the clear "Container registry" option

I pick "Amazon ECR Public" as the provider

☁️🧡 #cloud #devops

Tweet 11/33 πŸ‘‡ Next tweet πŸ‘† Start

I'll use the "hello-app-runner" container from the public registry as it seems appropriate for this effort

https://gallery.ecr.aws/aws-containers/hello-app-runner

I copy the URI from the page to paste into the "Container Image URI" field in App Runner

☁️🧡 #cloud #devops

Tweet 12/33 πŸ‘‡ Next tweet πŸ‘† Start

sidenote: while accurate, does URI bother everyone else too? I figured we'd all just given up on it and defaulted to URL and considered that a victory given that it's almost in the mainstream vocabulary now

more at https://danielmiessler.com/study/difference-between-uri-url/

☁️🧡 #cloud #devops

Tweet 13/33 πŸ‘‡ Next tweet πŸ‘† Start

back in App Runner, I leave the "Deployment trigger" set to "Manual" and then click that enticing, orange Next button

☁️🧡 #cloud #devops

Tweet 14/33 πŸ‘‡ Next tweet πŸ‘† Start

that drops me into step 2, configure service

thankfully a lot of this page is under toggle switches making these options accessible but not "in my face"

☁️🧡 #cloud #devops

Tweet 15/33 πŸ‘‡ Next tweet πŸ‘† Start

I enter my "Service name" as "HelloWorld", leave everything else as-is, and click the orange Next button...

☁️🧡 #cloud #devops

Tweet 16/33 πŸ‘‡ Next tweet πŸ‘† Start

this brings me to the "Review" page, also known as step 3/3

throwing caution to the wind, I scroll down and click the orange "Create & deploy" button

is this what I want? maybe...

should I do it?

☁️🧡 #cloud #devops

Tweet 17/33 πŸ‘‡ Next tweet πŸ‘† Start

I click... ☁️🧡 #cloud #devops

Tweet 18/33 πŸ‘‡ Next tweet πŸ‘† Start

...and despite trying to make that sound exciting, I'm greeted by the standard "we're doing something you asked for" details page for an App Runner Service 🀣

☁️🧡 #cloud #devops

Tweet 19/33 πŸ‘‡ Next tweet πŸ‘† Start

☁️🧡 #cloud #devops

Tweet 20/33 πŸ‘‡ Next tweet πŸ‘† Start

well that took about 5.5 minutes

☁️🧡 #cloud #devops

Tweet 21/33 πŸ‘‡ Next tweet πŸ‘† Start

now the great news, I have a "Default domain" automatically assigned to my container

I load it up in my browser and...success!

☁️🧡 #cloud #devops

Tweet 22/33 πŸ‘‡ Next tweet πŸ‘† Start

ok, I'm feeling good about this. if I flip back to App Runner, on the Service (ugh) detail page, I get tabs for:

- Activity - Logs - Configuration - Metrics - Custom domains

...looks like there's lot of flexibility here

☁️🧡 #cloud #devops

Tweet 23/33 πŸ‘‡ Next tweet πŸ‘† Start

I've got some nice metrics filling in already. of course not super useful given that I've only loaded the page a handful of times and the container doesn't do anything else

but FUTURE me might use this πŸ˜‰

☁️🧡 #cloud #devops

Tweet 24/33 πŸ‘‡ Next tweet πŸ‘† Start

the Configuration tab provides access to all of those settings that I ignored earlier. it would be worth the time to dig in and figure out which ones can be changed after launching

☁️🧡 #cloud #devops

Tweet 25/33 πŸ‘‡ Next tweet πŸ‘† Start

I ❀️ the Logs tab (don't judge me, they're useful!). nice to be able to do some simple searching here and then dive into CloudWatch for more complex work

nice touch

☁️🧡 #cloud #devops

Tweet 26/33 πŸ‘‡ Next tweet πŸ‘† Start

ok, first impressions are very positive. once you know about this service and what it does, it's very straight forward

there's a good amount of flexibility but the default path is very smooth & requires minimal effort

biggest challenge: naming (again)

☁️🧡 #cloud #devops

Tweet 27/33 πŸ‘‡ Next tweet πŸ‘† Start

in @awscloud App Runner your create "Services", what are those? = one or more containers

"Services" might tie to micro services but it obscures the core msg that App Runner runs Containers (btw, so does the name)

☁️🧡 #cloud #devops

Tweet 28/33 πŸ‘‡ Next tweet πŸ‘† Start

honestly, this service should probably be called "@awscloud Container Runner" or something like that.

but I have to be quiet here...

if you say 3 better names for an AWS service, @QuinnyPig appears behind you in the mirror

☁️🧡 #cloud #devops

Tweet 29/33 πŸ‘‡ Next tweet πŸ‘† Start

ok, so this seems to be a very simple service for running containers

...oh, maybe @awscloud Simple Container Service?

(damn it, that's 2x)

☁️🧡 #cloud #devops

Tweet 30/33 πŸ‘‡ Next tweet πŸ‘† Start

pricing seems reasonable. it's listed as per hour but actually charges at per second (except for the add-ons)

https://aws.amazon.com/apprunner/pricing/

☁️🧡 #cloud #devops

Tweet 31/33 πŸ‘‡ Next tweet πŸ‘† Start

the documentation and criteria for having App Runner build from source isn't great

the docs are at https://docs.aws.amazon.com/apprunner/latest/dg/service-source-code.html

...it seems like it'll only do python and node.js runtimes which is ok but not amazing

☁️🧡 #cloud #devops

Tweet 32/33 πŸ‘‡ Next tweet πŸ‘† Start

but, I'll cut them a break πŸ‘† since the service only launched in the spring of 2021

https://docs.aws.amazon.com/apprunner/latest/relnotes/release-2021-05-18-apprunner-release.html

bringing on new runtimes probably isn't easy...but the existing docs need to get better asap or no one will use that feature

☁️🧡 #cloud #devops

Tweet 33/33 πŸ‘‡ Next tweet πŸ‘† Start

wrapping up, this was a much better experience once I was in the service. simple, straight forward, reasonable pricing scheme πŸ˜€

finding this one and linking it to containers was again, harder than it needed to be especially for new users πŸ˜”

/☁️🧡 #cloud #devops