The ECS service's network access security group did not have permission to access EFS.
Add an inbound rule for type NFS in the security group as described in this tutorial: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/tutorial-efs-volumes.html#efs-security-group
This error CannotPullContainerError usually occurs when you have no access to the Internet from ECS and thus it doesn't able to pull an image from registry.
Make sure you have networking configured in such a way to have an access to Internet https://stackoverflow.com/questions/48226547/aws-fargate-cannotpullcontainererror-500
Manually you can confirm ...
Yes, you can start ECS Fargate tasks from Step Functions in the way you've described.
Step Functions allows you to pass Parameters to the underlying service API.
[sidebar: that doc also specifies how to pass state inputs, which you've stated is a requirement]
For ECS Fargate, a ...
You can use AWS APP MESH to route traffic between OSM and GDM. First, all traffic will be sent to OSM using App Mesh's VirtualRouter.
VirtualRouter is an object to route traffic between K8S services. One service will be pointed to the ECS hosted OSM. Another service will be pointed to GDM using External Service
You can use a Cronjob which will run in a pod ...
The goal can be achieved via several solutions. We can use service with awsvpc as network mode, so your service can get a real "A" DNS record and ENI interface, you must pay attention with this solution, ec2 instances has a limited number of ENI that can be attached, for a micro or small I think max 3.
Other solution more flexible is to use an internal NLB ...
Understanding 1 is not correct, localhost is only for internal containers not other can access on localhost, if they share same network name can be used, nodeapp:3000 will work on local.
For different services we have to call them by local IP or a domain name if not in same network.
Load balancing will route the requests across tasks while autoscaling will increase or decrease the number of tasks based on the traffic.
starting new tasks when cpu threshold exceed is autoscaling, this can be setup with cloudwatch events.
you can load balance services based on rules and then route them to target groups. read here
It doesn't tell the exact error message, however in my case,
I was using firelens log driver with S3 configuration type. Since Fargate only supports local file at this point, I got the same error message. Once I changed it to local file in the task definition json, it proceeded further.
IAM Role for Fargate has two policies:
The first one describes which service can assume the role and its permissions. In this case it will be the ecs-tasks.amazonaws.com service (= Fargate) that can call sts:AssumeRole to get all the permissions from this Role.
When Fargate assumes the role it gets the permissions specified within, these are the SSM, KMS ...
If you already have the script/tool in place to execute the database migrations then what you might need is to run the tool/script once. AWS ECS allows to schedule the executions of tasks (containers), you can set it up in a way that the container can run just only once.
These ECS tasks can be scheduled via a cron-like job setup or on a CloudWatch event ...
ECR needs authentication and authorization before you can pull an image.
In your ansible ecs_taskdefinition, please make sure you have parameter task_role_arn or execution_role_arn pointing to a role (i.e. you need to create a role my-task-role1).
Attach the AWS managed policy AmazonECSTaskExecutionRolePolicy to the role (for Fargate tasks, the policy ...