インフラの知識ゼロからスタート

  今井莉紗氏:私からは「Azure Kubernetes Serviceの『学び方』」についてお話できればと思いますので、よろしくお願いします。

(会場拍手)

まず今日の内容と目的について。内容は、Azure Kubernetes Service(AKS)の学び方について、主に3つのステップでお伝えしていこうと思います。これからAKSを始めたい人や「始めてみたけれども、ちょっとよくわからない」みたいな方々を勇気づけられればと思うのが、今回のセッションの目的です。

「AKSで運用を開始できるエンジニア」として、そこに至るまでにぶち当たるであろう壁と、それを乗り越える方法をお伝えしていきます。

あらためまして、今井莉紗と申します。ふだんは亀田医療情報株式会社でプラットフォームチームに所属して、エンジニアをやっています。

仕事内容は、電子カルテと呼ばれる医療機関で使われるソフトウェア基盤の部分やクラウドサービス、AKSの構築です。今年の3月頭から始まり、その運用担当をしています。

私自身のインフラ歴は、Azureを含めて1年4ヶ月ほどで、始めた当初はまったくインフラの知識がない状態からスタートしました。

AKSを学ぶ最初のステップ「Azureを知る」

AKSの学び方について、まず1つ目のステップ「Azureを知ろう」から。Azure自体初めての場合は、いきなりAKSを触り始める前に、Azureサービスに触れておくことをオススメします。なぜなら、Azure Portalから起動するだけでも「こんな設定があるんだ?」とか「ほかのこのサービスと関連しているのかな?」のような発見があります。

Azure VMのドキュメントやそのチュートリアルを進めてみることもオススメです。時間に余裕のある方は、Microsoftが提供しているAzure Learnをやってみるのもよいかと思います。

中でも一番のオススメなのが、今までどこかで動かしていたプロダクトを実際にAzure上で動かす構成を考えてみることです。

実際にAzureを使い続けてみようとなった際に、覚えておきたいこととして5つほど挙げていますが、こちらを押さえておくと、後々のリソース管理が楽に行えるようになると思います。

とくに注意したいのが、サブスクリプションのところです。前のセッションでけっこうお金の話が出てきていましたが、何にお金がかかっているかをしっかり把握しておくことを強くオススメします。そうでないと、あっという間に万札が飛びます。

AKSから少し話が逸れてしまうのですが、私自身がAzureを使い始めたころは、インフラの技術も基礎力もまったくゼロのスタートで、非常に苦労した経験があります。手始めに上司がサラサラっと書いた簡単なWeb3層の構成図を渡されたんですけど、それも理解できなくて、まぁまぁ落ち込みました。

知識を取り入れつつ手を動かし続けることを並行してやっていくことで、ある日視界がパッと開けます。そういう感覚を得られたときに、やっとインフラって楽しいという気持ちを得られました。

あらためて振り返り、大事だと考えている知識たちを紹介します。あとは、実際に読んでみてよかった書籍などはスライドの最後に紹介しています。(スライドを)後ほどインターネット上にアップしますので、よかったら参考にしてみてください。

すべてを一気に学ぶ必要はまったくありません。手を動かしながら疑問に思ったことを学んでいけばいいと思います。

Kubernetesを理解する

続いて2つ目のステップです。Kubernetesを知りましょう。

Azureやインフラの最初の壁を超えた次に立ちはだかるのが、Kubernetesの壁だと思います。「壁」なんて表現したら、Kubernetesエンジニアのみなさんに怒られちゃうかもしれないんですけど(笑)。Kubernetesはそのコンセプトや技術、仕組みの面で取っつきづらさみたいのを感じさせる部分があると感じています。

繰り返しになるんですけれども、いきなりすべてを理解する必要はありません。何度もKubernetesクラスターを構築してみて、実際に手が止まってしまったところを深堀りしてみたり、基本にあらためて立ち返ってみてください。今までぼやけていた情報のすべてがつながって見える日が、必ず来ます。

そこに至るまでに必要な条件として、コンセプト、そして仕組みの理解を深めることを挙げます。これをすることで何がうれしいのかというと、自分の作りたいプロダクトに合った構成を考えられるようになることです。

Kubernetesのコンセプトを理解することで、本当に私たちの要望に合った技術なのかと考えるようになります。そこから、Kubernetesを使って何を目指すかを明確にできるようになります。

