프로젝트 만들기 및 관리

Google Cloud Platform(GCP) 프로젝트는 API를 관리하고 결제를 사용 설정하며 공동작업자를 추가 및 삭제하고 GCP 리소스에 대한 권한을 관리하는 등 모든 GCP 서비스를 만들고 사용 설정하고 사용하기 위한 기반을 형성합니다.

이 페이지에서는 Resource Manager API 및 Google Cloud Platform 콘솔을 사용하여 GCP 프로젝트를 만들고 관리하는 방법에 대해 설명합니다.

시작하기 전에

리소스 계층 구조 개요에서 프로젝트 리소스를 참조하세요.

프로젝트 만들기

프로젝트를 만들려면 resourcemanager.projects.create 권한이 있어야 합니다. 이 권한은 roles/resourcemanager.projectCreator라는 프로젝트 생성자 역할에 포함되어 있습니다. 이 역할은 새 조직의 전체 도메인에, 그리고 무료 평가판 사용자에게 기본적으로 부여됩니다. 개인에게 이 역할을 부여하고 조직 전체 액세스를 제한하는 방법에 대한 자세한 내용은 기본 조직 역할 관리 페이지를 참조하세요.

GCP Console 또는 projects.create() 메소드를 사용하여 새 프로젝트를 만들 수 있습니다.

콘솔

새 프로젝트를 만드는 방법은 다음과 같습니다.

  1. GCP 콘솔에서 리소스 관리 페이지로 이동합니다.
    리소스 관리 페이지로 이동
  2. 페이지 맨 위에 있는 조직 선택 드롭다운 목록에서 프로젝트를 만들려는 조직을 선택합니다. 무료 평가판 사용자인 경우에는 이 목록이 나타나지 않으므로, 이 단계를 건너뜁니다.
  3. 프로젝트 만들기를 클릭합니다.
  4. 나타나는 새 프로젝트 창에 프로젝트 이름을 입력하고 해당되는 결제 계정을 선택합니다.
  5. 폴더에 프로젝트를 추가하려면 위치 상자에 폴더 이름을 입력합니다.
  6. 새 프로젝트 세부정보 입력을 마쳤으면 만들기를 클릭합니다.

gcloud

새 프로젝트를 만들려면 gcloud projects create 명령어를 사용합니다.

gcloud projects create PROJECT_ID

여기서 PROJECT_ID는 만들려는 프로젝트의 ID입니다. 프로젝트 ID는 소문자로 시작해야 하고 ASCII 문자, 숫자, 하이픈만 포함해야 하며 6~30자(영문 기준) 사이여야 합니다.

상위 항목으로 조직 또는 폴더가 있는 프로젝트를 만들려면 --organization 또는 --folder 플래그를 사용합니다. 리소스에는 하나의 상위 항목만 있을 수 있으므로 이러한 플래그 중 하나만 사용할 수 있습니다.

gcloud projects create PROJECT_ID --organization=ORGANIZATION_ID

gcloud projects create PROJECT_ID --folder=FOLDER_ID

API

projects.create() 메소드로 새 프로젝트를 만들 때 프로젝트 ID에 특정 단어를 사용할 수 없습니다. 예를 들어 sslgoogle이 있습니다. 제한된 단어를 사용하면 요청이 INVALID_ARGUMENT 오류와 함께 반환됩니다.

아래 요청은 프로젝트만 만들고 결제 계정과 자동으로 연결하지 않습니다. 프로젝트와 연결된 결제 계정을 설정하거나 업데이트하려면 projects.updateBillingInfo 메소드를 사용하세요.

프로젝트 만들기 요청:

POST https://cloudresourcemanager.googleapis.com/v1/projects/
Authorization: *************
Content-Type: application/json

{
    "projectId": "our-project-123",
    "name": "my project",
    "labels": {
      "mylabel": "prod"
    }
}

프로젝트 만들기 응답:

{
    "name": "operations/pc.123456789",
}

가져오기 작업 요청:

GET https://cloudresourcemanager.googleapis.com/v1/operations/pc.123456789
Authorization: *************
Content-Type: application/json

가져오기 작업 응답:

{
    "name": "operations/pc.123456789",
    "done": true,
    "response": {
        "@type": "type.googleapis.com/google.cloudresourcemanager.v1.Project",
        "projectNumber": "464036093014",
        "projectId": "our-project-123",
        "lifecycleState": "ACTIVE",
        "name": "my project",
        "labels": {
        "mylabel": "prod"
        },
    "createTime": "2016-01-07T21:59:43.314Z"
    }
}

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

