AWS Console vs CLI
You can create clusters in the AWS Console, with the AWS CLI, or with eksctl β each suits a different need.
There is no single "right" way to create an EKS cluster. Pick the method that matches your workflow.
| Method | Strengths | Watch out for |
|---|---|---|
| AWS Console | Visual, good for learning and one-off exploration. | Manual, hard to reproduce, easy to misconfigure the VPC. |
AWS CLI (aws eks) | Scriptable, no extra tools. | You must create the VPC, IAM roles, and node groups yourself. |
| eksctl | Creates everything in one step; great defaults. | Abstracts CloudFormation; less granular than raw CLI. |
Recommendation
Use the Console to learn, eksctl for most real clusters, and infrastructure-as-code (Terraform or the raw CLI) when you need EKS to fit into an existing pipeline.
Example
# Raw AWS CLI: control plane only (VPC + role must already exist)
aws eks create-cluster \
--name demo \
--role-arn arn:aws:iam::111122223333:role/eksClusterRole \
--resources-vpc-config subnetIds=subnet-abc,subnet-def \
--kubernetes-version 1.30When to use it
- An ops engineer uses the AWS Console to visually browse node group health and pod counts during a live incident.
- A platform team uses eksctl in CI/CD pipelines to create and delete clusters programmatically with no manual steps.
- A developer prefers the AWS CLI describe-cluster command in scripts to gate deployments until the cluster reaches ACTIVE status.
More examples
Create cluster via AWS CLI
Creates an EKS cluster using the low-level AWS CLI, requiring the IAM role and VPC resources to be pre-created manually.
aws eks create-cluster \
--name my-cluster \
--kubernetes-version 1.30 \
--role-arn arn:aws:iam::123456789012:role/EKSClusterRole \
--resources-vpc-config subnetIds=subnet-aaa,subnet-bbb,securityGroupIds=sg-xxxPoll cluster status until ACTIVE
A shell loop that polls the cluster status every 30 seconds, useful in CLI-driven automation where eksctl is not available.
while true; do
STATUS=$(aws eks describe-cluster --name my-cluster --query 'cluster.status' --output text)
echo "Status: $STATUS"
[ "$STATUS" = "ACTIVE" ] && break
sleep 30
doneeksctl vs CLI cluster comparison
Contrasts how eksctl abstracts away resource pre-creation while the raw CLI requires manual IAM and VPC setup.
# eksctl: one command, handles VPC + IAM + nodes
eksctl create cluster --name demo --nodes 2
# AWS CLI: separate commands for each resource
aws eks create-cluster --name demo \
--role-arn arn:aws:iam::ACCOUNT:role/EKSRole \
--resources-vpc-config subnetIds=sub-a,sub-b
Discussion