In this hands-on lab, participants will learn how to configure Amazon Elastic Container Service (ECS) tasks to use Amazon Elastic File System (EFS) as shared storage. A 3D Globe web application will be used to demonstrate this architecture and configuration.
Amazon ECS is a fully managed container orchestration service offered by AWS, designed to simplify the deployment, management, and scaling of containerized applications. It allows users to run Docker containers on a managed cluster of EC2 instances or AWS Fargate, abstracting away the underlying infrastructure complexity. ECS enables users to define task definitions, which specify the Docker containers to run, their configurations, and how they are linked together. With features like automatic load balancing, service discovery, and integration with other AWS services, ECS provides a scalable and efficient platform for deploying containerized workloads.
Amazon EFS is a scalable, fully managed file storage service provided by AWS, designed to provide simple, scalable file storage for use with AWS cloud services and on-premises resources. It allows multiple EC2 instances to access a shared file system concurrently, enabling applications to share data across instances seamlessly. With features like automatic scaling, high availability, and durable storage, Amazon EFS is well-suited for a wide range of use cases, including content repositories, big data analytics, and web serving.
Learning objectives
Upon completion of this intermediate-level lab, you will be able to:
- Create an ECS Task Definition that utilizes EFS for shared storage
- Launch ECS Tasks using a custom task definition
- Create an ECS Service with an ALB for load balancing external requests
Intended audience
- Cloud Architects
- DevOps Engineers
- Software Engineers
Prerequisites
Familiarity with the following will be beneficial but is not required:
- Amazon Elastic Container Service (ECS)
- Amazon Elastic File System (EFS)
- Containerization
The following content can be used to fulfill the prerequisites:
Environment before
Environment after
Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.
Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).