トピック

マルチ/ハイブリッドクラウド時代のアプリケーション開発の在り方とは?

企業・組織のマルチ/ハイブリッドクラウド化が進む中、アプリケーション開発の進め方も激変した。その理由の1つが、クラウドネイティブな技術であるコンテナの急速な普及だ。アプリケーション開発におけるコンテナのメリットや課題、その対策について、次世代のネイティブクラウドプラットフォームである「Edge-to-Cloud セキュアコンテナプラットフォーム」を共同で提供するレッドハットの花田祐樹氏、F5 ネットワークスジャパンの小峰洋一氏、日本ヒューレット・パッカードの小池友岳氏に話を伺った。

Edge-to-Cloud セキュアコンテナプラットフォームの全体像
  • Edge-to-Cloud セキュアコンテナプラットフォームは、ハイブリッド/マルチクラウドな時代に最適な、次世代のクラウドネイティブプラットフォーム。Software Definedなネットワーク技術と、アプリケーションレベルのセキュリティをひとつのソリューションで提供することで、オンプレミス、エッジ、クラウドを問わず、アプリケーションやデータを配置可能になる。また、マルチクラウド、マルチクラスタのコンテナプラットフォームをシームレスに制御可能な、統合管理、自動化の機能を具備している。

コンテナがなぜ注目を集めているのか

――近年、多くの開発者から注目を集めているテクノロジーに「コンテナ」があります。改めて、コンテナに対して開発者の熱い視線が注がれている理由、もたらされるメリットについてお聞かせください。

花田: 一言でいえば、「アプリケーション開発が楽になる」ということに尽きます。コンテナが登場する以前の開発の現場を振り返ると、いくつもの仮想マシンを個別に立ち上げて設定し、展開するといった煩雑な作業を強いられてきました。しかし、コンテナを使えばそのような作業の多くを削減できるため、コードの記述といった開発のコアとなる部分に専念可能になります。つまり、開発に要する時間を大幅に短縮でき、ひいては、より品質の高いアプリケーション開発が行えることが、多くのエンジニアから評価されている理由であると考えています。

一方で、コンテナをエンタープライズ環境で活用するためには、可用性やスケーラビリティを備えたプラットフォームが必要となります。そうしたニーズを捉えて登場したのが、KubernetesやDocker Swarmです。特に最近では、Kubernetesの成熟度が進んだことも追い風となり、企業・組織におけるコンテナの活用を後押ししています。事実、ユーザーからはセキュリティの確保やアップデートサイクルなど、より具体的な質問が頻繁に寄せられるようになっており、実利用に向けた検討が進んでいるように感じられます。

レッドハット株式会社
APAC Office of Technology
Senior Technical Sales Black Belt
花田祐樹氏

――長年、企業・組織のシステム構築を手掛けてきた日本ヒューレット・パッカード(HPE)の立場からは、どのように捉えてられていますか。

小池: 「誰がコンテナを求めているのか」と言えば、やはり開発者の方々ですね。最終ゴールはOps(運用)の容易性の実現で、コンテナを用いると開発はもちろん、その後の運用も非常に楽になります。開発フェーズから運用フェーズにシステムを引き渡す際に、コンテナはパッケージングの単位として標準化しやすいというメリットを持っているので運用の統一を図りやすくなります。

また、アプリケーションがインフラに依存しなくなることもメリットで、コンテナには標準的なインターフェイスが用意されているため、オンプレミスのアプリケーションをそのままクラウドに持っていくことも可能です。逆に近年、様々なメガクラウドサービスで提供されているマネージド型Kubernetesサービスを利用して開発を行い、そこで出来上がったアプリケーションをオンプレミスに持ってきて動かす事例も見受けられます。これらのメリットから、コンテナの導入を検討するユーザーが増えているように思います。

日本ヒューレット・パッカード株式会社
Pointnext Hybrid IT COE Lead Architect
小池友岳氏

