리소스 그룹 관리

리소스 그룹은 한 번에 여러 리소스에 대한 사용자 액세스 권한을 신속하게 지정할 수 있도록 하기 위해 계정 리소스를 사용자 정의 가능한 그룹으로 구성할 수 있는 수단입니다. IBM Cloud® Identity and Access Management(IAM) 액세스 제어를 사용하여 관리되는 계정 리소스는 계정 내의 리소스 그룹에 속합니다. 사용자는 리소스를 그룹화하고 IAM을 사용하는 전체 리소스 그룹 또는 개별 서비스 인스턴스에 대한 액세스 권한을 지정할 수 있습니다.

리소스 그룹 관리를 시작하려면 IBM Cloud® 콘솔에서 관리 > 계정 > 계정 리소스 > 리소스 그룹으로 이동하십시오. 리소스 그룹 작성, 보기 및 이름 바꾸기를 수행하고 리소스를 추가하며 리소스 그룹에 관한 액세스 권한을 관리할 수 있습니다. 리소스를 포함하지 않으며 기본 리소스 그룹이 아닌 경우에만 리소스 그룹을 삭제할 수도 있습니다. IBM Cloud 계정 소유자는 임의의 리소스 그룹에 리소스를 추가할 수 있지만, 기타 사용자는 IAM 액세스 정책을 사용하여 액세스 권한을 부여받아야 합니다.

리소스 그룹으로 작업하는 방법에 대한 자세한 정보는 리소스 구성 및 액세스 지정 우수 사례를 참조하십시오.

자원 그룹 작성

종량과금제 또는 구독 계정이 있으면 여러 개의 리소스 그룹을 작성하여 할당량을 손쉽게 관리하고 리소스 세트에 대한 청구 사용량을 볼 수 있습니다. 한 번에 둘 이상의 인스턴스에 대한 사용자 액세스를 보다 쉽게 지정할 수 있도록 리소스를 그룹화할 수도 있습니다. 계정당 최대 1,000개의 리소스 그룹을 보유할 수 있습니다. 추가 리소스 그룹을 작성하려면 모든 계정 관리 서비스에서 관리자 역할이 있는 IAM 정책이 지정되어야 합니다. Lite 계정 또는 30일 평가판을 보유한 경우에는 추가로 리소스 그룹을 작성할 수 없습니다. 단, 기본 리소스 그룹의 이름은 변경이 가능합니다.

콘솔에서 리소스 그룹 작성

  1. IBM Cloud 콘솔에서 관리 > 계정 > 계정 리소스 > 리소스 그룹으로 이동하십시오.
  2. 작성을 클릭하십시오.
  3. 리소스 그룹의 이름을 입력하십시오.
  4. 작성을 클릭하십시오.

CLI를 사용하여 리소스 그룹 작성

리소스 그룹을 생성하고 이름을 변경하거나 IBM Cloud® 사용하여 리소스 그룹에서 리소스를 볼 수 있습니다 명령줄 인터페이스를 사용할 수 있습니다. 리소스 관련 작업에 대한 자세한 정보는 리소스 및 리소스 그룹에 대한 작업을 참조하십시오.

  1. 로그인하여 계정을 선택하십시오.
    ibmcloud login
    
  2. ibmcloud resource group-create 명령을 실행하여 새 리소스 그룹을 작성하십시오. 예를 들어 다음 명령을 실행하면 group2라는 리소스 그룹을 작성합니다.
ibmcloud resource group-create group2

API를 사용하여 리소스 그룹 작성

종량과금제 또는 구독 계정이 있으면 여러 개의 리소스 그룹을 작성하여 할당량을 손쉽게 관리하고 리소스 세트에 대한 청구 사용량을 볼 수 있습니다. 한 번에 둘 이상의 인스턴스에 대한 사용자 액세스를 보다 쉽게 지정할 수 있도록 리소스를 그룹화할 수도 있습니다.

추가 리소스 그룹을 작성하려면 모든 계정 관리 서비스에서 관리자 역할이 있는 IAM 정책이 지정되어야 합니다. Lite 계정 또는 30일 평가판을 보유한 경우에는 추가로 리소스 그룹을 작성할 수 없습니다. 단, 기본 리소스 그룹의 이름은 변경이 가능합니다.

리소스 그룹을 작성하려면 다음 예에 표시된 대로 IBM Cloud® 리소스 관리자 API를 호출하십시오.

