AWS Proton adds Terraform support and Git template storage


AWS recently announced two new additions for AWS Proton, their fully managed application delivery service. The first feature allows infrastructure to be defined and provisioned via Terraform. The second feature allows using Git repositories to manage Proton models.

AWS Proton is a managed delivery service for containers and serverless applications. It allows infrastructure teams to view and manage their environment and service models. Developers can then select these templates and self-service their deployments.

With this release it is now possible to use both CloudFormation and Terraform as infrastructure as code engine behind AWS Proton. Service and environment models can be based on an infrastructure defined using Terraform. Via a pull-request approach, Terraform can be used to provision and update infrastructure.

With IaC models written in Terraform’s HCL language, the infrastructure can then be provisioned using Terraform Open Source. AWS Proton will then render the Terraform module and make a pull request to the infrastructure repository to schedule and apply the change.

As AWS Proton does not manage the provisioning of the infrastructure, there must be a step that informs Proton of the status of the deployment. Currently, the only supported way to do this is through a Starcode GitHub linked connection. Currently, provisioning via pull request is considered in the feature preview and is only usable with Terraform-based Proton models.

CloudFormation can still be used to provision AWS Proton using standard supply. Note that you cannot combine the two provisioning methods. For example, you are not allowed to deploy a standard provisioned service in a provisioned environment with pull requests.

The second feature is to push, update and publish AWS Proton Models directly from the Git repositories. When creating service or environment templates, it is now possible to specify a remote Git repository containing the template.

When using CloudFormation templates through standard provisioning, AWS Proton will automatically sync those templates and make them available through the console. When changes are made to template files in Git, AWS Proton takes care of any necessary updates.

The AWS Proton template bundle can be written in CloudFormation or Terraform, but not both. This bundle includes the IaC files with a YAML manifest file that lists the IaC file. When using Terraform, pull request provisioning is currently the only option described above.

With CloudFormation, only one file is listed in the environment templates manifest, as shown below:

    - file: "cloudformation.yaml"
      rendering_engine: jinja
      template_language: cloudformation

When defining service model sets, one file defines the service instance definitions and an optional second file can describe the pipeline definition.

With Terraform, a single file can be named or wildcarded, *.tf, to list each file in the directory:

    - file: "*.tf"
      rendering_engine: hcl
      template_language: terraform

This new feature helps leverage existing workflows to approve and track changes such as those available with GitHub.

AWS Proton is available in the US East (N. Virginia), US East (Ohio), US West (Oregon), Europe (Ireland), and Asia Pacific (Tokyo) regions. There are no additional charges for using AWS Proton, only charges incurred for the resources created to store and run the application. More details can be found on the product landing page.


Comments are closed.