小峰: マーケットはスピードを求めています。企業が顧客に対してサービスを提供していくにあたり、競争優位性を維持するためには、市場からの様々な要求にいち早く応えていかなければなりません。特にスマートデバイスの進化に伴い、場所を問わずアプリケーションにどこからでもアクセスして利用できる環境となった現在では、サービスに対するニーズも日々、多様化しています。そうしたマーケットからの要求に応えられるサービスを素早く立ち上げるためにも、アプリケーション開発のスピードアップがますます求められています。

そうなると、サーバー、ネットワーク、ロードバランサーを並べて1つ1つ接続確認しながらスケールアウトさせていく、といったような従来型のモノリシックなアプリケーションでは、開発はもちろん、機能強化や不具合が発生した場合の修正にも時間がかかり過ぎます。対して、コンテナを導入しアプリケーションを機能ごとに独立させるとともに、開発者各々が得意な技術、言語を用いて開発を効率化すれば、アプリケーションのデプロイメントサイクルをより早く回していけるようになります。さらに、コンテナはDeclarative、つまり、宣言で定義した状態を維持するように、自律的に動作や制御を行ってくれることも大きなポイントです。このように、現在のマーケットが要求するスピードに応えられる手法であることが、企業から注目される大きな理由と考えています。

F5ネットワークスジャパン合同会社
ソリューションエンジニアリング本部
シニアソリューションエンジニア
小峰洋一氏

セキュリティの課題にはどう対処するのか

――その一方で、コンテナの活用が拡大していくのに伴い、どのような課題が浮上しているのでしょうか。

花田: 特に耳目に触れるのが、セキュリティです。従来の仮想マシンでは、セキュリティツールのエージェントを各ノードにインストールして、脆弱性や攻撃を検知していました。しかし、コンテナの場合、システムの構成によってはその数は膨大なものとなり、そのコンテナの1つ1つにエージェントをインストールしたり、管理したりするのは現実的ではなく、どう対処すればよいのか悩まれているユーザーは少なくありません。

――そうしたセキュリティ上の課題に対して、どのような解決策があるのでしょうか。

小峰: 開発時点からプログラムにセキュリティを確保させる、セキュアコーディングが求められています。しかし、当然セキュアコーディングが全てのアプリケーションに必要だとしても、コンテナ化によってアプリケーションが急増していく中ではやはり全てに対処していくのは困難であり、どうしても中には脆弱性を有するものが出てきてしまうのが現状です。同様に、すべてのアプリケーションをセキュアにしようとするならば、セキュリティに関する教育やトレーニングも必要となり、そのためのコストも増加することになります。当然必要なコストではありますが、人手による対応には限界があります。

そこでF5が提示している解決策が、「アプリケーションの中に最初からWeb Application Firewall(WAF)機能を含めて開発を行い、シフトレフトを実践しよう」というものです。そのためのソリューションとして、「NGINX App Protect」を提供しています。

コラム1:モダンなWebアプリケーションセキュリティを実現する「NGINX App Protect」
  • KubernetesのIngress(HTTPSのアクセスのインターフェイスを提供するオブジェクト)として圧倒的なシェアを誇るNGINXにおいて、WAF機能を提供するものが、「NGINX App Protect」。世界中で数多くの導入実績を有するF5製 WAFを移植した NGINX App Protectは、WAF用のPODを起動する必要がなく、Ingressで実行することで構成変更を行わずに利用できる。
  • NGINX App Protectを導入することで、開発プロセスを見直してシフトレフトを実現し、すべてのアプリにWAFを組み込むことで、開発エンジニアのセキュリティ意識を向上させ、インシデントに最速で対応できるようになる。

――NGINX App Protectの特長についてお聞かせください。

小峰: NGINX App ProtectはKubernetes上のNGINX Ingressコントローラーにアドオンするだけで、一切構成を変えることなく、コンテナにWAFの機能を実装させることができます。例えば、現場の方々が苦労していることの1つにLog4jの脆弱性対策が挙げられます。従来であれば、Log4jの脆弱性が発見された場合、セキュリティチームが開発チームに「どんなバージョンを使い、どんな設定を用いていたのか」という、ヒアリングを行ったうえで対策プランを策定、対応していました。

