Q: What is a container?
Containers provide a standard way to package your application's code, configurations, and dependencies into a single object. Containers share an operating system installed on the server and run as resource-isolated processes, ensuring quick, reliable, and consistent deployments, regardless of environment.
Q: What is Docker?
Docker is a software platform that allows you to build, test, and deploy applications quickly. Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime.
Q: What is Kubernetes?
Kubernetes is an open source container management and orchestration system. On AWS, you can choose to run and manage Kubernetes infrastructure yourself with Amazon EC2, or use Amazon EKS for a managed, automatically provisioned Kubernetes control plane.
Q: Why should I use containers?
Containers are a powerful way for developers to package and deploy their applications. They are lightweight and provide a consistent, portable software environment for applications to easily run and scale anywhere. Building and deploying microservices, running batch jobs, for machine learning applications, and moving existing applications into the cloud are just some of the popular use cases for containers.
About AWS Services
Q: Does Amazon ECR work with Amazon ECS or EKS?
Yes. Amazon ECR is integrated with both Amazon ECS and Amazon EKS, allowing you to easily store, run, and manage container images for applications running on ECS or EKS. All you need to do is specify the Amazon ECR repository in your task or pod definition and ECS or EKS will retrieve the appropriate images for your applications.
Q: What is the difference between Docker Swarm, Kubernetes, and Amazon ECS?
When you want to run lots of Docker containers, orchestration tools like Docker Swarm, Kubernetes, and Amazon ECS make it possible to start, stop, and monitor thousands (or millions) of containers.
Docker Swarm is container orchestration software made by Docker that you run and manage yourself. Kubernetes is a popular open source, community maintained container orchestration software that you run and manage yourself. Amazon EKS makes it easier to run Kubernetes on AWS by managing the Kubernetes control plane for your containers. Amazon ECS is a fully managed AWS service that makes it easy to run containers on AWS with deep integrations to AWS services such as VPC, load balancing, service discovery, and IAM roles.
Q: How is Amazon ECS different from Amazon EKS?
Both Amazon ECS and Amazon EKS are container management systems that help you run containers at scale. EKS runs Kubernetes and uses the Kubernetes APIs, while ECS has deep integrations with other AWS services and uses the AWS APIs.
Q: How does AWS App Mesh work with Amazon ECS?
AWS App Mesh provides new communication, observation, and management capabilities to applications managed by Amazon ECS. You add the Envoy proxy image to the ECS task definition. App Mesh manages Envoy configuration to provide service mesh capabilities. App Mesh exports metrics, logs, and traces to the endpoints specified in the Envoy bootstrap configuration provided. App Mesh provides an API to configure traffic routes, circuit breaking, retries and other controls between microservices that are mesh-enabled.
Q: How does AWS App Mesh work with Amazon EKS?
Add the Envoy proxy image to the Kubernetes PodSpec. AWS App Mesh exports metrics, logs, and traces to the endpoints specified in the Envoy bootstrap configuration provided. App Mesh provides an API to configure traffic routes, circuit breaking, retries and other controls between microservices that are mesh-enabled.