curl -X POST https://resource-controller.cloud.ibm.com/v2/resource_groups -H 'Authorization: Bearer <IAM_TOKEN>'
  -H 'Content-Type: application/json' -d '{
      "account_id": "987d4cfd77b04e9b9e1a6asdcc861234",
      "name": "test"
    }'
CreateResourceGroupOptions createResourceGroupOptions = new CreateResourceGroupOptions.Builder()
        .accountId(exampleUserAccountId)
        .name("ExampleGroup")
        .build();
Response<ResCreateResourceGroup> response = resourceManagerService.createResourceGroup(createResourceGroupOptions).execute();
ResCreateResourceGroup resCreateResourceGroup = response.getResult();
System.out.println(resCreateResourceGroup);
const params = {
  accountId: exampleUserAccountId,
  name: "ExampleGroup"
};
resourceManagerService.createResourceGroup(params)
  .then(res => {
    resourceGroupId = res.result.id;
    console.log(JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
res_create_resource_group = resource_manager_service.create_resource_group(
  account_id=example_user_account_id,
  name='ExampleGroup',
).get_result()
print(json.dumps(res_create_resource_group, indent=2))
createResourceGroupOptions := resourceManagerService.NewCreateResourceGroupOptions()
createResourceGroupOptions.SetAccountID(exampleUserAccountID)
createResourceGroupOptions.SetName("ExampleGroup")
resCreateResourceGroup, response, err := resourceManagerService.CreateResourceGroup(createResourceGroupOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(resCreateResourceGroup, "", "  ")
fmt.Println(string(b))

시작하기 전에

Terraform을 사용하여 리소스 그룹을 관리하려면 먼저 다음을 완료해야 합니다:

  • Terraform CLI를 설치하고 IBM Cloud 구성합니다 제공자 플러그인을 설정합니다. 자세한 내용은 IBM Cloud® Terraform 시작하기 튜토리얼을 참조하세요. 플러그인은 이 태스크를 완료하는 데 사용되는 IBM Cloud API를 요약합니다.

  • 이름이 main.tf인 Terraform 구성 파일을 작성하십시오. 이 파일에서는 HashiCorp 구성 언어를 사용하여 리소스를 정의합니다. 자세한 내용은 테라폼 문서를 참조하세요.

Terraform을 사용하여 리소스 그룹 작성

테라폼을 사용하여 리소스 그룹을 만들려면 다음 단계를 따르세요:

  1. ' main.tf ' 파일에 인수를 생성합니다. 다음 예제에서는 ibm_resource_group 자원을 사용하여 자원 그룹을 작성합니다. 여기서 name은 자원 그룹을 식별하기 위한 고유 이름입니다.

    resource "ibm_resource_group" "resourceGroup" {
     name     = "prod"
    }
    

    자원 그룹 인스턴스와 연관된 tags를 지정할 수 있습니다. 자세한 내용은 테라폼 리소스 관리 페이지의 인수 참조 세부 정보를 참조하세요.

    또한, 리소스 그룹 ID를 직접 반환하여 프로비저닝 및 조회를 간소화하는 Terraform IBM 모듈(TIM) 의 리소스 그룹 모듈을 사용하여 리소스 그룹을 생성하고 관리할 수도 있습니다.

  2. 구성 파일 빌드를 완료한 후 Terraform CLI를 초기화합니다. 자세한 내용은 작업 디렉터리 초기화를 참조하세요.

    terraform init
    
  3. ' main.tf ' 파일에서 리소스를 프로비저닝합니다. 자세한 내용은 Terraform으로 인프라 프로비저닝을 참조하세요.

    1. ' terraform plan '을 실행하여 테라폼 실행 계획을 생성하면 제안된 작업을 미리 볼 수 있습니다.
      terraform plan
      
    2. ' terraform apply '을 실행하여 계획에 정의된 리소스를 생성합니다.
      terraform apply
      

리소스 그룹 이름 바꾸기

처음 리소스 그룹이 작성되면 이름이 Default로 지정됩니다. 이 그룹 또는 작성된 기타 그룹의 이름을 업데이트할 수 있습니다.

콘솔에서 리소스 그룹 이름 바꾸기

  1. IBM Cloud 콘솔에서 관리 > 계정 > 계정 리소스 > 리소스 그룹으로 이동하십시오.
  2. 조치 조치 목록 아이콘 메뉴를 클릭하고 이름 바꾸기를 선택하십시오.
  3. 고유 이름을 입력하고 저장을 클릭하십시오.

CLI를 사용하여 리소스 그룹 이름 바꾸기

  1. 로그인하여 계정을 선택하십시오.
    ibmcloud login
    
  2. ibmcloud resource group-update 명령을 실행하여 리소스 그룹의 이름을 바꾸십시오. 예를 들어 다음 명령을 실행하면 Default 리소스 그룹의 이름을 Admin으로 바꿉니다.
ibmcloud resource group-update Default [-n, --name Admin]

API를 사용하여 리소스 그룹 이름 바꾸기

name 변수는 리소스 그룹의 새 이름을 식별합니다. 자세한 내용은 리소스 그룹 업데이트하기를 참조하세요.

curl -X PATCH https://resource-controller.cloud.ibm.com/v2/resource_groups/09f8c1c0742c493f80baaf7835212345 -H 'Authorization: Bearer <IAM_TOKEN>'
  -H 'Content-Type: application/json' -d '{
      "name": "test1"
    }'
UpdateResourceGroupOptions updateResourceGroupOptions = new UpdateResourceGroupOptions.Builder()
  .id(resourceGroupId)
  .name("RenamedExampleGroup")
  .state("ACTIVE")
  .build();
Response<ResourceGroup> response = resourceManagerService.updateResourceGroup(updateResourceGroupOptions).execute();
ResourceGroup resourceGroup = response.getResult();
System.out.println(resourceGroup);
const params = {
  id: resourceGroupId,
  state: 'ACTIVE',
  name: 'RenamedExampleGroup'
};
resourceManagerService.updateResourceGroup(params)
  .then(res => {
    console.log(JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
resource_group = resource_manager_service.update_resource_group(
  id=resource_group_id,
  name='RenamedExampleGroup',
  state='ACTIVE',
).get_result()
print(json.dumps(resource_group, indent=2))
updateResourceGroupOptions := resourceManagerService.NewUpdateResourceGroupOptions(
  resourceGroupID,
)
updateResourceGroupOptions.SetName("RenamedExampleGroup")
updateResourceGroupOptions.SetState("ACTIVE")
resourceGroup, response, err := resourceManagerService.UpdateResourceGroup(updateResourceGroupOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(resourceGroup, "", "  ")
fmt.Println(string(b))

Terraform을 사용하여 자원 그룹 이름 바꾸기

Terraform을 사용하여 자원 그룹의 이름을 바꿀 수 있습니다.

  1. Terraform CLI를 설치하고 Terraform을 위한 IBM Cloud 제공자 플러그인을 구성하려면 IBM Cloud®에서 Terraform 시작하기 튜토리얼을 따르십시오. 플러그인은 이 태스크를 완료하는 데 사용되는 IBM Cloud API를 요약합니다.

  2. 이름이 main.tf인 Terraform 구성 파일을 작성하십시오. 이 파일에서는 HashiCorp Configuration Language를 사용하여 리소스 그룹의 이름을 바꾸기 위한 구성을 추가합니다. 자세한 내용은 테라폼 문서를 참조하세요.

    다음 예제에서 새 값으로 name을 업데이트하여 자원 그룹의 이름을 바꿀 수 있습니다.

    resource "ibm_resource_group" "resourceGroup" {
     name     = "prod"
    }
    

    자세한 내용은 테라폼 리소스 관리 페이지의 인수 참조 세부 정보를 참조하세요.

  3. Terraform CLI를 초기화하십시오.

    terraform init
    
  4. ' terraform plan '을 실행하여 테라폼 실행 계획을 생성하면 제안된 작업을 미리 볼 수 있습니다. Terraform 실행 계획은 자원 그룹의 이름을 바꾸기 위해 실행해야 하는 모든 조치를 요약한 것입니다.

    terraform plan
    
  5. 자원 그룹의 이름을 바꾸십시오.

    terraform apply
    

리소스 그룹에 리소스 추가

IAM으로 관리되는 서비스는 리소스 그룹에 속합니다. 카탈로그에서 이러한 서비스 중 하나의 인스턴스를 작성할 때 인스턴스를 리소스 그룹에 지정하도록 프롬프트가 표시됩니다. 리소스 그룹에 리소스를 지정하기 전에 계정에서 리소스를 구성하고자 하는 방법을 반드시 계획하십시오. 인스턴스 작성 시 선택한 리소스 그룹은 최종 선택이며 변경할 수 없습니다.

인스턴스 작성 시 선택한 리소스 그룹은 최종 선택이며 변경할 수 없습니다.

IBM Cloud 계정 소유자는 임의의 리소스 그룹에 리소스를 추가할 수 있지만, 기타 사용자는 IAM 액세스 정책을 사용하여 액세스 권한을 부여받아야 합니다. 계정의 사용자가 카탈로그의 리소스를 작성하여 리소스 그룹에 추가하려면 두 가지 액세스 정책을 지정해야 합니다.

  • 리소스 그룹 자체에 대한, 뷰어 이상의 역할을 사용하는 정책
  • 계정 내 서비스에 대한, 편집자 이상의 역할을 사용하는 정책

리소스를 리소스 그룹에 추가하려면 다음 단계를 완료하십시오.

  1. IBM Cloud 콘솔에서 관리 > 계정 > 계정 리소스 > 리소스 그룹으로 이동하십시오.
  2. 조치 조치 목록 아이콘 메뉴를 클릭하고 리소스 추가를 선택하십시오.
  3. 여기에서 카탈로그로 이동됩니다. 특정 카테고리, 제공업체, 요금제, 규정 준수 유형 또는 릴리스 유형에 따라 제품을 검색하거나 필터링할 수 있습니다. 리소스 예로는 앱, 서비스 인스턴스, 컨테이너 클러스터, 스토리지 볼륨, 가상 서버 및 소프트웨어가 있습니다.

API를 사용하여 리소스 그룹에 리소스 추가

카탈로그 설정 관리를 참조하여 IBM Cloud® 카탈로그의 표시 여부를 설정하고 계정 사용자의 공개 카탈로그 및 비공개 카탈로그에 있는 제품에 대한 액세스를 제어하세요.

리소스 그룹의 리소스 보기

리소스 그룹에 할당된 리소스를 쉽게 보려면 탐색 메뉴 아이콘 탐색 메뉴 아이콘 > 리소스 목록으로 이동하세요. 그런 다음 리소스 그룹으로 필터링하십시오.

리소스 목록 페이지에서 클래식 인프라 리소스를 찾을 수 없는 경우 탐색 메뉴 아이콘 탐색 메뉴 아이콘 > 클래식 인프라 > 장치 목록을 클릭하여 장치 목록을 확인하세요.

CLI를 사용하여 리소스 그룹에서 리소스 보기

  1. 로그인하여 계정을 선택하십시오.

    ibmcloud login
    
  2. ibmcloud resource service-instances 명령을 실행하여 특정 리소스 그룹에 지정된 리소스를 보십시오. 예를 들어 다음 명령을 실행하면 Default 리소스 그룹에 있는 모든 리소스를 나열합니다.

ibmcloud resource service-instances -g Default

API를 사용하여 리소스 그룹의 리소스 보기

리소스 그룹의 리소스를 보려면 다음 예에 표시된 대로 IBM Cloud® 리소스 제어기 API를 호출하십시오.

curl -X GET https://resource-controller.cloud.ibm.com/v2/resource_instances -H 'Authorization: Bearer <>'
ListResourceInstancesOptions listResourceInstancesOptions = new ListResourceInstancesOptions.Builder()
  .name(resourceInstanceName)
  .build();
Response<ResourceInstancesList> response = service.listResourceInstances(listResourceInstancesOptions).execute();
ResourceInstancesList resourceInstancesList = response.getResult();
System.out.printf("listResourceInstances() response:\n%s\n", resourceInstancesList.toString());
const params = {
  name: resourceInstanceName,
};
resourceControllerService.listResourceInstances(params)
  .then(res => {
    console.log('listResourceInstances() response:\n' + JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
resource_instances_list = resource_controller_service.list_resource_instances(
    name=resource_instance_name
).get_result()
print('\nlist_resource_instances() response:\n',
      json.dumps(resource_instances_list, indent=2))
listResourceInstancesOptions := resourceControllerService.NewListResourceInstancesOptions()
listResourceInstancesOptions = listResourceInstancesOptions.SetName(resourceInstanceName)
resourceInstancesList, response, err := resourceControllerService.ListResourceInstances(listResourceInstancesOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(resourceInstancesList, "", "  ")
fmt.Printf("\nListResourceInstances() response:\n%s\n", string(b))

콘솔을 사용하여 리소스 그룹 삭제하기

계정에 추가된 기본 리소스 그룹은 삭제할 수 없습니다. 기본 리소스 그룹 외에는 리소스를 포함하지 않는 리소스 그룹만 삭제할 수 있습니다.

리소스를 포함하지 않고 기본값이 아닌 리소스 그룹을 삭제하려면 다음 단계를 완료하십시오.

  1. IBM Cloud 콘솔에서 관리 > 계정 > 계정 리소스 > 리소스 그룹으로 이동하십시오.
  2. 조치 아이콘 조치 아이콘 > 삭제를 클릭하십시오.

CLI를 사용하여 리소스 그룹 삭제

리소스를 포함하지 않고 기본값이 아닌 리소스 그룹을 삭제하려면 ibmcloud resource group-delete를 실행하십시오. 예를 들어, 리소스 그룹 example-group을 삭제하십시오.

ibmcloud resource group-delete example-group -f

API를 사용하여 리소스 그룹 삭제

다음 샘플 요청에 표시되어 있는 바와 같이 리소스 관리자 API를 호출하여 리소스 인스턴스를 프로그래밍 방식으로 삭제할 수 있습니다. API에 대한 자세한 내용은 Resource Manager API를 참조하세요.

curl -X DELETE \
  https://resource-controller.cloud.ibm.com/v2/resource_groups/09f8c1c0742c493f80baaf7835212345 \
  -H 'Authorization: Bearer <IAM_TOKEN>'
  -H 'Content-Type: application/json'
String id = '09f8c1c0742c493f80baaf7835212345';
DeleteResourceGroupOptions options = new DeleteResourceGroupOptions.Builder().id(id).build();
Response<Void> response = service.deleteResourceGroup(options).execute();
System.out.println(response):
const params = {
    id: '09f8c1c0742c493f80baaf7835212345'
};
service.deleteResourceGroup(params).then(response => {
    console.log(response)
}).catch(err => {});
delete_resource_group(self,
        id: str,
        **kwargs
    ) -> DetailedResponse
ID := "09f8c1c0742c493f80baaf7835212345"
deleteResourceGroupOptionsModel := service.NewDeleteResourceGroupOptions(ID)
detailedResponse, err := service.DeleteResourceGroup(deleteResourceGroupOptionsModel)

Terraform을 사용하여 자원 그룹 삭제하기

Terraform을 사용하여 리소스 그룹을 삭제하려면 먼저 다음을 완료해야 합니다:

  • Terraform CLI를 설치하고 IBM Cloud 구성합니다 제공자 플러그인을 설정합니다. 자세한 내용은 IBM Cloud® Terraform 시작하기 튜토리얼을 참조하세요. 플러그인은 이 태스크를 완료하는 데 사용되는 IBM Cloud API를 요약합니다.
  • 이름이 main.tf인 Terraform 구성 파일을 작성하십시오. 이 파일에서는 HashiCorp 구성 언어를 사용하여 리소스를 정의합니다. 자세한 내용은 테라폼 문서를 참조하세요.

리소스 그룹을 삭제하려면 다음 단계를 따르세요:

리소스 그룹은 해당 그룹에 리소스가 없는 경우에만 삭제할 수 있습니다.

  1. Terraform main.tf 파일에서 다음 코드 블록을 제거하여 리소스 그룹을 삭제할 수 있습니다. 테라폼 파일을 사용하여 resourceGroup 을 생성했어야 합니다.

    resource "ibm_resource_group" "resourceGroup" {
     name     = "prod"
    }
    

    자세한 내용은 테라폼 리소스 관리 페이지의 인수 참조 세부 정보를 참조하세요.

  2. 구성 파일 빌드를 완료한 후 Terraform CLI를 초기화합니다. 자세한 내용은 작업 디렉터리 초기화를 참조하세요.

    terraform init
    
  3. ' main.tf ' 파일에서 리소스를 프로비저닝합니다. 자세한 내용은 Terraform으로 인프라 프로비저닝을 참조하세요.

    1. ' terraform plan '을 실행하여 테라폼 실행 계획을 생성하면 제안된 작업을 미리 볼 수 있습니다.

      terraform plan
      
    2. ' terraform apply '을 실행하여 계획에 정의된 리소스를 생성합니다.

      terraform apply
      

다음 terraform destroy 명령을 실행하여 자원 그룹을 삭제할 수도 있습니다.

terraform destroy -target RESOURCE_TYPE.NAME -target RESOURCE_TYPE2.NAME