Deploy Amazon Elastic Kubernetes Service into an existing VPC (Console) - AWS Launch Wizard

Deploy Amazon Elastic Kubernetes Service into an existing VPC (Console)

The following steps guide you through a Amazon EKS deployment with AWS Launch Wizard after you have launched it from the console.

  1. When you select Choose application from the AWS Launch Wizard landing page, you are directed to the Choose application wizard where you are prompted to select the type of application that you want to deploy.

  2. Select Amazon EKS, select Deploy Amazon EKS into an existing VPC, then select Create deployment.

  3. You are prompted to enter the specifications for the new deployment. The following tabs provide information about the specification fields of the deployment model.

    General
    • Deployment name. Enter a unique application name for your deployment.

    • Amazon Simple Notification Service (SNS) topic ARN — optional. Specify an Amazon SNS topic where AWS Launch Wizard can send notifications and alerts. For more information, see the Amazon Simple Notification Service Developer Guide.

    • Deactivate rollback on failed deployment. By default, if a deployment fails, your provisioned resources will be deleted. You can enable this setting during deployment to prevent this behavior.

    • Tags - optional. Enter a key and value to assign metadata to your deployment. For help with tagging, see Tagging Your Amazon EC2 Resources.

    Network configuration
    • Key pair name. Select an existing key pair from the dropdown list or create a new one. If you select Create new key pair name, you are directed to the Amazon EC2 console. From there, under Network and Security, choose Key Pairs. Choose Create a new key pair, enter a name for the key pair, and then choose Download Key Pair.

      Important

      This is the only opportunity for you to save the private key file. Download it and save it in a safe place. You must provide the name of your key pair when you launch an instance and provide the corresponding private key each time that you connect to the instance. Return to the Launch Wizard console and choose the refresh button next to the Key Pairs dropdown list. The newly created key pair appears in the dropdown list. For more information about key pairs and Linux instances, see Amazon EC2 Key Pairs and Linux Instances. For more information about key pairs and Windows instances, see Amazon EC2 Key Pairs and Windows Instances

    • Allowed external access CIDR: Allowed CIDR block for external access to the deployed instances.

    The following table shows all the input fields corresponding to the VPC, public subnets, and private subnets.

    Parameter label (name) Default value Description
    VPC ID (VPCID) Requires input ID of your existing VPC (for example, vpc-0343606e).
    Private subnet 1 ID (PrivateSubnet1ID) Requires input ID of the private subnet in Availability Zone 1 of your existing VPC (for example, subnet-fe9a8b32).
    Private subnet 2 ID (PrivateSubnet2ID) Requires input ID of the private subnet in Availability Zone 2 of your existing VPC (for example, subnet-be8b01ea).
    Private subnet 3 ID (PrivateSubnet3ID) Blank string (Optional) ID of the private subnet in Availability Zone 3 of your existing VPC (for example, subnet-abd39039).
    Public subnet 1 ID (PublicSubnet1ID) Requires input ID of the public subnet in Availability Zone 1 of your existing VPC (for example, subnet-a0246dcd).
    Public subnet 2 ID (PublicSubnet2ID) Requires input ID of the public subnet in Availability Zone 2 of your existing VPC (for example, subnet-b1236eea).
    Public subnet 3 ID (PublicSubnet3ID) Blank string (Optional) ID of the public subnet in Availability Zone 3 of your existing VPC (for example, subnet-c3456aba).
    VPC architecture requirements:
    • VPC ID: Amazon EC2 is hosted in multiple locations world-wide. These locations are composed of AWS Regions and Availability Zones. Amazon VPC enables you to launch AWS resources into a virtual network that you've defined. Choose the VPC that you want to use from the dropdown list. Your VPC must be associated at least two public subnets and two private subnets.

    • Availability Zone (AZ) configuration: You must choose two or three Availability Zones in the Region. Each of the Availability Zones will have a private subnet and a public subnet in the selected VPC. A subnet is a range of IP addresses within a VPC that is allocated in an Availability Zone for the Region.

    • Public Subnets: You must choose at least two public subnets for your VPC.

      If a subnet's traffic is routed to an internet gateway, it is a public subnet. If a subnet doesn't have a route to the internet gateway, it is a private subnet. To use an existing VPC that does not have a public subnet, add a new public subnet using the following steps.

      Important

      You must tag each public subnet being used with the key kubernetes.io/role/elb and the value true.

    • Private subnets: You must choose at least two private subnets for your VPC.

      If a subnet doesn't have a route to an internet gateway, the subnet is known as a private subnet. To create a private subnet, you can use the following steps. We recommend that you enable the outbound connectivity for each of your selected private subnets using a NAT Gateway. To enable outbound connectivity from private subnets with public subnet, see the steps in Creating a NAT Gateway to create a NAT Gateway in your chosen public subnet. Then, follow the steps in Updating Your Route Table for each of your chosen private subnets.

      • Follow the steps in Creating a Subnet in the Amazon VPC User Guide using the existing VPC you will use in AWS Launch Wizard.

      • When you create a VPC, it includes a main route table by default. On the Route Tables page in the Amazon VPC console, you can view the main route table for a VPC by looking for Yes in the Main column. The main route table controls the routing for all subnets that are not explicitly associated with any other route table. If the main route table for your VPC has an outbound route to an internet gateway, then any subnet created using the previous step, by default, becomes a public subnet. To ensure that the subnets are private, you may need to create separate route tables for your private subnets. These route tables must not contain any routes to an internet gateway. Alternatively, you can create a custom route table for your public subnet and remove the internet gateway entry from the main route table.

      Important

      You must tag each private subnet being used with the key kubernetes.io/role/internal-elb and the value true.

    EKS configuration
    Parameter label (name) Default value Description
    Config set name (ConfigSetName) Blank string (Optional) This parameter is used to map advanced parameters to an EKS cluster. You can keep it blank unless you are using an advanced configuration stack. If you launched an advanced configuration stack and want to apply its values to this cluster, this name must match the ConfigSetName parameter for the stack. If kept blank, a new config set is created using default values.
    HTTP proxy (HttpProxy) Blank string (Optional) HTTP(S) proxy configuration. If provided, all worker nodes and pod egress traffic uses this proxy.

    Example: http://10.101.0.100:3128/

    Per-account shared resources (PerAccountSharedResources) AutoDetect This EKS deployment creates several IAM roles and instance profiles that are intended to be deployed only once in an AWS account. If you already have an existing Launch Wizard EKS application deployed in this AWS account, in this AWS Region or another, you must choose No to skip creation of the per-account shared resources.
    Per-Region shared resources (PerRegionSharedResources) AutoDetect This EKS deployment sets up several resources such as helper Lambda functions, an Amazon S3 bucket for staging assets, and AWS CloudFormation macros that are intended to be deployed once for each AWS Region and shared in future deployments of Launch Wizard EKS in that Region. If you already have an existing Launch Wizard EKS application deployed in this account in this Region, you must choose No to skip creation of the per-Region shared resources.
    Provision bastion host (ProvisionBastionHost) Activated Skip creating a bastion host by deactivating this option.
    EKS cluster name (EKSClusterName) Blank string (Optional) Name for the EKS cluster. If kept blank, one is automatically generated. This must be unique within the Region.
    EKS public access endpoint (EKSPublicAccessEndpoint) Deactivated Configure access to the Kubernetes API server endpoint from outside of your VPC.
    Additional EKS admin ARN (IAM user) (AdditionalEKSAdminUserArn) Blank string (Optional) IAM user ARN to be granted administrative access to the EKS cluster.
    Additional EKS admin ARN (IAM role) (AdditionalEKSAdminRoleArn) Blank string (Optional) IAM role ARN to be granted administrative access to the EKS cluster.
    Fargate namespaces (FargateNamespaces) Blank string (Optional) Comma-separated list of namespaces for which Fargate should be enabled.
    EKS node group configuration
    Parameter label (name) Default value Description
    Number of nodes (NumberOfNodes) 3 Number of Amazon EKS node instances. The default is one for each of the three Availability Zones.
    Maximum number of nodes (MaxNumberOfNodes) 3 Maximum number of Amazon EKS node instances. The default is three.
    Node group OS (NodeGroupOS) Amazon Linux 2 Operating system to use for node instances. Choose Bottlerocket for the Amazon purpose-built container OS (unmanaged node groups only). Note that if you choose Windows, an additional Amazon Linux node group is created.
    Node group type (NodeGroupType) Managed Choose Unmanaged to create an Auto Scaling group without using the EKS-managed node groups feature.
    Node instance family (NodeInstanceFamily) Standard Choose the instance family to match the value of Node instance type.
    Kubernetes add-ins
    Parameter label (name) Default value Description
    AWS load balancer controller (ALBIngressController) Activated You can deactivate deploying the AWS load balancer controller. If you activate deployment of the AWS load balancer controller, a Helm chart for this component is deployed.
    Cluster autoscaler (ClusterAutoScaler) Deactivated You can deactivate Kubernetes Cluster Autoscaler. If you activate Kubernetes Cluster Autoscaler, a Helm chart for this component is deployed.
    Amazon EFS storage class (EfsStorageClass) Deactivated You can activate deploying EFS storage to provide persistent storage that is redundant and untethered to individual Availability Zones.
    Prometheus integration (PrometheusIntegration) Deactivated You can activate deploying Prometheus Helm charts into the Kubernetes cluster. For more information, see https://prometheus.io/.
    Grafana integration (GrafanaIntegration) Deactivated You can activate deploying Grafana Helm charts into the Kubernetes cluster. Grafana requires "Prometheus integration" to be enabled. For more information, see https://www.grafana.com/.
  4. When you are satisfied with your infrastructure selections, select Next. If you don't want to complete the configuration, select Cancel. When you select Cancel, all of the selections on the specification page are lost and you are returned to the landing page. To go to the previous screen, select Previous.

  5. After configuring your application, you are prompted to define the infrastructure requirements for the new deployment on the Define infrastructure requirements page. The following tabs provide information about the input fields.

    Compute
    • Infrastructure requirements based on infrastructure. You can choose to select your instances, or to use AWS recommended resources. If you choose to use AWS recommended resources, you have the option of defining your performance needs. If you don't select either option, default values are assigned.

    • Number of instance cores. Choose the number of CPU cores for your infrastructure. The default value assigned is 4.

    • Network performance. Choose your preferred network performance in Gbps.

    • Memory (GB). Choose the amount of RAM that you want to attach to your EC2 instances. The default value assigned is 4 GB.

    • Recommended resources. Launch Wizard displays the system-recommended resources based on your infrastructure selections. If you want to change the recommended resources, select different infrastructure requirements.

    • Infrastructure requirements based on instance type. Choose to select your instance or to use AWS recommended resources. If you don't select either option, default values are assigned.

    • Instance type. Select your preferred instance type from the dropdown list.

  6. When you are satisfied with your infrastructure selections, select Next. If you don't want to complete the configuration, select Cancel. When you select Cancel, all of the selections on the specification page are lost and you are returned to the landing page. To go to the previous screen, select Previous.

  7. On the Review and deploy page, review your configuration details. If you want to make changes, select Previous. To stop, select Cancel. When you select Cancel, all of the selections on the specification page are lost and you are returned to the landing page. When you choose Deploy, you agree to the terms of the Acknowledgment. Launch Wizard validates the inputs and notifies you if you need to address any issues.

  8. When validation is complete, Launch Wizard deploys your AWS resources and configures your Amazon EKS application. Launch Wizard provides you with status updates about the progress of the deployment on the Deployments page. From the Deployments page, you can view the list of current and previous deployments

  9. When your deployment is ready, a notification informs you that your Amazon EKS application is successfully deployed. If you have set up an Amazon SNS notification, you are also alerted through Amazon SNS. You can manage and access all of the resources related to your application by selecting the deployment, and then selecting Manage from the Actions dropdown list.

  10. When the application is deployed, you can access your Amazon EC2 instances through the Amazon EC2 console.