module "eks" {
  source  = "terraform-aws-modules/eks/aws"
  version = "18.31.0"

  cluster_name    = local.cluster_name
  cluster_version = local.cluster_version

  cluster_endpoint_private_access = true
  cluster_endpoint_public_access  = true

  vpc_id     = local.vpc_id
  subnet_ids = local.private_subnets

  enable_irsa = true

  cluster_enabled_log_types = []
  create_cloudwatch_log_group = false

  eks_managed_node_group_defaults = {
    instance_types = [local.instance_type]
    capacity_type  = local.capacity_type
  }
  eks_managed_node_groups = {
    initial = {
      instance_types         = [local.instance_type]
      create_security_group  = false
      create_launch_template = false
      launch_template_name   = ""

      min_size     = 2
      max_size     = 2
      desired_size = 2

      iam_role_additional_policies = [
        "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"
      ]
    }
  }

서론

기존 위처럼 작성되어 있는 코드를 **똑같은 노드 2개가 아닌 각자 다른 사양의 노드**로 바꿔보려고 한다.

내용

eks_managed_node_groups = {
    initial_large_nodes = {
      instance_types         = "m5a.large"
      create_security_group  = false
      create_launch_template = false
      launch_template_name   = ""
      capacity_type          = "ON_DEMAND"

      min_size     = 1
      max_size     = 1
      desired_size = 1

      iam_role_additional_policies = [local.role_policy]
    }

    initial_xlarge_nodes = {
      instance_types         = "m5a.xlarge"
      create_security_group  = false
      create_launch_template = false
      launch_template_name   = ""
      capacity_type          = "SPOT"

      min_size     = 1
      max_size     = 1
      desired_size = 1

      iam_role_additional_policies = [local.role_policy]
    }
  }

위처럼 각각의 노드를 설정해주면 된다.