operation = crm.projects().create(
body={
    'project_id': flags.projectId,
    'name': 'my project'
}).execute()

...

프로젝트 할당량 관리

남은 프로젝트 할당량이 30개 미만이면 새 프로젝트 페이지의 남은 프로젝트 할당량을 보여주는 알림이 표시됩니다. 사용자가 소프트 삭제한 프로젝트는 30일 후에 완전히 삭제될 때까지 할당량으로 집계됩니다.

프로젝트 할당량 상향 조정을 요청하려면 결제 할당량 증가 요청 지원 페이지를 참조하세요. 할당량과 할당량 사용 이유에 대한 자세한 내용은 무료 평가판 프로젝트 할당량 요청 지원 페이지에서 확인할 수 있습니다.

프로젝트 식별

GCP 리소스와 상호작용하려면 모든 요청에 프로젝트 식별 정보를 제공해야 합니다. 프로젝트는 다음 방법으로 식별할 수 있습니다.

  • 프로젝트 이름: 프로젝트를 만들 때 또는 프로젝트 ID를 필수적으로 만들어야 하는 API를 활성화할 때 선택한 맞춤설정 이름입니다. 삭제된 프로젝트의 프로젝트 이름은 다시 사용할 수 없습니다.
  • 프로젝트 ID: 프로젝트의 고유 식별자이며 프로젝트 이름과 임의로 할당된 번호로 구성됩니다.
  • 프로젝트 번호: 서버에서 자동으로 생성되어 프로젝트에 할당된 번호입니다.

프로젝트 ID 및 프로젝트 번호를 가져오는 방법은 다음과 같습니다.

  1. GCP Console의 대시보드 페이지로 이동합니다.

    대시보드 페이지로 이동

  2. 페이지 상단에서 선택 드롭다운 목록을 클릭합니다. 선택 창이 나타나면 프로젝트를 선택합니다.

프로젝트 ID와 프로젝트 번호가 모두 프로젝트 대시보드의 프로젝트 정보 카드에 표시됩니다.

프로젝트 ID는 프로젝트 이름과 다릅니다. 프로젝트 이름은 프로젝트 식별을 위해 사람이 읽을 수 있는 형식을 취하지만 Google API에서는 사용되지 않습니다. 위의 예에서 프로젝트 이름은 My Sample Project이고 프로젝트 ID는 my-sample-project-191923입니다.

프로젝트 ID는 Google Cloud Platform 콘솔에서 프로젝트를 만들 때 입력한 프로젝트 이름에서 생성됩니다. 특정 단어는 프로젝트 ID에서 사용이 제한됩니다. 프로젝트 이름에 googlessl 같은 제한된 단어를 사용하는 경우 생성되는 프로젝트 ID에 해당 단어가 포함되지 않습니다. 이는 프로젝트 이름에 영향을 주지 않습니다.

프로젝트 번호 및 프로젝트 ID는 Google Cloud Platform 전체에서 고유합니다. 한 사용자가 프로젝트에 대한 특정 프로젝트 ID를 소유하면 다른 사용자는 해당 프로젝트 ID를 사용할 수 없게 됩니다.

프로젝트 ID(또는 리소스 이름)를 선택할 때는 이름에 민감한 정보를 포함하면 안 됩니다.

기존 프로젝트 가져오기

GCP Console 또는 projects.get() 메소드를 사용하여 기존 프로젝트를 가져올 수 있습니다.

콘솔

Google Cloud Platform Console을 사용하여 프로젝트를 보는 방법은 다음과 같습니다.

  1. Google Cloud Platform Console의 대시보드 페이지로 이동합니다.

    대시보드 페이지로 이동

  2. 페이지 상단에서 선택 드롭다운 목록을 클릭합니다. 선택 창이 나타나면 프로젝트를 선택합니다.

gcloud

프로젝트의 메타데이터를 가져오려면 gcloud projects describe 명령어를 사용합니다.

gcloud projects describe PROJECT_ID

여기서 PROJECT_ID는 보려는 프로젝트의 ID입니다.

API

요청:

GET
https://cloudresourcemanager.googleapis.com/v1beta1/projects/our-project-123

응답:

{
    "projectNumber": "464036093014",
    "projectId": "our-project-123",
    "lifecycleState": "ACTIVE",
    "name": "my project",
    "labels": {
        "mylabel": "prod"
    },
    "createTime": "2016-01-07T21:59:43.314Z"
}

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().get(projectId=flags.projectId).execute()

...

프로젝트 나열

