AWS Management Tools

AWS Proton

4 min read
Updated June 23, 2025
3,879 characters

AWS Proton

AWS Proton is a fully managed application delivery service designed to streamline and standardize the deployment workflow for container and serverless applications. It provides a way for platform engineering teams to define and manage infrastructure, architecture, and CI/CD pipelines as reusable, version-controlled templates, which developers can then use to deploy their applications easily and consistently.

The Two-Persona Model

Proton is built around the collaboration between two distinct teams:

1. The Platform Team (Administrators)

This team is responsible for defining the "golden path" for deployments. They create and manage curated templates that codify best practices for security, architecture, and cost. Their goal is to provide developers with a set of approved, self-service tools that ensure consistency and compliance across the organization.

2. The Development Team (Developers)

This team consumes the templates created by the platform team. They can select a service template that fits their application's needs, provide their source code repository, and let Proton handle the provisioning of the infrastructure and the deployment pipeline. This allows them to focus on writing code rather than managing complex infrastructure.

Core Components

Proton uses several key components to model and manage your infrastructure. These templates are defined using Infrastructure as Code (IaC) tools like AWS CloudFormation or Terraform.

Environment Templates

This defines the shared infrastructure that can be used by multiple applications or services. It typically includes resources like a Virtual Private Cloud (VPC), subnets, ECS or EKS clusters, and shared Application Load Balancers. The platform team creates and manages these templates.

Service Templates

This defines the specific infrastructure, monitoring, and CI/CD pipeline required to deploy a single application or microservice into an environment. A service template is composed of:

  • Service Infrastructure: The resources needed for one instance of your service (e.g., an ECS Task Definition, a Fargate service).

  • CI/CD Pipeline: The pipeline that builds and deploys the service when new code is pushed.

Environments

An Environment is a deployed instance of an Environment Template. For example, a platform team might deploy a "Production" environment and a "Development" environment from the same template, each with slightly different parameters.

Services

A Service is a deployed instance of a Service Template. A developer creates a service, pointing to their source code and selecting a target environment to deploy into. Proton then provisions the service instance and the associated CI/CD pipeline.

Components

A Component is a way to define and provision any supplemental AWS infrastructure that a service might require, but which is not included in the main service template. For example, a service might need an S3 bucket or a DynamoDB table. Developers can attach a component to their service to have these resources provisioned in a standardized way.

The Deployment Workflow

  1. Define: The platform team creates and registers Environment and Service templates in the Proton service catalog.

  2. Deploy Environment: The platform team deploys one or more Environments (e.g., dev, prod) from an Environment Template.

  3. Select & Deploy Service: A developer selects a Service Template, provides their source code location, and requests a deployment into a target Environment.

  4. Automate: AWS Proton provisions the service infrastructure and the CI/CD pipeline. When a developer pushes a new commit to their repository, the pipeline automatically builds and deploys the update to their service running in the specified environment.