Welcome to part 3 of this blog post series on how to use amazon efs with amazon ecs and aws fargate.
Aws ecs container metadata.
Beginning with version 1 17 0 of the amazon ecs container agent various task metadata and docker stats are available to tasks that use the awsvpc network mode at an http endpoint that is provided by the amazon ecs container agent.
For reference these are the blog posts in this series.
Short description if you run containers in an amazon ec2 instance it s a best practice for security reasons to avoid allowing your applications to assume an instance role.
Task metadata endpoint version 2 available for amazon ecs tasks on aws fargate that use platform version 1 1 0 or later and tasks that are launched on amazon ec2 infrastructure that use the awsvpc network mode and are running at least version 1 17 0 of the amazon ecs container agent.
Amazon ec2 container service amazon ecs now allows applications running in containers to directly access metadata about their environment.
Previously if an application running in a container managed by amazon ecs required access to information about its environment you needed to manually call this metadata using the docker or amazon ecs.
The amazon ecs container agent provides an api operation for gathering details about the container instance on which the agent is running and the associated tasks running on that instance.
This blog provides the background about the need for this integration its scope and provides a high level view of the use cases.
The task metadata and network rate stats are sent to cloudwatch container insights and can be viewed in the aws management console.
All containers belonging to tasks that are launched with the awsvpc network mode receive a local ipv4 address within a predefined link local address range.
To test your container locally run.
Beginning with version 1 15 0 of the amazon ecs container agent various container metadata is available within your containers or the host container instance.
You can use the curl command from within the container instance to query the amazon ecs container agent port 51678 and return container instance metadata or task information.
Your container will now be running and will be using temporary credentials obtained from your default aws command line interface profile.
You should not use your production credentials locally if you provide the ecs local endpoints with an aws profile that has access to your production account then your application will be able to.
The amazon ecs container agent injects an environment variable into each container referred to as the task metadata endpoint which provides various task metadata and docker stats to the container.