Heroku는 클라우드 애플리케이션을 쉽게 배포, 관리, 확장할 수 있게 해주는 플랫폼입니다. 이 블로그에서는 Heroku의 개념, 기능, 장점, 사용 등 Heroku개념정리 글입니다.
stdout , stderr
standard out (stdout) or standard error (stderr).
앱이 표준 출력( stdout) 또는 표준 오류( stderr) – 어느 언어에서나 쓰는 출력문
Log Drains
Log drain은 Heroku에서 애플리케이션 로그를 외부 서비스로 전송하여 저장하고 분석할 수 있게 하는 기능
2가지 전송방법이 있음
Syslog Drains : TCP프로토콜을 통한전송 (예 : heroku drains:add syslog+tls://logs.example.com:12345 -a myapp)
HTTPS Drains : HTTPS를 통한 전송
HIPAA
(HIPAA, Health Insurance Portability and Accountability Act)
미국에서 의료 정보의 기밀성을 보호하고 보안 표준을 규정하는 법
( 헤로쿠랑 관련없지만 보안으로 헤로쿠 문서에 종종 등장 )
Private Space
독립적인 네트워크 환경 제공
(설치 지역 선택 가능 , VPN 제공 등 )
https://www.heroku.com/private-spaces
Shield Private Space
고급 보안 및 규정 준수를 위한 공간
https://www.heroku.com/shield
Internal Routing
Heroku의 Private Space 내에서 애플리케이션 간의 통신을 외부 네트워크 트래픽 없이 안전하게 처리하는 기능
이 기능을 활성화하면 앱의 web 프로세스는 외부 트래픽을 받지 않음
(Private Space 내부 또는 피어링된 VPC나 VPN 연결 내에서만 트래픽을 수신)
기존 앱에서 Internal Routing을 활성화할 수 없음 이라고 함
???그럼 중간엔 못바꾼다는 얘기인듯?
Heroku Dataclips
Heroku Postgres 데이터베이스에서 실행한 SQL 쿼리 결과를 쉽게 공유할 수 있는 기능
SQL 쿼리를 작성하여 저장하고 결과를 URL로 공유할 수 있음
공유를 받은 사람은 브라우저에서 데이터를 확인하고 JSON 또는 CSV 형식으로 다운로드 가능
Heroku single Sign-on (SSO)
확인 필요 #5
Heroku의 SSO는 현재 Heroku Enterprise 고객에게만 제공됨
필수요건
회사 ID 공급자(IdP)에서 SAML 2.0 표준을 지원(identity provider (IdP) must support the SAML 2.0 standard.)
IdP에 대한 관리 권한이 필요합니다. (administrative permissions on the IdP.)
IdP 수준에서 다중 요소 인증(MFA)을 적용해야 합니다.(You must enforce multi-factor authentication (MFA) at the IdP-level.)
필수 요건이 무엇인가? 라고 생각한다면
(Heroku를 내장 지원하는 기본 제공자)
그럼 다음 주요 IdP는 Heroku 지원을 내장적으로 제공하는 것 외에는 불가능한가?
기타 SAML 2.0 호환 IdP의 SSO 구성 <- SAML 2.0 만 맞추면 가능 한 것 같다.
https://devcenter.heroku.com/ja/articles/using-sso-services-with-heroku
Private Space VPN connections
Heroku Private Spaces 및 Heroku Shield Spaces에서는
다른 사설망에 대한 연결을 가능
Private Space VPN Connections
VPN(가상 사설망)은 안전한 인터넷 연결을 제공하는 기술
집에서 회사의 네트워크에 접속할 때 사용하는 방법
VPN 터널을 통해 두 네트워크 간의 데이터를 주고 받는다
Heroku에서 실행되는 앱이 GCP에 있는 데이터베이스에 접속해야 할 때 연결 ( 공용 인터넷을 통해 안전하게 전송 )
Private Space Peering
두 개의 네트워크를 직접 연결하는 방법입니다. 이는 공용 인터넷을 거치지 않고 바로 연결되기 때문에 더 빠르고 안전한 통신을 제공합니다. 지연 시간을 줄이고 보안을 강화할 수 있음
확인필요 #13
초단위의 스케일링이 가능 하려면 당연히 자동이여야 할거라 생각했음.
근데…문서가 좀?
https://devcenter.heroku.com/articles/scaling#scaling-from-the-dashboard
수초단위로 계속 변경하고싶으면 냅다 수동으로 해야 하는 듯함
그럼 Common Runtime 을 사용해도 되는 게 아닐까
Heroku Redis
redis의 heroku 버전
Redis는 오픈 소스 인메모리 데이터 구조 저장소
다양한 데이터 구조(스트링, 리스트, 셋, 해시 등)를 지원
주로 데이터 캐싱, 세션 저장, 메시지 큐 및 실시간 분석에 사용됨
follower database
reader 데이터베이스를 복제하여 follower 데이터베이스를 생성한다
이 follower 데이터베이스는 reader 데이터베이스의 모든 데이터를 실시간으로 동기화함
읽기 작업의 부하를 분산시킨다.
리더 데이터베이스에 장애가 발생했을 때 팔로워 데이터베이스를 사용할 수 있다.
여러 개의 팔로워 데이터베이스를 생성하여 읽기 성능을 더 확장할 수 있다.
External ID
External ID는 Salesforce에서 고유한 레코드 식별자로 사용됩니다.
Salesforce와 외부 시스템 간 데이터 일관성을 유지하는 데 도움을 줍니다.
Heroku Connect에서 부모-자식 관계를 쉽게 설정 가능 ( 결국 고유 키라는 얘기 )
External Object
(헤로쿠가아니고 salesforce 쪽이지만)
Salesforce 외부의 데이터를 실시간으로 조회하고 사용하기 위해 사용함
Salesforce Connect를 통해 외부 시스템에 연결하여 마치
Salesforce 내부 데이터처럼 액세스할 수 있음.
Automated Certificate Management
SSL/TLS 인증서를 자동으로 등록하고 갱신하는 기능
Let’s Encrypt를 사용함.
(eco dyno만 사용 불가)
https://devcenter.heroku.com/ja/articles/automated-certificate-management
Heroku SSL
사용자가 자신의 SSL/TLS 인증서를 업로드하여 사용하는 기능
Eco dyno를 사용하는 앱에서는 연결된 내장 .herokuapp.com인증서만 사용할 수 있지만
ACM을 사용하거나 사용자 지정 도메인의 인증서를 수동으로 업로드할 수는 없음.