2020 年 6 月 11 日、Microsoft Open Tech Night と Microsoft for Startups のコラボ オンライン イベント「Azure Kubernetes x スタートアップ + Build 速報 – MSTechNight #10」を開催しました。

イベントでは最新の Azure Kubernetes Service(以下 AKS)関連のアップデート情報の発表や、実際に AKS を使用しているスタートアップ企業の導入事例の紹介、ユーザーから届いた質問に答えるパネル ディスカッションなど、さまざまなセッションを行っております。

Microsoft for Startups プログラムとは?

セッションの前に Microsoft for Startups を担当する戸谷仁美より、Microsoft for Startups のプログラムではスタートアップ企業に対してどのようなサービスの提供があるのか、紹介を行いました。

戸谷「Microsoft for Startups はその名前の通り、スタートアップ企業様を支援するための特別なプログラムです。当プログラムは約 2 年前から始まり、日本では私を含めた 5 名のメンバーでスタートしました。そして今では 140 か国以上で展開されています。

プログラムでは Azure 年間無償利用枠や、GitHub Enterprise や Visual Studio Enterprise などのサービスを全てパッケージとしてスタートアップ企業様に提供し、開発や運用などに役立てていただいています。

またプログラムもスタートアップの皆さんから色々フィードバックをいただき、日々進化しています。最近ではつい数週間前に Power Platform もパッケージに追加され、使えるようになりました」

最新の AKS の動向とは? Build 2020 最新速報セッション「Build 2020 最新情報 〜コンテナ関連アップデート〜」

最初のセッションはマイクロソフトの寺田佳央による「Build 2020 最新情報 〜コンテナ関連アップデート〜」です。こちらのセッションでは、Microsoft Build で発表された最新情報をもとにした Azure Container Registry、AKS などのアップデートに関する話を先行して共有させていただきました。

マイクロソフトが開催した開発者向けカンファレンスである「Build 2020」でのコンテナ関連では、セキュリティ向上のためのアップデートに関するセッションが多かったと寺田が発表しています。


【登壇者プロフィール】
寺田 佳央
Microsoft Developer Relations Sr. Cloud Advocate、Java Champion

寺田「今年の Microsoft Build でのコンテナ関連で多かったのは、セキュリティ強化に対する内容でした。

コンテナの技術が注目を浴びている時期は、しばらく機能追加や安定性向上のためのバージョンアップが行われます。しかしそれらだけをすればいいわけではなく、より本番環境で安心してお使いいただくために、またエンタープライズのビジネスではセキュリティの向上が欠かせないポイントになっています。
そのため今年の Build でもセキュリティの向上のためのアップデートが数多く見受けられました。」

当セッションでは Azure Container Registry と AKS の以下の新機能を紹介。

Azure Container Registry
・Diagnostic Logs
・Private Link & Firewall
・Custom Key

AKS
・Azure Advisor Integration
・Windows Server Container
・Azure Policy

そして紹介した新機能の中でも、Azure Policy は開発者と運用者にとって重要な機能になる可能性があります。

寺田「これまでは Kubernetes でサービスをデプロイする際、開発者、もしくは運用者が設定を書いてそれを Kubernetes にデプロイしていました。しかし Kubernetes はバージョンアップが頻繁に行われるため、開発者の方が細かいセキュリティやオプションの設定を理解するのはなかなか大変です。

しかし Azure Policy を利用すれば Kubernetes にサービスをデプロイする時、共通ルールをあらかじめ作成しておくことができます。この共通ルールを Kubernetes にとても詳しい方が定義することで、開発者の方が一部の設定を忘れた時にエラーを発生させ、その環境でデプロイをできなくすることができます。
つまり Azure Policy によって、それぞれが管理している Kubernetes の品質を向上させられるのではないかと思っています」

スタートアップ x AKS セッション「AKS と始める未来のソフトウェアの CI/CD」


引用:AKS と始める未来のソフトウェアの CI/CD

2 番目のセッションは PKSHA x Ops のエンジニアである赤澤智信氏による「AKS と始める未来のソフトウェアの CI/CD」。

こちらのセッションでは赤澤氏から少人数での開発体制やコストの制約といったさまざまな課題を解決するため、自身が AKSと GitOps を導入しインフラ構築を行った時の経験と、得た知見について詳しく紹介していただきました。


【登壇者プロフィール】
赤澤 智信
PKSHA Technology の子会社である PKSHA x Ops 所属エンジニアで、現在機械学習システムのインフラ/サーバー サイド開発・運用に従事。前職は FUJITSU にてスーパーコンピュータ「富岳」のインターコネクト開発、DeNA にてヘルスケア アプリのサーバサイド開発に従事。

赤澤氏「本日は『AKS と始めるソフトウェア未来の CI/CD』というタイトルで発表させていただきます。

今回お話させていただくのは、自社で行った小規模案件から分かった AKS の重要性や、初めて GitOps を使用してみて得た知見などをご紹介させていただければと思います。
はじめに AKS や GitOps を導入するに至った背景から紹介します。まずセッションのタイトルにも入っている『未来のソフトウェアのCI/CD』というのは、PKSHA x Ops のミッションです。この未来のソフトウェアとは機械学習、深層学習を初めとする先端技術を用いたソフトウェア、ハードウェアのことを指しています。

そして CI/CD というのは社会実装を指しています。つまり、未来のソフトウェアを現実社会にデプロイする組織というのが PKSHA x Ops です。

