IT 이야기/GCP

GCP Organization 설계 및 개념

클톡(CloudTalk) 2022. 6. 19. 12:03

리소스 계층 구조 정의

조직의 클라우드 인프라 관리자가 GCP를 처음 접했을 경우 가장 먼저 고민을 하게되는 내용으로, 기본적인 구조 안내 및 조직 서비스 환경에 맞는 리소스 계층 구조에 대한 여러 내용을 소개합니다.

 

기업 조직을 위한 권장사항 | 문서 | GCP

 

클라우드 인프라 관리자 입장에서는 다음과 같은 생각을 하게됩니다.

"우리 조직(회사)에 맞는 리소스 계층 구조는 무엇일까?" 우선 GCP 리소스 계층 구조는 정답이 없습니다, 정답을 GCP 에서 제시하지 않으며 각자의 조직환경에 맞는 구조를 인프라 관리자가 채택을 해야합니다, 하지만 그러한 과정에서 GCP를 처음 도입하게 되는 관리자 입장에서는 여러 고민을 하게됩니다, 그 고민들에 대한 여러 방향성을 제시해 드리기위해서 다음과 같이 리소스 계층 구조 소개 및 요구사항을 가정하여 조직환경에 맞는 리소스 계층 구조를 소개합니다.

리소스 구조

계층 구조의 최상위 노드는 조직(예: 회사)을 나타내는 조직 리소스입니다. 조직 리소스는 계층 구조 하위에 있는 모든 리소스를 중앙에서 보고 제어할 수 있게 해줍니다.
다음 계층 구조에는 폴더가 있습니다. 폴더를 사용하면 상위 조직의 여러 부서 및 팀에 대한 요구사항을 격리할 수 있습니다. 마찬가지로 폴더를 사용하여 프로덕션 리소스를 개발 리소스로부터 분리할 수 있습니다.
계층 구조 맨 아래에는 프로젝트가 있습니다. 프로젝트에는 앱을 구성하는 컴퓨팅, 스토리지, 네트워킹 리소스가 포함됩니다. 
진화하는 요구사항에 맞추어 구조를 유연하게 정의할 수 있습니다. GCP를 이제 막 시작했다면 초기 요구사항을 충족하는 가장 단순한 구조를 채택합니다. 자세한 내용은 Resource Manager 개요를 참조하세요.

 

리소스 계층 구조 정의 | 문서 | GCP에 기재된 내용을 인용하였으며, 이제부터 우리는 여러 요구사항을 가정하고 충족할수 있는 리소스 구조를 설계해보겠습니다.

 

요구 사항에 맞는 리소스 계층 구조 (1번)

조직 환경 요구 사항

  • 해외지사가 별도의 클라우드 운영 인력이 있어, 운영 분리가 필요
  • 조직내 여러 프로젝트에 대한 개발이 독립된 여러팀에서 이루어 지고 있음
  • 개발(외부개발/개발팀)과 운영(퍼블리셔/운영팀)하는 조직이 다름

계층 구조 설명

  • 최상단 기준으로 해외지사에 대한 운영 분리가 필요하여, 국가 코드를 이용한 1차 리소스 계층 분리
  • 개발/운영에 대한 분리가 필요하여, Live(외부/운영)/Dev(내부/개발)/Test(테스트)기준으로 2차 리소스 계층 분리
  • 조직내 여러 프로젝트에 대한 관리 주체가 달라, 프로젝트 및 서비스 기준으로 3차 리소스 계층 분리

고려 사항

항목 내용
IAM 관리 조직에서 팀 구성원에 대한 관리는 별도의 사내 시스템을 구축해서 운영을 하고 있으나, 프로젝트를 중심으로 진행할 경우 프로젝트에 투입되는 구성원에 대한 이력관리는 사내 시스템에서 정보를 얻기 힘들기 때문에, 지속적인 프로젝트성 구성원에 대한 지속적인 업데이트 및 관리가 필요합니다.
권한 상속
(공통)
IAM 정책은 조직, 폴더, 프로젝트, 리소스(일부 경우)에서 설정할 수 있습니다. 리소스는 상위 노드의 정책을 상속합니다. 조직 수준에서 정책을 설정하면 모든 하위 폴더로 정책이 상속되며, 프로젝트 수준에서 정책을 설정하면 모든 하위 리소스로 정책이 상속되어 조직 관리 체계 및 운영 정책 등을 사전에 고려하여 설계가 필요합니다.
조직 정책 이 모델의 중요한 이점은 Live/Dev/Test 조직 수준에서 조직 정책 적용이 가능해서 조직 보안팀의 정책에 맞게 폴더 수준에서 조직 정책 적용이 가능합니다.
(예: Live 폴더의 경우 조직 정책에서 GCS(Storage) 인터넷 접근 금지)
권한 분리 이 모델의 중요한 이점은 운영환경에 따라, 개발 및 운영 프로젝트가 분리 되어있어, 외부 및 내부 개발자에게 권한을 부여해야 하는 경우 최소된 권한으로 발급이 가능합니다.

