Heroku Private Spaces는 민감한 데이터를 처리하고 높은 보안을 요구하는 애플리케이션을 위해 설계된 전용 환경이다. 이 환경들은 네트워크 제어, 데이터 보호, 그리고 다운 타임 없는 배포 등을 제공한다. 다음은 Heroku Private Space 와 관련된 주요 기능과 설정 방법에 대한 상세 설명이다.
Private Space 개요
Private Space는 Heroku Enterprise에서 제공하는 전용 가상 네트워크 환경이다. 이는 민감한 데이터를 처리하고 높은 보안을 유지해야 하는 애플리케이션을 위해 설계되었습니다.
주요 기능
- 네트워크 제어: 애플리케이션을 고정된 IP 주소로 온프레미스 또는 다른 네트워크와 안전하게 통신할 수 있도록 해줍니다.
- 데이터 보호: 기업 및 법률 거버넌스 표준에서 요구되는 데이터 보호 및 변경 관리의 엄격한 요구 사항을 충족합니다.
- 고정 IP 주소: 내의 모든 아웃바운드 트래픽은 고정된 IP 주소 목록을 통해 이루어집니다.
Private Space 생성 및 관리
- 대시보드 사용: Heroku 대시보드에서 팀의 Spaces 탭을 클릭하고 “Create new Private Space”를 선택합니다. 필요한 정보를 입력하고 “Create Private Space” 버튼을 클릭하면 새 Space가 10분 이내 생성
- CLI 사용: 터미널에서 명령어를 사용하여 Private Space를 생성할 수 있습니다
CIDR 범위 지정
사용하는 네트워크 주소 범위를 지정하여 다른 네트워크와의 충돌을 피할 수 있다.
예를 들어, 172.16.0.0/16
범위를 지정하여 이 범위 내의 IP 주소를 사용할 수 있다.
리전(regions) 선택
특정 리전(regions)에서만 생성할 수 있으며, 생성 후에는 리전을 변경할 수 없다. 예를 들어, 도쿄, 런던, 버지니아 등 다양한 리전(regions) 중 하나를 선택할 수 있다.
앱 배포 및 관리
다운타임 없는 롤링 배포
애플리케이션의 새로운 버전을 배포할 때, 기존 dyno의 일부만 교체하여 중단 없이 배포할 수 있습니다. 이를 통해 사용자에게 다운타임 없이 새로운 기능을 제공할 수 있습니다.
앱 가용성
애플리케이션의 가용성을 유지하기 위해 각 프로세스 유형별로 3개 이상의 dyno를 배포하는 것이 좋습니다. 이는 가용성 영역(AZ) 장애 시에도 애플리케이션 가용성을 유지하는 데 도움이 됩니다.
Shield Private Space
Shield Private Space는 고컴플라이언스(법규 준수/준법 감시/내부통제) 애플리케이션을 위해 추가적인 보안 기능을 제공한다. 예를 들어, 키로깅(Keystroke Logging) 등 여러가지 기능을 이용하여 규제 준수와 감사를 지원한다.
Shield Private Space : https://foryounme.co.kr/heroku%ea%b0%9c%eb%85%90%ec%a0%95%eb%a6%ac-2-shield-private-spaces/
애드온 및 리전 가용성
모든 애드온이 모든 리전(Regions)에서 사용할 수 있는 것은 아님.
특정 리전에서 사용할 수 있는 애드온이 있음.
Private Space Management
팀 관리자만 생성, 삭제 또는 수정할 수 있다
팀의 모든 구성원은 세부 정보를 볼 수 있다.
지역(Regions)
생성 가능 한 지역
- Dublin, Ireland
- Frankfurt, Germany
- London, United Kingdom
- Montreal, Canada
- Mumbai, India
- Oregon, United States
- Singapore
- Sydney, Australia
- Tokyo, Japan
- Virginia, United States
리전을 선택 하는 이유는 서비스 하는곳 과 가까운 지역을 선택하여 지연시간을 줄이는게 목적이다. (reduce latency)
네트워크 CIDR 범위 선택
다른 네트워크와 연결하려면 CIDR 범위를 지정하여 네트워크 충돌을 피할 수 있다.
신뢰할 수 있는 IP 범위(Trusted IP ranges)
팀 관리자만 신뢰할 수 있는 IP 범위를 관리할 수 있다. 신뢰할 수 있는 IP 범위는 CIDR 블록 표기법이다. 기본값은 0.0.0.0/0으로 전체 인터넷에서의 접근을 허용하고 신뢰할 수 있는 IP 범위는 대시보드나 CLI를 사용하여 관리할 수 있다.
고정 아웃바운드 IP 주소(Stable Outbound IP addresses)
Private Space 내의 모든 아웃바운드 트래픽은 고정된 IP 주소 목록을 통해 이루어집니다. 이를 통해 외부 서비스와의 통신을 더욱 안전하게 관리할 수 있습니다. 고정 아웃바운드 IP 주소는 대시보드의 설정 탭이나 CLI를 사용하여 확인할 수 있다.
Private Space 삭제
팀 관리자만 Private Space를 삭제할 수 있습니다. 삭제하기 전에 해당 Space에 있는 모든 애플리케이션과 리소스를 명시적으로 삭제해야 한다.
앱 가용성
애플리케이션의 가용성을 유지하기 위해 각 프로세스 유형별로 최소 3개의 dyno를 배포하는 것이 좋다. 이는 가용성 영역(AZ) 장애 시에도 애플리케이션의 가용성을 유지 하는데 좋다.
다운타임 없는 롤링 배포
애플리케이션의 첫 배포 시 몇 분의 시간이 걸릴 수 있습니다. 이후의 배포에서는 다운타임이 거의 없다.
롤링 배포 기능을 통해 다운타임 없이 배포가 가능하다. 다음 조건이 모두 충족되면 새로운 릴리스 동안 다운타임이 발생하지 않는다
- 앱이 한 번 이상 배포되어 실행 중임
- 최소 2개의 dyno가 있음
- 데이터베이스가 스키마 변경 없이 이전 릴리스와 호환됨
One-Off Dynos
한 번만 실행되는 dyno를 생성할 수 있다. 데이터 마이그레이션, 정기적인 처리작업, 테스트 등 비용 절감을 위해 사용.
맞춤 도메인 및 SSL 추가
팀 관리자와 앱에 대한 관리 권한이 있는 멤버만 사용자 지정 도메인을 추가하거나 SSL을 관리 한다. Space 내의 앱의 SSL 및 사용자 지정 도메인은 Common Runtime과 같은 방식이다.
Shield Private Space
Shield Private Space는 고컴플라이언스 애플리케이션을 위해 추가적인 보안 기능을 제공합니다. 예를 들어, 키로깅(Keystroke Logging) 기능을 통해 모든 사용자의 키 입력을 기록하여 규제 준수와 감사를 지원합니다.
애드온 및 리전 가용성
모든 애드온이 모든 리전에서 사용할 수 있는 것은 아닙니다. 특정 리전에서 사용할 수 있는 애드온을 확인하려면 Heroku의 애드온 런타임 가용성 페이지를 참조하십시오.
앱과 데이터를 마이그레이션
현재 자동으로 앱과 데이터를 마이그레이션하는 기능은 없지만 수동으로 마이그레이션할 수 있습니다. 데이터베이스를 백업하고 마이그레이션한 후, 앱 코드를 다시 푸시해야 합니다.
Transferring a Private Space
Enterprise 팀 간에 Private Space를 옮길 수 있다. 전송을 수행하는 사용자는 두 Enterprise 팀의 관리자이거나 회사의 Enterprise 계정에 대한 관리 권한필요.
기본 제한
- 20개의 신뢰할 수 있는 IP 범위
- 20개의 앱
- 프로세스 유형당 10개의 dyno
- Space 전체에서 100개의 dyno
Concurrent One-off Dyno Limits:
- Private-S dynos: 최대 5개
- Private-M dynos: 최대 5개
- Private-L dynos: 최대 5개
- Private-L-RAM dynos: 최대 5개
- Private-XL dynos: 최대 5개
- Private-2XL dynos: 최대 5개
출처 : https://devcenter.heroku.com/articles/private-spaces#transferring-a-private-space