클라우드 기반 소프트웨어 프로젝트에서는 여러 환경을 사용합니다. 이러한 환경은 보통 dev
, qa
, staging
, prod
와 같은 이름을 사용합니다.
이러한 환경은 서로 완전히 격리되어야 하며, 일반적으로 환경마다 서로 매우 다른 운영자 액세스 권한을 사용합니다.
예를 들어 개발팀은 dev
환경에 대한 전체 액세스 권한을 갖지만 모든 코드 배포가 자동화된 스크립트로만 이루어지는 등 prod
환경에 대한 액세스 권한은 제한적일 수 있습니다. 또한 서로 다른 환경의 데이터를 격리하여 유지하는 것이 매우 중요합니다.
여러 Google Cloud 프로젝트를 사용하면 프로젝트에서 코드와 데이터가 완전히 격리되고 운영자 권한을 별도로 관리할 수 있으므로 이러한 요구사항을 완벽하게 충족할 수 있습니다. App Engine에서는 제공 인스턴스가 자동으로 확장되므로 사용한 만큼만 비용을 지불하면 됩니다. 예를 들어 스테이징 환경이 4주 중에 1주만 필요하다면 나머지 3주에 대해서는 제공 인스턴스 비용을 지불하지 않습니다. 하지만 프로젝트에 저장된 데이터에는 요금이 청구됩니다.
환경 이름 지정
여러 서비스만 사용하여 마이크로서비스 애플리케이션을 만드는 경우에는 환경마다 하나씩 Google Cloud 프로젝트를 만들고 web-app-dev
, web-app-qa
, web-app-prod
와 같이 환경별로 이름을 지정할 수 있습니다.
또는 프로젝트 여러 개를 사용하여 마이크로서비스 애플리케이션을 만드는 경우에는 환경을 동일하게 분리할 수 있지만 web-app-dev
, web-app-prod
, user-service-dev
, user-service-prod
와 같이 더 많은 프로젝트를 사용해야 합니다.
dev
프로젝트는 다른 dev
프로젝트만 호출하고 prod
프로젝트는 다른 prod
프로젝트만 호출하도록 하려면 코드 패턴을 사용해야 합니다.
다음 단계
- App Engine의 마이크로서비스 아키텍처 개요를 확인합니다.
- 마이크로서비스 간 통신을 위한 API 설계 권장사항을 알아봅니다.
- 마이크로서비스 성능 권장사항을 알아봅니다.
- 기존 모놀리식 애플리케이션을 마이크로서비스를 사용하는 애플리케이션으로 마이그레이션하는 방법을 알아봅니다.