Google Cloud、Dockerコンテナをサーバレス化するCloud Runの第二世代実行環境が正式版に。すべてのLinuxの機能と互換、ファイルサーバへのマウントも可能
今回は「Google Cloud、Dockerコンテナをサーバレス化するCloud Runの第二世代実行環境が正式版に。すべてのLinuxの機能と互換、ファイルサーバへのマウントも可能」についてご紹介します。
関連ワード (公開、環境、自動的等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Googleは、Dockerコンテナをサーバレスで実行するCloud Runの第二世代実行環境と、Cloud Runの新機能であるCloud Run Jobsが正式版になったことを明らかにしました。
Cloud RunはHTTPSリクエストをトリガーとしてDockerコンテナを実行するサーバレス基盤です。
すなわち、HTTPリクエストがない場合にはDockerコンテナは起動されず、HTTPリクエストに応じて自動的に多数のコンテナが起動するスケーラビリティが特長です。Dockerコンテナであれば、どんな言語で作られたサービスであっても関係なく利用できる柔軟さを備えています。
課金もおよそ100ミリ秒ごとに、起動しているサービス数などによって計算されます。
Cloud RunはKubernetes上でサーバレスコンピューティング環境を実現するフレームワークとしてGoogleがオープンソースで開発しているKnativeをベースにしています。
第二世代ではgVisorを使わなくなった
Cloud Runの第一世代の実行環境では、Googleがオープンソースで公開した「gVisor」をコンテナランタイムとして利用していました。
gVisorはコンテナ実装の標準であるOCI(Open Container Interface)に準拠しつつ、ホストとなるカーネルの上に独自のgVisorレイヤを提供し、コンテナからのシステムコールをいったん受け止めています。このレイヤがあることによって、従来のコンテナよりも安全な分離と、カーネルに対するよりセキュアな環境を実現しています。
参考:コンテナの軽量さと、より安全な分離を実現する「gVisor」、Googleがオープンソースで公開
しかし今回正式版となったCloud Runの第二世代の実行環境ではgVisorではないマイクロVMをベースとしました(具体的に何を使っているかは説明されていません)。
完全なLinux互換、ファイルシステムのマウントが可能に
これによって第二世代の実行環境では、すべてのLinux機能と完全な互換性を実現し、第一世代のCloud Runではシステムコールの問題で実行できなかったソフトウェアが、第二世代では実行できるようになりました。
またCPUとネットワークのパフォーマンスが向上し、ネットワークファイルシステムをマウントすることも出来るようになりました。
これらによって、既存のアプリケーションをCloud Runで動かすことが以前よりも容易になっています。
Cloud Run jobsも正式版に
第二世代の実行環境が正式版になったのと同時に、この第二世代実行環境をベースにしたCloud Run jobsも正式版となりました。
Cloud Run jobsはHTTPリクエストをトリガーとするのではなく、マニュアル操作やスケジュール、ワークフローのイベントなど、任意のタイミングで実行されることを前提とするCloud Runの新機能です。