対して、NGINX App Protectを用いてNGINX IngressコントローラーにWAFを実装しておけば、新しいシグネチャを適用するだけでひとまずはLog4jへの攻撃をブロックできるようになります。我々のシグネチャセットはパッケージシステムとして配布されており、パッケージマネージャーで新しいシグネチャをインストールしたコンテナイメージを作成(CI)、それをローリングアップデートにより更新(CD)していくだけで済みます。また、NGINX App Protectは、Kubernetesのマニフェストファイルでセキュリティポリシーのチューニングを行うことも可能です。

まとめると、開発チームが普段行っているオペレーションの延長線でWAFを扱えるようになり、セキュリティチームからの指示により開発チーム自らが WAFをコントロールすることで、インシデントに最速で対応することができるようになるわけです。

――最初からWAFありきの開発プロセスを取り入れ、シフトレフトを実現していくというわけですね。一方で、レッドハットでは、コンテナ向けのセキュリティに対して、どのようなソリューションを提供しているのでしょうか。

花田: 「Red Hat Advanced Cluster Security for Kubernetes(ACS)」を提供しています。

コラム2:コンテナのライフサイクルの各フェーズで、セキュリティ対策を提供する「ACS」
  • 「Red Hat Advanced Cluster Security for Kubernetes(ACS)」は、レッドハットが提供するKubernetes向けのセキュリティ製品。
  • その特長は、コンテナイメージのビルド、デプロイ、稼働といったライフサイクルの各フェーズにおいて、セキュリティ対策を提供できる点にある。
  • 具体的にはコンテナの脆弱性スキャンを行うほか、プロセスにおける平常時と異なる挙動を検知。このほかにも、PCI、NIST、HIPAA、CIS等の各種コンプライアンスへの遵守状況をレポートする「ダッシュボード機能」も提供している。

ACSは、コンテナに適用させるセキュリティポリシーをユーザーが作成することも可能で、このポリシーを用いて、作成したコンテナイメージや、イメージをデプロイするための KubernetesのDeployment のマニフェストの内容をチェックすることもできます。

このほかにも、コンテナの通信のアクセス先やポートなど、正常な状態の通信先を基準値として記録、それから外れた通信を検知します。これはプロセスにおいても同様で、基準値としてコンテナ内で通常起動しているプロセスを記録しておき、それ以外のプロセスの起動を検知したり、例えばプロセス名を指定して、apt-get等のコンテナ内では通常実行されないパッケージ追加コマンド実行を検知したりすることも可能です。これらの機能群により、コンテナのライフサイクル全体を見据えたセキュリティを強化できるようになります。

――HPEがシステムインテグレーターとしてコンテナプラットフォームを企業・組織に提案していくにあたり、どのようなソリューションの提供に取り組んでいるのでしょうか。

小池: ご存じの通りHPEは、アプリケーションレイヤーのプロダクトを自社で保有していません。したがって、優れたアプリケーションレイヤーのソリューションを有する企業とのパートナーシップを推進するとともに、各社のソリューションを適材適所で組み合わせて提案しています。

オンプレミスのソリューションだけでなく、SaaS型サービスとして提供されているものもHPEのクラウドサービスに統合し、従量課金で提供できる「HPE GreenLake」のような仕組みも準備しています。コンテナセキュリティに関するソリューションも例外では無く、実際にSaaSと連携しマルチクラスタに展開するインテグレーションの実績があります。

コラム3:プラットフォームの場所を問わず、クラウドのエクスペリエンスを提供する「HPE GreenLake」
  • 「HPE GreenLake」は、オンプレミス、エッジ、クラウドを問わずアプリケーションやデータを活用可能とするプラットフォームサービス。ベンダー各社とのパートナーシップにより、他社アプリケーション、サービスともシームレスに連携する。F5XCやレッドハットのACS/ACMも、本サービスを介して展開予定だ。
  • さらにこれらのサービス群に加えて、システムの構築サービスの費用も含めて、従量課金の料金体系で利用できるため、スモールスタートも可能となっている。

