2018 年に、私は自分の自由時間を利用して家族のビジネスの近代化を手伝うことを決めました。その過程で、 AWS の経験と理解を深めたいと考えました。
結局、私は自分の自由時間のほとんどを AWS クラウド インフラストラクチャの概念の学習に費やしていることに気付きました。当初考えていた最新のクラウドベースのソリューションの構築に集中できる時間は、ほんのわずかしか残っていませんでした。アプリの機能リクエストをさらに計画するにつれて、もっと良いアプローチが必要だと気づきました。
2020 年の初めに、私はHeroku を発見しました。基盤となるクラウド構成について心配する必要がなかったため、新しい機能の追加に時間を集中することができました。
Heroku エコシステムは私の単純なユースケースにはうまく機能しましたが、より複雑なユースケースについて考え始めました。支払い処理ソリューションのために、安全でプライベートなサービスの集合が相互にやり取りする必要があるシナリオはどうでしょうか?
このユースケースでは、3 大クラウド サービス プロバイダーのいずれかのエコシステム内で生活することを余儀なくされるのでしょうか? 調べてみます。
幸運なことに、私は数年間、 DevOpsライフサイクルを重視する環境で働くことができました。DevOps チームがクラウドに関するあらゆることを担当してくれたので、私は顧客のニーズを満たすマイクロサービスの設計と構築に集中することができました。
当時の私にとって、このような環境は例外であり、普通ではありませんでした。ブラウザで「クラウド インフラストラクチャの知識が不足している企業」を検索したところ、驚くべき結果がいくつか出てきました。
上位の検索結果では、クラウドの中核概念の理解不足と、チームが効果的に機能するための重要なトレーニングの必要性について語られていました。顧客の要求と成果物が優先されるため、ほとんどのチームに必要なトレーニングは、通常は後回しにされてしまいます。
現在のアプローチでは、ほとんどのクラウド実装は遅いペースで進むことを余儀なくされ、未知の脆弱性にさらされることが多くなります。
クラウド内のマイクロサービスのセキュリティ保護の現状は、満足できるものではありません。
クラウド ネイティブ ソリューションの理想的な状態は、私が数年前に確立した個人的なミッション ステートメントに準拠することになります。
「知的財産の価値を高める機能や特徴を提供することに時間を集中してください。他のすべてについてはフレームワーク、製品、サービスを活用してください。」
– J. ベスター
このような状況では、クラウド ネイティブ ソリューションを推進する指示を持つ人は、企業目標に沿ったペースで前進できる必要があります。基盤となるクラウド インフラストラクチャに関連する学習曲線によって、その動きが遅れるべきではありません。
では、複数のマイクロサービスを含むクラウド ソリューションに直面し、それらすべてを一般から分離し、コンプライアンス規制 (SOC、ISO、PCI、HIPAA など) に準拠する必要がある場合、これはどのように見えるでしょうか。
2020 年の Heroku の経験は好意的でした。そこで、この複雑なユースケースで Heroku がどのように機能するかを確認したいと思いました。そのときにPrivate Spacesを発見しました。
プライベート スペースは 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 を使用すると、プライベート スペースと Heroku Shield を起動して実行できます。Heroku では、これはShield Private Spaceと呼ばれます。ここでは、プロセスを実行するための高レベルの例をいくつか示します。
新しい Shield プライベート スペースを作成するには、 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) の範囲が必要な場合は、 --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 社のクラウド プロバイダーのいずれかを使用している場合、このギャップを埋めるには代償が伴います。おそらく、製品所有者が期待するタイムラインに間に合わないでしょう。
安全なクラウド展開のためのより良い選択肢はあるでしょうか? Private Spaces と Heroku Shield の組み合わせは、そのより良い選択肢を表していると思います。私個人としては、Heroku が Salesforce のソリューション プラットフォームの一部であることも重要です。Salesforce は、顧客の成功に重点を置いたクラウド導入の代替手段を提供することに専念してきた歴史があります。そのため、これは検討すべき長期的な戦略であると感じました。
本当に素晴らしい一日をお過ごしください!