추천 조직

조직 내용
게임사 프로젝트 중심의 인력 이동이 잦은 조직
- 여러 서비스를 여러 팀에서 개별 관리 하는 조직
- MSA 구조의 조직

 

요구 사항에 맞는 리소스 계층 구조 (2번)

조직 환경 요구 사항

  • 해외지사가 별도의 클라우드 운영 인력이 있어, 운영 분리가 필요
  • 팀에서 서비스 개발 또는 운영을 수행 하는 경우

계층 구조 설명

  • 최상단 기준으로 해외지사에 대한 운영 분리가 필요하여, 국가 코드를 이용한 1차 리소스 계층 분리
  • 지정된 팀에서 서비스 전체에 대한 개발/운영 등을 진행하기 때문에 팀별로 2차 리소스 계층 분리

고려 사항

항목 내용
조직 정책 GCP의 경우 Organization/Folders/Project 단위로 조직 정책 적용이 가능하기 때문에, 프로젝트 단위에서 개발/운영 등으로 분리되는 구조일 경우 조직 정책 파편화되어 관리가 어려울 수 있습니다.
권한 상속
(공통)
IAM 정책은 조직, 폴더, 프로젝트, 리소스(일부 경우)에서 설정할 수 있습니다. 리소스는 상위 노드의 정책을 상속합니다. 조직 수준에서 정책을 설정하면 모든 하위 폴더로 정책이 상속되며, 프로젝트 수준에서 정책을 설정하면 모든 하위 리소스로 정책이 상속되어 조직 관리 체계 및 운영 정책 등을 사전에 고려하여 설계가 필요합니다.
권한 관리 이 모델의 중요한 이점은 IAM에 대한 권한을 프로젝트가 아닌, 폴더 단위에서만 수행을 해도 된다는 점에 있습니다. 폴더 단위로 팀 그룹을 생성하여 관리할 경우 통일된 IAM 권한 관리가 가능합니다.

추천 조직

조직 내용
스타트업 하나의 서비스를 하나의 인프라 조직에서 관리하는 경우
- AI/ML 등 특정 서비스에 대해서만 특정팀이 사용하고 있을 경우

 

우리 조직에 맞는 리소스 계층 구조를 만들기 위한 체크 리스트

  1. 전체 조직을 대표하는 하나 Organization 영역을 설정합니다.
  2. Folders는 리소스 계층 구조에서 다음과 같은 매우 중요한 역할을 합니다.
    • 프로젝트 그룹화 (법인/해외지사/팀/개발부서/서비스)
    • 프로젝트 격리 (법인/해외지사/팀/개발부서/서비스)
  3. 위와 같은 역할을 최대한 고려해서 계층 구조를 만들고, 비즈니스(서비스/팀) 단위로 디자인 합니다.
  4. 위의 요구사항에 맞는 리소스 계층 구조를 섞어서 디자인을 해도되며, 현재 우리 조직의 환경을 최대한 고려해서 디자인 합니다.

참조 내용

항목 내용
권한 상속 모든 리소스(폴더/프로젝트)는 상위 계층으로 부터 권한을 상속 받습니다.
폴더 폴더는 최대 10수준까지 중첩할 수 있습니다, 상위 폴더는 300개를 초과하는 폴더를 포함할 수 없습니다,폴더 표시 이름은 계층 구조의 동일한 수준 내에서 고유해야 합니다.
프로 젝트 일반적으로 환경마다 애플리케이션당 하나의 프로젝트가 있는 것이 좋습니다.
(예를 들어 개발 및 프로덕션 환경에 각각 'app1'과 'app2'라는 2개의 애플리케이션이 있는 경우 4개의 프로젝트 즉, app1-dev, app1-prod, app2-dev, app2-prod가 생성됩니다.)
프로 젝트 이름 Console에서 프로젝트를 조회할 경우 상위 리소스에 대한 경로를 표시하지 않기 때문에 폴더 또는 프로젝트에서 이름을 정규화 하는것도 좋습니다.
(예: afolder-app1-dev / afolder-bfolders-app1-dev / afolder-app1-prod)
결제 계정 하나의 프로젝트는 하나의 결제 계정에만 연결될 수 있지만 결제 계정은 다수의 프로젝트와 연결이 가능합니다.
결제 계정 관리 조직에는 여러 결제 계정이 있을 수 있지만 중앙 결제 계정을 하나만 만드는 것이 좋습니다.
(기본적으로 약정 사용 할인은 할인을 구매한 프로젝트에만 적용이 가능하나, 약정 사용 할인 공유를 사용 설정하여 해당 결제 계정의 모든 프로젝트가 약정 사용 할인 계약을 모두 공유합니다.)
비용 프로젝트 단위에서만 발생되며, 대시보드 및 비용 분석도 프로젝트 단위에서 진행됩니다.
(폴더/프로젝트를 생성할 경우 비용은 발생되지 않습니다)

YouTube

클톡 유튜브 채널 바로가기 (링크)