【イベントレポート】さくらの夕べ クラウドネイティブナイト

さくらのナレッジ編集部の法林です。

さくらインターネットはさまざまなITコミュニティの活動を支援しています。その一環として、クラウドネイティブムーブメントを牽引することを目的としたテックカンファレンスであるCloudNative Daysの実行委員会に対してサーバなどのインフラを提供しています。

そこで今回は自社イベント「さくらの夕べ クラウドネイティブナイト」にて、CloudNative Daysに提供しているインフラの活用やクラウドネイティブ関連の技術に関する発表、ならびに5月に開催予定のクラウドネイティブ会議の紹介をしていただきました。その模様をレポートします。なお今回のイベントはZoomとYouTubeを使ったオンラインイベントとして実施しました。

さくらのクラウドでつくるCloudNative Daysのオブザーバビリティ基盤

最初の発表者は、CloudNative DaysのCo-Chairを務めている岡本泰典さん(@taisuke_bigbaby)です。当社から提供しているさくらのクラウドをどのように活用しているかをお話しいただきました。

CloudNative Daysの実行委員会は8つのチームに分かれて活動しています。その中にObservabilityチームがあります。オブザーバビリティの概念は「メトリクス・ログ・トレースでシステムの状態を把握すること」ですが、この考え方をカンファレンスに適用し、カンファレンスにおけるありとあらゆるものを計測可能にし、状態を把握することがObservabilityチームの役割です。計測できそうなものの一例を以下に挙げます。

  • CFP応募数、参加者数、セッション視聴数
  • 配信基盤の稼働状況、レスポンスタイム
  • SNSの投稿数

そして、そのオブザーバビリティ基盤をさくらのクラウドで実装しています。現在の基盤構成を上図に掲げます。システム全体はDocker Composeで管理しています。カンファレンスに関する各種メトリクスやログはPrometheusやLokiで取得し、Grafanaのダッシュボードで一覧できるようにしています。最近はOpenTelemetryも活用していて、システムの状態に関するデータをMackerelに送って監視しています。

各コンポーネントの役割を上図に掲げます。DreamkastはCloudNative Days実行委員会で実装した配信基盤です。

システムの構成はTerraformを用いて記述しています。さくらのクラウドは当社が開発しているTerraformのプロバイダーがあるのでそれを利用しています。初めて使う人へのおすすめはfake_modeです。これはクラウド上のリソースを作成せずにAPIの挙動をシミュレートできるもので、間違って大量にサーバを作ってしまったりすることを防げます。

システム構成が意外にシンプルだと思われるかもしれませんが、これは今までにいろいろな試行錯誤をする中で、特に「運用負担対効果」が重要であると感じたからです。自分たちであれこれ実装して運用すると楽しいですが負担も重くなります。コミュニティによる運営はボランティアベースなので作業にあまり時間をかけられません。そこで外部サービスに頼れるものは頼り、最小の負担で最大の効果を上げることを重視しています。今後はAppRunなどの新しいサービスも使ってみて成果を共有・還元していきたいとのことです。

クラウドネイティブ会議のプロポーザル応募状況のダッシュボード

さくらのAI Engineからはじめるクラウドネイティブ意識

続いての発表は@Melonps_さんです。仕事はさくらのIoTを使っていて、そのトラフィック処理にKubernetesを使ったりしています。また、ハッカソンに出るのが趣味で、こちらではさくらのAI Engineを使っています。「これがないとハッカソンしんどい」そうです。今回の発表はこれらの経験をもとにした「クラウドネイティブをもっと身近なものにしたい」という話題です。

「クラウドネイティブ」という言葉を聞くと、使用ツールに注目しがちです。例えば「自分はKubernetesを使ってないからCloudNative Daysに行ってもちょっと場違いかな…」というような話です。しかしCNCF(Cloud Native Computing Foundation)が掲げているクラウドネイティブの原則には「クラウドネイティブを実現するための技術にはこだわらない」という一節があります。この考え方をもっと身近なものにしたいというのが今回の発表の主旨です。

ここで、さくらのAI Engineをハッカソンで利用した話がありました。@Melonps_さんが参加したハッカソンは、さくらインターネットの大阪本社であるBlooming Campで開催された「SHARPセマンティックカメラハッカソン」です。ここで開発したシステムは、カメラで撮影した画像をFPGAに入力して画像認識を行い、意味情報を抽出してAIエージェントに入力し、その内部でさくらのAI Engineが動いて結果を出力するというものです。