IT基盤のさらなる複雑化にどう対処していくのか

――セキュリティに関する課題と解決策については分かりました。一方、冒頭で述べたように、近年ではマルチクラウド/ハイブリッドクラウドの活用が拡大しており、コンテナのマルチクラスタ化も進んでいます。そうした中、どのような課題が生じていますか。

小峰: マルチクラウド/ハイブリッドクラウドが拡大している背景には、アプリケーションのマイクロサービス化が進むことで、構成がより複雑化しているという状況があります。エッジやオンプレミス、クラウド、CDN等、様々な拠点にあるアプリケーションがAPIで連携し1つのサービスを提供しています。

この状況で課題となるのがネットワークとセキュリティです。マルチクラウドのネットワークを構成するためには、各クラウドのネットワーク技術に精通したエンジニアが必要となりますが、エンジニアの確保は容易ではありません。さらにエッジからクラウド全体、およびオンプレミスも含めた、統一されたセキュリティポリシーの適用も必要であり、ネットワークやセキュリティ、アプリケーションを統合して管理する仕組みが求められています。そうした課題に対してF5では、「F5 Distributed Cloud Services(F5XC)」を提供しています。

コラム4:ネットワークやセキュリティ、アプリケーションの統合管理を可能にするF5XC
  • 「F5 Distributed Cloud Services(F5XC)」は、セキュリティ、マルチクラウドネットワーク、エッジコンピューティングのソリューションをクラウド上で一元的に提供可能とするSaaSベースのプラットフォーム。
  • 単一のダッシュボードに統合されたクラウドネイティブなプラットフォームであるF5XCを利用することでネットワーク構成がシンプルになり、企業はサービス提供までの時間を短縮するとともにTCOを削減可能となる。
  • さらに、コンテナアプリケーションをF5XCの分散KubernetesプラットフォームであるF5XC AppStackにデプロイすることで、エッジでの容易なアプリケーション管理を実現することができる。

――F5XCは、どのような解決策をもたらすのでしょうか。

小峰: F5XCは、複雑化するアプリケーションやアプリケーションまでのパスを、シンプルに構築して運用することができます。ネットワークについて、エッジを含む各拠点に分散されているアプリケーションの出入り口に、分散型アプリケーションゲートウェイであるF5XC Meshというソフトウェアを配置するだけでマルチクラウドネットワークの構築が可能です。F5XC Mesh同士が自動的にIPsec/TLSトンネルを張り、セキュアにアプリケーション同士を接続します。ユーザーからのリクエストは F5XCグローバルネットワークに引き込まれ、アプリに届けられます。

セキュリティについては、WAFをはじめ、APIセキュリティ、Bot対策、DDoS対策といった多彩なテクノロジーを統合した、「F5 Distributed Cloud Web Application and API Protection(F5XC WAAP)」を提供しています。F5XC Meshを通過するトラフィックにはこのF5XC WAAPを適用することができ、すべての環境で同一のセキュリティポリシーを適用することが可能となります。

――マルチクラウド環境におけるセキュリティの確保と同様に、複数のプラットフォームにまたがってコンテナを利用する「マルチクラスタ」を適用していくにあたっても、そのセキュリティの維持や実際の運用管理には多くの困難が伴うと考えられます。対してレッドハットはどのような解決策を提示しているのでしょうか。

花田: 最近ではバージョンアップのための検証や準備、開発テストプロダクションなど、Kubernetesを運用していくに際してマルチクラスタを利用するケースが当たり前になりつつあります。しかし、Kubernetes自体に詳細な設定を施す必要があるだけでなく、各クラスタ内でもnamespaceという概念によりアプリケーションが使用する領域が数多く区分けされており、それぞれに共通化されたポリシーを適用したり、あるいは個別にポリシーを設定したりするのは、とても大変な作業です。

そうしたポリシーの一括管理を可能とするソリューションとして、レッドハットは「Advanced Cluster Management for Kubernetes (ACM)」を提供しています。