加えて、各コンポーネントだったりリソースの挙動が理解しやすくなるので、予想が立てやすいです。コンポーネントの役割やリソースの意味、そして効果を理解することで、より効率のよい構成を考えられるようになると思います。

では、どうやってそれらの理解を深めていけばいいのでしょうか? そこまでにはいろんなアプローチ方法があると思うんですが。まずコンセプト、そして仕組みの理解を深めるためにはどういうことができるかというヒントを並べてみました。

まずコンセプトについては、公式ドキュメントであったりKubernetes関連の書籍・スライド資料をとにかく漁ります。Kubernetesが「しないこと」を理解するのも1つの手です。ふだんはクラスタを構築したり改良したりしながら、思い出したときに、時々その情報を目に通すだけでも効果があると思います。

仕組みに関しては、公式ドキュメントに加えて、ちょっと媚を売っているみたいで申しわけないんですけど、書籍『しくみがわかるKubernetes』を強くオススメします(笑)。

(会場笑)

AKSを例にとっていて、Kubernetesの仕組みからアプローチした、理解の深まる1冊なので、ぜひ読んでみてください。

また、Kubernetesクラスタのコンポーネントを図に表してみるのも1つの手だと思います。実際に書いてみることによって、自分だけだとわからなかったコンポーネントの関係性が見えてきます。

そのほかには、「Kubernetes the Hard Way」をやってみることも非常に学びがある方法です。これはマネージドではないバーチャルマシンからKubernetesクラスタを構築していく手順を紹介しているものになります。Azure版もあり、完全にAKSとは同じ構成ではないんですが、AKSのリソースの構成の理解を深めるのにとてもオススメです。ぜひやってみてください。

AKSを動かして学ぶ

ここまで来たら最後のステップです。今までのステップがある程度できるようになったら、どんどんAKSを触って楽しみましょう。4つの観点からお伝えしていきます。

1つめは「とにかく動かして観察する」。パブリッククラウドの利点である、物理サーバを気にしないでどんどん作ったり壊したりできることを活かしていきましょう。az aks createコマンドを打ってみたり、Podをはじめ各リソースを載せてみたり壊してみたりすることが楽しいと思います。

実際に動かしてみるうちに、いろいろな疑問にぶち当たると思うんですが、そういう疑問に出会うために動かして、観察することで、知識が定着していくと思います。必要に応じて、ワーカーノードにSSH接続して、中を覗いてみるのもオススメです。

2つめは「Azureのほかのサービスを組み合わせて取り入れる」。実際にAKSで運用を始めようと考えたときには、使ってみたい・使い始めたいサービスは以下の4つかなと思います。詳しくは触れないんですけれども、調べてみてください。

これらを取り入れることによって、弊社では少しずつ、AKSが私たちインフラエンジニアだけではなくてアプリケーション開発者にとっても身近なものに変化しています。これがいわゆるDevOpsの一歩かなと感じています。

3つめは「『背伸び』することも大事」。今までコンセプトや仕組み、いわゆる基本にあたるところが大事とお伝えしてきました。しかし、新しい機能や応用事例を知ることや少し難しいストレッチの効いた情報を得ることも大事だと考えます。最初にクラスタを作って終わりにするのではなくて、先行事例や新機能からヒントを得る。そして、さらに心地よく開発や運用ができる環境を目指していけるのがKubernetesの醍醐味でもあると思います。

続けていると、けっこう苦しい部分もあると思います。それをどうやって楽しいものにしていくかというと、4つめの「仲間を見つける・つくること」です。コミュニティに参加したりSNSで発信してみると、新しい仲間に出会えると思います。

何か特別なことを発信しなきゃと思う必要はまったくありません。例えば私なんかはよく「こんなことがわからない」というのをぼそっとつぶやくと、玄人エンジニアが突然返してくれたりして、すごくいい答えを貰えたりするんですけれども。そういうのを個人的には「Kubernetesホイホイ」と呼んでいます。いろんな方をぜひホイホイして巻き込んでいってください。

以上、3ステップお伝えしてきました。慌てずに一歩ずつ前進していけば、必ずAKSを運用できるエンジニアになれると思います。一緒にAKSを盛り上げていきましょう。

ご清聴ありがとうございました。

(会場拍手)