このハッカソンにクラウドネイティブな考え方をどのように適用したかを説明する前に、クラウドネイティブ意識を始めるための3つの軸が提示されました。どんな成果を得たいか、そこから逆算してどんな問題を解くか、そしてその問題を解くためにどんなツールを使うかです。

これを今回のハッカソンに当てはめて考えてみます。得たい成果は「インフラ管理をやめてアプリ開発に集中したい」「プロトタイプをたくさん作って価値の検証をしたい」といったものです。そのためにどんな問題を解けばよいかというと、「セマンティックカメラの設定やエージェントのロジック作りに集中したい。ローカルLLMやAPIはインフラなので時間をかけたくない」となります。そこでさくらのAI EngineやOpenAIといったツールの出番になりますが、特定のツールを選ぶことでそれが足かせになってもよくないので、取り替えられるようにしておくことも大事です。

今回はさくらのAI Engineを使うことでインフラの構築・管理にかける時間をほぼゼロにすることができました。また、さくらのAI EngineはOpenAI互換なので、例えば後でOpenAIに変更したいとなったときも、APIのURLとAPIキーを書き換えるだけで対応できます。

このように、人間による議論や作業を介さずに自律的に振る舞う考え方やシステム、設計思想が「クラウドネイティブ」です。5月に行われるクラウドネイティブ会議のセッションにもそのような考え方に基づくものがいくつかあるので紹介しました。

ハンズオンで学ぶクラウドネイティブ

3番目の発表者は@south__1003さんで、CloudNative Daysなどのイベントで実施しているハンズオンについて紹介しました。

クラウドネイティブは学ぶのが大変です。使用するツールや考え方など学習項目が多い、環境構築が難しい、トラブルが起きたときの問題の切り分けが難しい、などがその理由です。そういったことに対応するために、CloudNative Days実行委員会では「1日で学ぶクラウドネイティブ技術実践ハンズオン」というオリジナルのハンズオン教材を作成し、CloudNative Daysなどのイベントで実施しています。

ハンズオンの内容としては、クラウドネイティブなツールの基本的な使い方や、複数のツールを組み合わせた使い方を実習します。ツールの中には日本語のドキュメントが少ないものもある中で、このハンズオンはすべて日本語で学べることも大きな利点です。

このハンズオンは過去に5回開催しており、毎回多くの参加者を迎えています。教材はGitHubで公開されており、300件ほどのStarを集めています。また書籍版の教材も刊行されています。

教材の実習環境は、CPU 4コア、メモリ16GiBのVMを使用し、Kubernetesのクラスタ作成ツールであるkindを使用してクラスタを作成します。あとは各章ごとにツールを学べるようになっていて、コマンドを実行して環境をデプロイします。実習環境の検証はさくらのクラウドで行っています。これもTerraformで構成を記述してあるので、ハンズオンを実施するときにTerraformを動かして実習環境を自動生成し、ハンズオンが終わったら削除します。ちなみにイベントにおけるハンズオンはすべてWebブラウザで操作できるように作ってあります。これはハンズオンを何度か実施する中で、参加者によってはSSHのハードルが意外に高いことに気がついたため、SSHを使わなくても実習できるようにしたそうです。

ハンズオンの教材は上図のように体系化されています。コンテンツがかなり増えてきて、1日で学べる量なのかという疑問も出つつありますが、特定のツールやジャンルだけを選んで学ぶこともできます。

5月に行われるクラウドネイティブ会議でもハンズオンを実施予定です。また、それ以外にも手を動かす企画としてGameDayを実施します。これはKubernetes環境上で発生するさまざまな障害シナリオに対して、チームで協力して原因を特定し、復旧させる競技型イベントです。どちらもクラウドネイティブ会議のウェブサイトにて参加者を募集していますのでぜひご参加ください。

さくらのAPIゲートウェイのKubernetes Operatorを作っている話

最後の発表は@k1h_techさんで、現在開発中のシステムについて話しました。

実現したい仕組みは、さくらのクラウドでKubernetesクラスタを構築し、その上で開発したサービスを手軽に公開できるようにするものです。ここでよくある構成としては、エンハンスドロードバランサの配下にKubernetesクラスタを構築し、Ingressを使ってアクセスを制御するといったものが考えられます。しかしエンハンスドロードバランサの費用がかかったり、認証も付けたいとなると良い方法がないといった課題があります。