次に自社の課題について説明させていただきます。現在インフラやサーバーサイドの開発、運用の体制構築を行っているのですが、本当に少人数です。またその状態で PKSHA Technology 本社からくる、さまざまな技術、制約がある案件の環境構築をすることが求められています。
しかし、毎回案件ごとの要件に応じてシステムを一から作っていくのはとても厳しく、そこで今回 Kubernetes を導入してみることになりました」


引用:AKS と始める未来のソフトウェアの CI/CD

赤澤氏は Kubernetes の導入を決めた理由としてマルチプロバイダであること、そして再利用性を高められることを挙げています。

赤澤氏「Kubernetes を選択した理由はいくつかあり、マルチ プロバイダで使用できるため今回の課題を解決するのにマッチしている点と、宣言的にマニフェストを書いておき流用することで再利用性が高まり、新規案件のインフラを迅速に立ち上げられる可能性があった点です。また Kubernetes を導入することで技術スタックを一元化させたり、運用を安定化させたりと、負荷の軽減も見越しています。
そして AKS の導入目的ですが、これは今まで社内で AKS を使用した案件がなく、知見を得たいというのが一番の目的でした。」

初めて自社で AKS を導入して構築した案件のシステムは、コスト制約が 5 万円以内と厳しいものだったそうですが、AKS の場合、コストが固定値であり月額単位で料金が分かったため、決められたコストを超えないことができたと、赤澤氏は説明しました。

赤澤氏「今回実際に使用してみて感じた AKS のメリットですが、リソースグループごとにコストをチェックできたり、コストが固定値であったり、コストに関するパフォーマンスが良かったです。また Azure Monitor がとても便利でした。
Kubernetes を使用するメリットとしては、導入理由に挙げていたマルチプロバイダで使用できる点、技術スタックを一元化できる点があります。さらに Kubernetes は将来性を感じるツールで、使用していて個人的に楽しかったです」

パネル ディスカッション 「AKS AMA! Azure Kubernetes Services について何でも聞いてくれ!」

イベントの最後にはマイクロソフトの寺田佳央、真壁徹、PKSHA x Ops 赤澤氏による、AKS に関する質問に答えるパネル ディスカッションが行われました。司会進行はマイクロソフトの鈴木教之です。

― Azure Kubernetes Services の基礎知識、概要を改めて知りたいです

真壁「AKS の基礎知識については翔泳社から出ている書籍『しくみがわかる Kubernetes Azure で動かしながら学ぶコンセプトと実践知識』がいいです。出版されたのが 1 年ほど前なのでサンプル スクリプトが古くなっていますが、基本的なコンセプトについてはしっかりと書かれています。
また初学者にはとっつきにくいかもしれませんが、網羅性や、情報の密度からすると公式ドキュメントがおすすめです。ぜひとも目を通してみてください」

― 最大ノード数は?

寺田「以前の最大ノード数は 1 クラスターあたり 100 ノードが最大だったのですが、最近では各ノードプールの上限が 100 で、クラスター全体で 1,000 ノードまで使用可能になっています。
ただし上限めいっぱい使用した大規模なクラスターを作ると、メンテナンスやログの管理が大変になるので、上限ぎりぎりではない、もっと少ない台数で管理していただくのがいいかと思います。

実際どれくらいのノード数がいいかというと、提供するサービスの内容にはよりますが、僕は大体 20 から 30 で、多くても 30 から 40 くらいです。真壁は上限 50 ノードくらいと言っていました。Kubernetes はバージョンアップが頻繁にあるので、一度作成した後にもう一度再構築することを前提に考えて作っていただけるといいかなと思います」

― ざっくりとしたコスト感を知りたいです

真壁「基本的に AKS 自体は無料です。そしてコストは大体使用した VM (仮想マシン) のサイズと数で決まります。また最近できたオプションで SLA を追加すると 1 時間あたり 11 円かかります」

鈴木コストを試算できる料金計算ツールがあるので、そのツールで運用するとどのくらいかかるのか調べてみるといいと思います」

― AKS 構築方法のベスト プラクティスは?

真壁「構築の時にはプロビジョニングの作業をすると思うのですが、そのプロビジョニングの単位でどこまでやるかによって、使いやすいツールが変わってきます。
クラスターを作成するだけなら Azure CLI のコマンドだけでできます。そして Azure のリソースだけでプロビジョニングをするなら ARM テンプレートです。また Azure 以外のリソース、Kubernetes リソースなどを使用してプロビジョニングをするなら Terraform がおすすめです」

鈴木AKS 全般のベスト プラクティスのドキュメント には色々な情報が詰まっていますので、チェックしてみるといいと思います」

― バージョンアップのベストなやり方は?

真壁「最近はバージョンアップツールも安定してきているので、パッチ バージョンなどはインプレースでやることも増えてきています。ただし、マイナーバージョンに関しては新しくクラスターを作成して、検証して、トラフィック マネージャーを切り替えてと、慎重にやっていることが多いです。Ignite19 で説明されたベスト プラクティス も参考にしてみてください」

Microsoft for Startups のプログラムで提供されるパッケージを利用すれば、今回各セッションで話題に上がった AKS といったクラウドテクノロジーを無償で利用することが可能です。
さまざまな技術、組織課題を解決する選択肢の一つとして、マイクロソフトの強みであるクラウド テクノロジーを活用してみてはいかがでしょうか。

※この記事は日本マイクロソフトからの寄稿記事です