[Yandex Cloud documentation](../../../index.md) > [Yandex Compute Cloud](../../index.md) > [Step-by-step guides](../index.md) > Creating an instance group > Creating an instance group based on a YAML specification

# Creating an instance group based on a YAML specification

In Instance Groups, all operations are performed under a service account. If you don't have a service account, [create one](../../../iam/operations/sa/create.md).

To be able to create, update, and delete VM instances in the instance group, [assign](../../../iam/operations/sa/assign-role-for-sa.md) the [compute.editor](../../security/index.md#compute-editor) role to the service account.

If you want to integrate an instance group with a [Yandex Network Load Balancer](../../../network-load-balancer/index.md), you also need to assign the [load-balancer.editor](../../../network-load-balancer/security/index.md#load-balancer-editor) role to the service account.

To integrate an instance group with an L7 load balancer from [Yandex Application Load Balancer](../../../application-load-balancer/index.md), assign the [alb.editor](../../../application-load-balancer/security/index.md#alb-editor) role to the service account.

To create an [instance group](../../concepts/instance-groups/index.md) based on a YAML [specification](../../concepts/instance-groups/specification.md):

{% list tabs group=instructions %}

- CLI {#cli}

  If you do not have the Yandex Cloud CLI yet, [install and initialize it](../../../cli/quickstart.md#install).

  The folder used by default is the one specified when [creating](../../../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

  Run this command:

  ```bash
  yc compute instance-group create --file specification.yaml
  ```

  For more information about the `yc compute instance-group create` command, see the [CLI reference](../../../cli/cli-ref/compute/cli-ref/instance-group/create.md).

- API {#api}

  Use the [InstanceGroupService/CreateFromYaml](../../instancegroup/api-ref/grpc/InstanceGroup/createFromYaml.md) gRPC API call or the [createFromYaml](../../instancegroup/api-ref/InstanceGroup/createFromYaml.md) method of the REST API `InstanceGroup` resource.

{% endlist %}