そこに、さくらのクラウドのAPIゲートウェイという、APIの公開やモニタリングを簡単に行えるマネージドサービスが登場しました。これを使えば認証やTLS終端やメトリクス取得なども行えて便利そうなので使ってみることにしました。ところが、試してみるといろいろなハードルがあって難航しています。

1つ目の問題は、APIゲートウェイはインターネット上にあるバックエンドに接続する想定で作られていますが、KubernetesのVMはプライベートネットワークにあるので直接接続できないというものです。対策として考えたのは、NodePortを利用してKubernetesクラスタでサービスを公開し、NodePortのポート番号を自動的にAPIゲートウェイに登録するシステムを作るという方法です。しかしこの方法だとAPIゲートウェイから各Kubernetesクラスタの間がパブリックネットワークになるので、NodePortで公開するとユーザが直接サービスにアクセスできてしまいます。これに対する良い解決策はまだ思い浮かんでいませんが、APIゲートウェイからバックエンドに接続するときに認証を入れることができるので、それを通過したらサービスに接続できるような構成を検討しています。

もう1つの課題はコントローラーの実装です。APIゲートウェイは、ホストからアクセスがきたときにどのサービスにルーティングするかを設定することによって動作します。ホストはAPIゲートウェイが自動生成したURLにアクセスするのがデフォルトの動作ですが、自分が持っているドメインをカスタムドメインとして設定し、そこに接続することもできます。

それを踏まえたコントローラーの構成図が上図です。基本的にはKubernetesのGateway APIに準拠しています。さくらのAPIゲートウェイにいくつか設定を追加する必要があるので、Sakura Gateway Configというリソースを追加で作っています。

これを使ったサービスの公開は、基本的にはAPIゲートウェイと同様に、サービスに対してHTTPルートを作ると、裏側でコントローラーが内部への接続を自動生成することによって行われます。ここで内部のサービスはClusterIPを持っていてインターネットに接続されていないので、ノードのグローバルIPアドレス上でNodePortのサービスをコントローラーが自動生成し、それをAPIゲートウェイに追加します。

現在の開発状況は、APIゲートウェイ側のサービスを作る部分が自動でできるようになったところです。今後は、OIDC認証への対応、カスタムドメインへの対応、APIゲートウェイとサービス間の認証を開発したいとのことです。

5月は名古屋でクラウドネイティブ会議!名古屋城でプレイベントも!

イベントの最後に、5月14-15日(木金)に名古屋で行われるクラウドネイティブ会議の紹介がありました。このカンファレンスは、CloudNative Days、Platform Engineering KaigiSRE Kaigiの3団体が合同で開催するものです。

イベント内容としては、5月14日(木)はCloudNative Days、5月15日(金)はPlatform Engineering KaigiとSRE Kaigiのセッションが行われます。セッションやタイムテーブルはすでに公開されています。また、この他に体験型コンテンツとしてハンズオンとGame Dayがあります。他にもたくさんの企画があります。クラウドネイティブ会議のブログで紹介されているのでぜひご覧ください。

クラウドネイティブ会議に向けてのプレイベントも東京と名古屋で実施予定です。特に名古屋のプレイベントは、名古屋城の本丸御殿を借りて行うそうです。参加者や発表者も募集しているようなので、ぜひご参加ください。

それから、クラウドネイティブ会議の参加者向けに、東京〜名古屋の新幹線と宿泊がセットになった特別なツアーパッケージも用意されているとのことです。ぜひご活用ください。

なお、クラウドネイティブ会議はさくらインターネットも協賛しており、会場では展示を行います。ガバメントクラウドに採択されたさくらのクラウドや、クラウドの基礎知識を体系的に学べるさくらのクラウド検定などをご紹介する予定です。会場に来られる方はぜひ展示ブースにもお立ち寄りください。それから当社の社員による発表もありますのでぜひご覧ください。(スポンサーセッションではなく応募して採択されたセッションです)

おわりに

当社から提供しているさくらのクラウドを有意義に活用いただいていることがよくわかりました。他にもさくらのAI EngineやAPIゲートウェイの利用事例も紹介いただき、ありがたく思います。ご協力いただいたCloudNative Days実行委員会の皆さんに感謝するとともに、5月に行われるクラウドネイティブ会議も含め、今後の発展も祈念しています。

それでは5月にクラウドネイティブ会議でお会いしましょう!

映像アーカイブ

イベントの模様をYouTubeで配信したアーカイブがありますので、さらに詳しく内容を見たい方はご覧ください。