GCP Console 또는 projects.list() 메소드를 사용하여 액세스 권한이 있는 모든 프로젝트를 나열할 수 있습니다.

콘솔

Google Cloud Platform 콘솔을 사용하여 프로젝트를 나열하는 방법은 다음과 같습니다.

  • GCP 콘솔로 이동합니다.

    GCP 콘솔로 이동

  • 모든 프로젝트가 상단 표시줄의 프로젝트 드롭다운에 나열됩니다. 프로젝트 및 폴더 검색 텍스트 상자를 사용하여 프로젝트를 필터링합니다.
  • 모든 프로젝트를 나열하려면 리소스 관리를 클릭합니다. 이름, ID, 라벨로 필터링 텍스트 상자를 사용하여 프로젝트를 필터링합니다.

gcloud

현재 사용 중인 계정에서 액세스할 수 있는 모든 프로젝트를 나열하려면 gcloud projects list 명령어를 사용합니다.

gcloud projects list

이 명령어는 소유자, 편집자, 뷰어 권한이 있는 모든 프로젝트의 프로젝트 ID, 이름, 프로젝트 번호를 제공합니다.

--filter 플래그를 사용하여 결과를 좁힐 수 있습니다. 이 플래그는 프로젝트 ID, 이름, 프로젝트 번호를 검색하고 필터링된 용어가 있는 결과만 반환합니다.

gcloud projects list --filter=test

위의 명령어는 소유자, 편집자, 뷰어 권한이 있고, 또한 이름, 프로젝트 ID, 프로젝트 번호 필드에 'test'라는 단어를 포함하는 모든 프로젝트를 반환합니다. 필터 구문에 대한 자세한 내용은 gcloud topic filters를 참조하세요.

API

요청:

GET https://cloudresourcemanager.googleapis.com/v1beta1/projects

{
    "name": "project a"
}

응답:

{
    "projects": [
    {
        "projectNumber": "951040570662",
        "projectId": "google.com:api-project-951040570662",
        "lifecycleState": "ACTIVE",
        "name": "project a",
        "createTime": "2013-11-13T20:31:53.308Z"
    }
    ]
}

다음 코드 스니펫은 빨간색 라벨이 있는 모든 프로젝트를 나열합니다.

요청:

GET
https://cloudresourcemanager.googleapis.com/v1beta1/projects

{
    "labels": {
    "color": "red"
    }
}

응답:

{
    "projects": [
    {
        "projectNumber": "350831539566",
        "projectId": "my-project-b",
        "lifecycleState": "ACTIVE",
        "name": "project b",
        "labels": {
            "color": "red"
        },
        "createTime": "2012-02-18T23:11:57.831Z"
    }
    ]
}

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

filter = "name:project a"
projects = crm.projects().list(filter=filter).execute()

...

다음 코드 스니펫은 빨간색 라벨이 있는 모든 프로젝트를 나열합니다.

filter = 'labels.color:red'
projects = crm.projects().list(filter=filter).execute()

프로젝트 업데이트

GCP Console 또는 projects.update() 메소드를 사용하여 프로젝트를 업데이트할 수 있습니다. 현재 업데이트할 수 있는 유일한 필드는 프로젝트 이름과 라벨입니다. gcloud 명령줄 도구 또는 API 요청과 함께 사용하는 프로젝트 ID 값은 변경할 수 없습니다. 프로젝트 업데이트에 대한 자세한 내용은 프로젝트 API 참조 페이지를 참조하세요.

콘솔

GCP 콘솔을 사용하여 프로젝트 필드를 업데이트하는 방법은 다음과 같습니다.

  • Google Cloud Platform 콘솔에서 설정 페이지를 엽니다.

    설정 페이지 열기

  • 화면 상단에서 프로젝트 선택 드롭다운 목록을 클릭합니다.
  • 선택 창이 나타나면 조직 드롭다운 목록을 클릭한 후 조직을 선택합니다.
  • 목록이 나타나면 프로젝트를 선택합니다.
  • 프로젝트 이름을 변경하려면 프로젝트 이름을 수정한 후 저장을 클릭합니다.
  • 라벨을 변경하려면 왼쪽 탐색 메뉴에서 라벨을 클릭합니다. 라벨 사용에 대해 자세히 알아보세요.

gcloud

프로젝트 이름을 업데이트하려면 gcloud projects update 명령어를 사용합니다.

gcloud projects update PROJECT_ID --name=NAME

여기서 PROJECT_ID는 업데이트할 프로젝트의 ID이고 NAME은 프로젝트에 할당할 새 이름입니다.

API

