2018년에 저는 여가 시간을 사용하여 가족 구성원의 사업을 현대화하는 데 도움을 주기로 결정했습니다. 그 과정에서 AWS에 대한 경험과 이해를 얻고 싶었습니다.
궁극적으로 저는 자유 시간의 거의 대부분이 AWS 클라우드 인프라 개념을 배우는 데 소비되었다는 사실을 발견했습니다. 원래 염두에 두었던 현대적인 클라우드 기반 솔루션을 구축하는 데 집중할 수 있는 시간이 얼마 남지 않았습니다. 앱에 대한 더 많은 기능 요청을 계획하면서 더 나은 접근 방식이 필요하다는 것을 깨달았습니다.
2020년 초, 저는 Heroku를 발견했습니다. 기본 클라우드 구성에 대해 걱정할 필요가 없었기 때문에 새로운 기능을 추가하는 데 시간을 집중할 수 있었습니다.
Heroku 생태계는 저의 간단한 사용 사례에는 훌륭하게 작동했지만, 좀 더 복잡한 사용 사례에 대해 궁금해지기 시작했습니다. 결제 처리 솔루션을 위해 보안 및 비공개 서비스 모음이 서로 상호 작용해야 하는 시나리오는 어떻습니까?
이 사용 사례로 인해 제가 3대 클라우드 서비스 제공업체 중 하나의 생태계에 살게 될까요? 나는 알아낼 것이다.
몇 년 동안 저는 DevOps 라이프사이클을 중시하는 환경에서 일할 수 있었던 행운을 누렸습니다. DevOps 팀이 저를 위해 클라우드의 모든 것을 처리해 주었기 때문에 저는 고객의 요구 사항을 충족하는 마이크로서비스를 설계하고 구축하는 데 집중할 수 있었습니다.
내 인생의 그 기간 동안 이러한 환경은 표준이 아닌 예외였습니다. 방금 브라우저에서 "클라우드 인프라 지식이 부족한 회사"를 검색했는데 그 결과 꽤 놀라운 결론이 나왔습니다.
상위 검색 결과에서는 핵심 클라우드 개념에 대한 이해 부족 과 팀의 효율성을 위한 중요한 교육 의 필요성이 언급되었습니다. 대부분의 팀에 필요한 교육은 일반적으로 고객의 요구와 결과물이 더 높은 우선순위를 가지기 때문에 무시됩니다.
이러한 현재 접근 방식을 사용하면 대부분의 클라우드 구현이 더 느린 속도로 진행되어야 하며 알 수 없는 취약점에 노출되는 경우가 많습니다.
클라우드에서 마이크로서비스를 보호하는 현재 상태는 만족스럽지 않습니다.
클라우드 네이티브 솔루션의 이상적인 상태는 제가 몇 년 전에 확립한 개인 사명 선언문을 준수하는 것입니다.
“지적 재산의 가치를 확장하는 특징/기능을 제공하는 데 시간을 집중하십시오. 다른 모든 것에 프레임워크, 제품, 서비스를 활용하세요.”
– J. 베스터
이러한 맥락에서 클라우드 네이티브 솔루션을 지향하려는 방향을 가진 사람들은 기업 목표에 부합하는 속도로 움직일 수 있어야 합니다. 기본 클라우드 인프라와 관련된 학습 곡선으로 인해 속도가 느려져서는 안 됩니다.
그렇다면 모든 마이크로서비스가 대중으로부터 격리 되고 규정 준수(예: SOC, ISO, PCI 또는 HIPAA)를 준수 해야 하는 여러 마이크로서비스를 포함하는 클라우드 솔루션에 직면했을 때 이는 어떤 모습일까요?
나의 2020년 Heroku 경험은 긍정적이었습니다. 그래서 저는 이것이 이 복잡한 사용 사례에서 어떻게 작동하는지 보고 싶었습니다. 그때 나는 개인 공간을 발견했습니다.
개인 공간은 Heroku Enterprise의 일부로 제공됩니다. 격리된 네트워크 내에서 마이크로서비스를 실행하기 위한 전용 환경입니다. 이 접근 방식을 통해 팀은 공용 인터넷에 노출되지 않는 네트워크에 서비스를 배포할 수 있습니다. 내부적으로 이러한 서비스는 기본 사용 사례와 정확히 동일하게 작동합니다. Heroku CLI를 통해 이를 설정할 수 있으며 간단한 Git 기반 명령으로 배포를 트리거할 수 있습니다.
규정 준수 요구 사항의 경우 Heroku Shield를 사용하여 PCI DSS, HIPAA, ISO(27001, 27017, 27018) 및 SOC(1, 2, 3)를 준수할 수 있습니다.
높은 수준에서 Heroku를 사용하면 다음과 같이 설명할 수 있는 안전한 클라우드 네이티브 디자인을 구현할 수 있습니다.
여기에는 개인 공간 내에서 Heroku Shield를 모두 활용하는 구현이 있습니다. 이를 통해 다양한 프로그래밍 언어를 활용하는 마이크로서비스 모음이 모든 주요 기본 및 보조 카드 네트워크와 상호 작용하는 동시에 다양한 규정 준수 요구 사항을 준수할 수 있습니다. 또한 Salesforce 플랫폼 및 GitLab과 안전하게 통신할 수 있습니다.
Heroku CLI를 사용하면 Private Space와 Heroku Shield를 가동하고 실행할 수 있습니다. Heroku에서는 이를 Shield Private Space 라고 합니다. 다음은 프로세스를 진행하는 데 도움이 되는 몇 가지 고급 예입니다.
새로운 Shield Private Space를 생성하려면 spaces:create
사용하고 --shield
옵션을 추가합니다.
$ heroku spaces:create payment-network --shield --team payments-team --region oregon Creating space payment-network in team payments-team... done === payment-network Team: payments-team Region: oregon State: allocating
사용 사례에 CIDR(Classless Inter-Domain Routing) 범위가 필요한 경우 --cidr
및 --data-cidr
플래그를 사용할 수 있습니다.
제가 오리건 지역에 개인 공간을 만들었다는 것을 알 수 있을 것입니다. 사용 가능한 10개 지역 (미국, 유럽, 아시아 및 호주) 중 하나에 비공개 공간을 만들 수 있습니다. 사용 가능한 지역 목록을 보려면 다음을 수행하세요.
$ heroku regions ID Location Runtime ───────── ─────────────────────── ────────────── eu Europe Common Runtime us United States Common Runtime dublin Dublin, Ireland Private Spaces frankfurt Frankfurt, Germany Private Spaces london London, United Kingdom Private Spaces montreal Montreal, Canada Private Spaces mumbai Mumbai, India Private Spaces oregon Oregon, United States Private Spaces singapore Singapore Private Spaces sydney Sydney, Australia Private Spaces tokyo Tokyo, Japan Private Spaces virginia Virginia, United States Private Spaces
payment-network
프라이빗 공간에서 실행해야 하는 각 마이크로서비스에 대해 apps:create
명령을 실행할 때 --space
옵션을 추가하기만 하면 됩니다.
$ heroku apps:create clearing-service --space payment-network Creating app... done, clearing-service
소비자에게 payment-network
공간에 대한 액세스 권한을 부여하기 위해 신뢰할 수 있는 IP의 허용 목록을 유지 관리할 수 있습니다.
$ heroku trusted-ips:add 192.0.2.128/26 --space payment-network Added 192.0.2.128/26 to trusted IP ranges on payment-network ▸ WARNING: It may take a few moments for the changes to take effect.
팀은 종종 클라우드 네이티브 접근 방식을 채택하라는 지시를 위에서부터 받습니다. 그러나 많은 팀은 보안 클라우드 아키텍처 배포와 관련하여 심각한 이해 격차를 갖고 있습니다. 3대 클라우드 제공업체 중 하나를 사용하는 경우 이러한 격차를 해소하려면 제품 소유자가 예상하는 일정을 놓칠 가능성이 있는 대가를 치르게 됩니다.
안전한 클라우드 배포를 위한 더 나은 옵션이 있습니까? Heroku Shield와 결합된 Private Spaces가 더 나은 옵션이라고 생각합니다. 개인적으로 Heroku가 Salesforce의 솔루션 플랫폼의 일부라는 점도 중요합니다. Salesforce는 고객의 성공에 초점을 맞춘 클라우드 채택 대안을 제공하기 위해 헌신해 온 역사를 가지고 있습니다. 그래서 저는 이것이 장기적으로 고려해야 할 전략이라고 느꼈습니다.
정말 좋은 하루 보내세요!