Here's why I think AWS Proton is super rad (a thread): Check out this fun endpoint I deployed today:
…http://awspr-publi-6rm29y6akdre-114279239.us-west-2.elb.amazonaws.com/
#reInvent #AWS #awsproton
(1/8)
…http://awspr-publi-6rm29y6akdre-114279239.us-west-2.elb.amazonaws.com/
#reInvent #AWS #awsproton
(1/8)
So when you look at that website you probably say to yourself "Wow, that's a beautiful website, but what's the big deal?" Well let's talk about how that endpoint came into existing.
When I first open up AWS Proton I can choose a template that someone built.
(2/8)
When I first open up AWS Proton I can choose a template that someone built.
(2/8)
There are two types of templates here - Environment and Service templates. Environments are collections of service instances and hold shared infrastructure (like a VPC). Each service instance deployed into that environment can reference that shared infrastructure.
(3/8)
(3/8)
So what's in an environment? What's in a service? Well - the folks who authored the templates decide what infrastructure is in there. The templates in the console are defined here https://github.com/aws-samples/aws-proton-sample-templates/tree/4b1dba18342b1ba7e354250aeb45e3b2551e4c26/loadbalanced-fargate-svc
But the best part is, as a Dev, I don't have to write these!
(4/8)
But the best part is, as a Dev, I don't have to write these!
(4/8)
So someone writes up common infrastructure patterns, an ECS svc with an ALB, etc. all tuned to your orgs requirements, and published those templates for us devs to use. So if I want to spin up a compliant service I just have to choose one of these templates and spin it up
(5/8)
(5/8)
Template authors also specify different inputs that developers can provide to parameterize their environments or service templates. This is super rad because it lets admins balance how much complexity they want to expose to their devs.
(6/8)
(6/8)
In the above example-I can specify the port of my service, how big I want my AWS Fargate tasks to be and even parameterize my CodePipeline.
This one really tickles me - all I have to do is tell Proton what my `test` command is, and I get an entire pipeline out of the box.
(7/8)
This one really tickles me - all I have to do is tell Proton what my `test` command is, and I get an entire pipeline out of the box.
(7/8)
Once I click create, my service instance is deployed and I get a load balanced fargate service.
…http://awspr-publi-6rm29y6akdre-114279239.us-west-2.elb.amazonaws.com/
Admins defined templates and devs parameterize and instantiate templates. I'm so excited to see the templates folks build and the things ya'll build
(8/8)
…http://awspr-publi-6rm29y6akdre-114279239.us-west-2.elb.amazonaws.com/
Admins defined templates and devs parameterize and instantiate templates. I'm so excited to see the templates folks build and the things ya'll build

(8/8)
Service and Env templates used: https://github.com/aws-samples/aws-proton-sample-templates/tree/HEAD/loadbalanced-fargate-svc
Example dev input: https://github.com/aws-samples/aws-proton-sample-templates/blob/HEAD/loadbalanced-fargate-svc/specs/svc-spec.yaml
Sample service: https://github.com/aws-samples/aws-proton-sample-fargate-service
All deployed through an automatically generated CodePipeline and ECS Service
Example dev input: https://github.com/aws-samples/aws-proton-sample-templates/blob/HEAD/loadbalanced-fargate-svc/specs/svc-spec.yaml
Sample service: https://github.com/aws-samples/aws-proton-sample-fargate-service
All deployed through an automatically generated CodePipeline and ECS Service