프로젝트를 업데이트하는 방법은 다음과 같습니다.

  • projects.get() 메소드를 사용하여 project 객체를 가져옵니다.
  • 업데이트할 필드를 수정합니다.
  • projects.update() 메소드를 사용하여 project 객체를 업데이트합니다.

다음 코드 스니펫은 프로젝트 이름을 'myproject'로 업데이트합니다.

요청:

    PUT https://cloudresourcemanager.googleapis.com/v1beta1/projects/my-project-123
    {
        "name": "myproject"
    }

응답:

    {
        "projects": [
        {
            "projectNumber": "951040570662",
            "projectId": "my-project-123",
            "lifecycleState": "ACTIVE",
            "name": "myproject",
            "createTime": "2013-11-13T20:31:53.308Z"
        }
        ]
    }

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().get(projectId=flags.projectId).execute()
project['name'] = 'myproject'
project = crm.projects().update(
projectId=flags.projectId, body=project).execute()

...

프로젝트 종료(삭제)

GCP Console 또는 projects.delete() 메소드를 사용하여 프로젝트를 종료할 수 있습니다.

이 메소드는 즉시 삭제할 프로젝트를 표시하고 프로젝트 소유자에게 알림 이메일을 보냅니다. 삭제로 표시된 프로젝트는 사용할 수 없습니다. 약 30일 후에 프로젝트가 완전히 삭제됩니다. 30일 기간 동안 이 프로세스를 중지하려면 프로젝트 복원 단계를 참조하세요.

30일 기간이 종료되면 프로젝트와 모든 리소스가 삭제되고 복구할 수 없습니다. 삭제될 때까지 프로젝트는 프로젝트 할당량에 반영됩니다.

프로젝트에 대한 결제를 설정한 경우 현재 결제 주기가 종료되고 계정에 요금이 청구될 때까지 프로젝트가 완전히 삭제되지 않을 수 있습니다. 사용 중인 서비스의 수와 유형이 시스템에서 프로젝트가 영구적으로 삭제되는 시점에 영향을 미칠 수 있습니다. 데이터 보관 및 안전한 삭제에 대해 자세히 알아보려면 Google에서 수집한 데이터를 보관하는 방법을 참조하세요.

프로젝트를 종료하려면 다음 사항에 유의하세요.

  • 프로젝트에 연결된 결제 계정이 없어야 합니다.
  • 프로젝트의 수명 주기 상태는 ACTIVE여야 합니다.

콘솔

GCP 콘솔을 사용하여 프로젝트를 종료하는 방법은 다음과 같습니다.

  • Google Cloud Platform 콘솔에서 설정 페이지(IAM 및 관리자 아래)를 엽니다.

    설정 페이지 열기

  • 프로젝트 선택을 클릭합니다.

  • 삭제할 프로젝트를 선택한 후 열기를 클릭합니다.

  • 종료를 클릭합니다.

  • 프로젝트 ID를 입력한 후 종료를 클릭합니다.

gcloud

프로젝트를 삭제하려면 gcloud projects delete 명령어를 사용합니다.

gcloud projects delete PROJECT_ID

여기서 PROJECT_ID는 삭제할 프로젝트의 ID입니다.

API

다음 코드 스니펫은 지정된 프로젝트를 삭제합니다.

요청:

DELETE
https://cloudresourcemanager.googleapis.com/v1beta1/projects/my-project-123

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().delete(projectId=flags.projectId).execute()

...

프로젝트 복원

프로젝트 소유자는 프로젝트가 종료될 때 시작되는 30일 복원 기간 내에 삭제된 프로젝트를 복원할 수 있습니다. 프로젝트를 복원하면 종료되기 전의 상태로 되돌아갑니다. Cloud Storage 리소스는 30일 기간이 종료되기 전에 삭제되고, 완전히 복원하지 못할 수 있습니다.

일부 서비스는 수동으로 다시 시작해야 할 수 있습니다. 자세한 내용은 Google Cloud Platform 서비스 다시 시작을 참조하세요.

프로젝트를 복원하는 방법은 다음과 같습니다.

  1. Google Cloud Platform 콘솔에서 리소스 관리 페이지로 이동합니다.

    리소스 관리 페이지로 이동

  2. 왼쪽 상단의 조직 드롭다운에서 조직을 선택합니다.

  3. 프로젝트 목록 아래에서 삭제 대기 중인 리소스를 클릭합니다.

  4. 복원할 프로젝트에 대한 체크박스를 선택한 후 복원을 클릭합니다. 대화상자가 나타나면 프로젝트를 복원할지 확인합니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Resource Manager 문서