Creating an AWS Fargate service with a custom Task Definition using the AWS Python CDK
Gert Leenders
Posted on December 31, 2020
Because not a lot of Python CDK examples seem to be available on the web I share this CDK code snippet for the common use case of creating a Fargate service. The code below deploys an ECS Fargate service on an ECS cluster. The Service uses a Docker Hub image and contains a port mapping. The code should be self-explanatory.
from aws_cdk import (
core, aws_ec2 as ec2,
aws_ecs as ecs,
aws_ecs_patterns as ecs_patterns
)
class ExampleStack(core.Stack):
def __init__(self, scope: core.Construct, construct_id: str, **kwargs) -> None:
super().__init__(scope, construct_id, **kwargs)
vpc = ec2.Vpc(self, "some-vpc",
cidr="10.0.0.0/22",
max_azs=3)
cluster = ecs.Cluster(self, "some-cluser", vpc=vpc)
task_definition = ecs.FargateTaskDefinition( self, "spring-boot-td",
cpu=512, memory_limit_mib=2048)
image = ecs.ContainerImage.from_registry("springio/gs-spring-boot-docker")
container = task_definition.add_container( "spring-boot-container", image=image)
port_mapping = ecs.PortMapping(container_port=8080, host_port=8080)
container.add_port_mappings(port_mapping)
ecs_patterns.ApplicationLoadBalancedFargateService(self, "some-service",
cluster=cluster,
task_definition=task_definition,
desired_count=2,
cpu=512,
memory_limit_mib=2048,
public_load_balancer=True)
Enjoy!
💖 💪 🙅 🚩
Gert Leenders
Posted on December 31, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
aws Creating an AWS Fargate service with a custom Task Definition using the AWS Python CDK
December 31, 2020