コラム5:コンテナのマルチクラスタに統一したポリシーの適用を実現する「ACM」
  • 「Red Hat Advanced Cluster Management(ACM)」は、マルチクラスタの統合管理を可能とするソリューション。クラスタの作成・削除・アップグレードのリモートによる実行や、管理対象クラスタへの統一されたポリシーの適用、クラスタのグループ化、AWSとGCP上のOpenShiftクラスタについては仮想ネットワークを使った統合も可能にする(Azure、VMware等については、本原稿時点でTechnology Preview)。
  • さらに管理対象のクラスタのモニタリング機能、クラスタを横断したリソースの検索機能等も提供、マルチクラスタの可視化を実現する。単体製品、もしくは、エンタープライズKubernetes環境を簡単に構築するためのパッケージ製品「OpenShift Platform Plus(OPP)」の一部として提供されている。

また、一般に開発用に使われるコンテナの場合、「開発案件が終了したならばすぐに廃棄したい」というニーズが少なからずあります。ACMはAWSやAzure、Google Cloud Platform、さらにはVMware vSphereのマネージドクラスタに対応するAPIを用意しており、それぞれのプラットフォームにおいて、コンプライアンスポリシーをすべて適用済のクラスタをゼロから作成できるだけでなく、必要がなくなったら一括して廃棄することも可能です。

さらにレッドハットは、「Red Hat OpenShift Platform Plus(OPP)」という製品も提供しています。これは、OpenShiftを稼働させるための基盤である「OpenShift Container Platform」をはじめ、前述したACSおよびACMのほか、 Software Defined Storageを構成する「OpenShift Data Foundation(ODF)」、スケーラブルでより安全性の高いコンテナレジストリを提供する「Quay」といった個別の製品群をパッケージ化したものです。 Kubernetesの運用に必要になるソフトウェアが網羅されており、かつ、価格も個別に購入するよりも大幅に安価であるため、Kubernetes導入時のソフトウェアの選定作業を軽減できるようになります。

小池: 今や、様々なクラウドサービスやデータセンター、オンプレミス環境がシームレスに連携できなければ、1つのサービスとして成り立たない時代を迎えています。これまでは、サービスやプラットフォームごとに異なるポリシーを統合して繋ぎ合わせることに多くの労苦とコストを強いられていました。しかし、企業として統一したポリシーを適用していくにあたり、共通化されたフレームワークが提供されていれば、簡単に展開できるようになります。そうしたことからHPEでは、F5XCやレッドハットのACMがセキュアで運用効率性に優れたマルチクラウド環境の実現に最適なソリューションと考えており、企業への提案を進めています。

すべてのサービスをマネージド型で提供

――マルチクラウド・ハイブリッドクラウド環境において、適切なコンテナ運用やセキュリティ確保はユーザー企業・組織にとってまだまだ困難なチャレンジであるのが現状です。ベンダー各社からは今回紹介されたようなソリューションも提供されていますが、その選定から導入、運用に至るまで、考慮すべき点は多岐に亘り、かつ、コストの大幅な増加等も予期されることから、導入に二の足を踏む企業は少なくないと思われます。このような課題に対して、HPEはどのような解決策を提示しているのでしょうか。

小池: やはり企業は様々な環境の変化にも柔軟に対応可能なIT基盤を実現するために、オンプレミスと多彩なクラウドサービスを適材適所で組み合わせたプラットフォームを実現したいと考えています。これから起業するようなベンチャー企業であれば話は別ですが、多くの企業は、すでに所有しているIT資産を活用しつつ、新しいビジネスプラットフォームへのトランスフォーメーションを目指しています。そうしたニーズに応えるものが、先程お話した「HPE GreenLake」という従量課金型サービスと「HPE Pointnext」というアドバイザリー&コンサルティングサービスを担う組織です。

HPE Pointnextは、企業や組織のデジタルトランスフォーメーションをトータルに支援するサービス組織です。世界200カ国、1万5,000人を超えるITプロフェッショナルが、豊富な実績とナレッジに基づくコンサルティングから、構築サービス、運用保守サービスに至るまでトータルに提供しています。

