paint-brush
学習時間を短縮し、構築時間を増やそう: 安全なマイクロサービスの探求@johnjvester
1,341 測定値
1,341 測定値

学習時間を短縮し、構築時間を増やそう: 安全なマイクロサービスの探求

John Vester6m2024/05/28
Read on Terminal Reader

長すぎる; 読むには

安全なクラウド導入には、もはや独自のクラウド インフラ知識への投資は必要なく、チームはビジネスに合わせた実装が可能になります。安全なマイクロサービスの導入における AWS と Heroku の比較を詳しく見てみましょう。クラウド導入とインフラストラクチャ管理における戦略的な代替手段を提供する、コンプライアンスのための Heroku の Private Spaces と Heroku Shield の利点について学びましょう。
featured image - 学習時間を短縮し、構築時間を増やそう: 安全なマイクロサービスの探求
John Vester HackerNoon profile picture
0-item
1-item


2018 年に、私は自分の自由時間を利用して家族のビジネスの近代化を手伝うことを決めました。その過程で、 AWS の経験と理解を深めたいと考えました。


結局、私は自分の自由時間のほとんどを AWS クラウド インフラストラクチャの概念の学習に費やしていることに気付きました。当初考えていた最新のクラウドベースのソリューションの構築に集中できる時間は、ほんのわずかしか残っていませんでした。アプリの機能リクエストをさらに計画するにつれて、もっと良いアプローチが必要だと気づきました。


2020 年の初めに、私はHeroku を発見しました。基盤となるクラウド構成について心配する必要がなかったため、新しい機能の追加に時間を集中することができました。


Heroku エコシステムは私の単純なユースケースにはうまく機能しましたが、より複雑なユースケースについて考え始めました。支払い処理ソリューションのために、安全でプライベートなサービスの集合が相互にやり取りする必要があるシナリオはどうでしょうか?

このユースケースでは、3 大クラウド サービス プロバイダーのいずれかのエコシステム内で生活することを余儀なくされるのでしょうか? 調べてみます。


セキュアなマイクロサービスの現状

幸運なことに、私は数年間、 DevOpsライフサイクルを重視する環境で働くことができました。DevOps チームがクラウドに関するあらゆることを担当してくれたので、私は顧客のニーズを満たすマイクロサービスの設計と構築に集中することができました。


当時の私にとって、このような環境は例外であり、普通ではありませんでした。ブラウザで「クラウド インフラストラクチャの知識が不足している企業」を検索したところ、驚くべき結果がいくつか出てきました。


  • クラウドの専門知識が深刻に不足しています。
  • クラウド スキルの不足により、クラウド ネイティブ サービスのパフォーマンスに大きな影響が生じています。
  • クラウド セキュリティは 4 社中 1 社にとって課題です。


上位の検索結果では、クラウドの中核概念の理解不足と、チームが効果的に機能するための重要なトレーニングの必要性について語られていました。顧客の要求と成果物が優先されるため、ほとんどのチームに必要なトレーニングは、通常は後回しにされてしまいます。

現在のアプローチでは、ほとんどのクラウド実装は遅いペースで進むことを余儀なくされ、未知の脆弱性にさらされることが多くなります。


クラウド内のマイクロサービスのセキュリティ保護の現状は、満足できるものではありません。


安全なマイクロサービスの理想的な状態

クラウド ネイティブ ソリューションの理想的な状態は、私が数年前に確立した個人的なミッション ステートメントに準拠することになります。


「知的財産の価値を高める機能や特徴を提供することに時間を集中してください。他のすべてについてはフレームワーク、製品、サービスを活用してください。」

– 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 の活用

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 は、顧客の成功に重点を置いたクラウド導入の代替手段を提供することに専念してきた歴史があります。そのため、これは検討すべき長期的な戦略であると感じました。


本当に素晴らしい一日をお過ごしください!