今回ご一緒させていただいている、F5、レッドハットとはグローバルパートナーであり、F5の F5 BIG-IP、NGINXや Shape Securityなど、レッドハットのOpenStack、AnsibleやOpenShiftなどの実装経験が数多くあります。あまり3社の関係をご存知ないお客様が多いのですが、実は何度かアワードを受賞させていただいているほど深いパートナーシップがあります。

「HPE GreenLake」では、オンプレミスやプライベートクラウド上のアプリケーションも、パブリッククラウドによって提供されるサービスもすべて統合され、かつ従量課金によるサービスとして提供します。アプリケーションレイヤーのソリューションについても、ベンダー各社とのパートナーシップにより、事前に「HPE GreenLake」上に統合し、オンプレミスであってもクラウドであっても利用可能にしています。さらにKubernetesなどのコンテナ基盤にも本サービスに乗せて、従量課金で使えるようにします。いわゆるマネージドサービスのようなものですね。

F5のXCや、レッドハットのACM、ACSといったソリューションも今後「HPE GreenLake」上で展開していきます。これにより、マルチ/ハイブリッドクラウド、およびマルチクラスタ環境を導入したい企業に対して、最適なソリューションを選択、あるいは組み合わせて提供することが可能であるほか、細かな調整も行えます。例えば、Kubernetesをデータセンターやマルチクラウドで展開している企業にはACMを提案する一方で、さらにそれらを接続するネットワーク基盤を保有し、そこでのセキュリティも強化したい場合には併せてF5XCを提案する、といった柔軟な対応が行えるようになるわけです。

――このような多岐に亘るソリューションを統合するとともに、従量課金により導入の敷居を下げようというわけですね。

小池: おっしゃる通りです。HPEではコスト最適化を実現していくためにはオンプレミスとパブリッククラウドの適材適所での使い分けが重要で、無理にオンプレミスのシステムを無くす必要はないと考えています。また、「HPE GreenLake」ではこれらのシステムの構築サービスの費用も従量課金に含めることが可能です。

さらにもう一つ重要なのは、将来を見据えたマルチクラウド戦略のためには、アプリケーションの移行やセルフサービス化にも目を向ける必要があるということです。プラットフォーム目線では、F5XCやACS/ACMにより、様々な要件で分散、多様化したクラウド間のセキュアなコネクティビティの一元管理を実現しつつ、コスト効率や、デプロイメントの最適化のために、最も効率の高いクラウドサービスを評価・選択し、セルフサービス化を行う「Morpheus」のようなソリューションを検討すべきです。

また、モノリシックなアプリケーションをマイクロサービス化して最適にクラウドへ移行するに際し、リスクやコストを評価しリファクタリングを行う、「vFunction」といった付加価値ツールもその必要性が高まってきています。

コラム6:多彩なクラウドでの自動プロビジョニングを提供する「Morpheus」と、アプリケーションのマイクロサービス化を支援する「vFunction」
  • Morpheusは、IT運用担当者および開発者に、オンプレミスやパブリッククラウドで実行される多層アプリケーションスタック全体の完全セルフサービスによる自動プロビジョニング機能を提供することでビジネスパフォーマンスを向上させる。
  • vFunctionはアプリケーション・モダナイゼーション実現のための最適解。モノリシックなJavaアプリケーションをマイクロサービス化するためのアナライザ&リファクタリング・ツールを備え、ミッションクリティカルなアプリケーションのCloudネイティブ化にも有効となっている。

このように、クラウドネイティブなテクノロジーの導入には、多角的な視点で、複数の技術やベンダーを見極めて、適材適所で組み上げていくアーキテクト能力が重要になります。また、そのアーキテクチャーは不変的なものではなく、お客様のビジネス環境に合わせて常に変化させていく必要があります。従量課金型でスモールスタート、まずは小さな第一歩を踏み出しながら、最適なテクノロジーとセキュリティ対策を常に施してゆく、そういった営みを、HPEは F5、レッドハットとともに支援していきます。