Slide 1

Slide 1 text

2022年5月26日 株式会社FIXER 松枝宏樹 Azure好きなクラウドエンジニアが メタバースでAROに⼿を出してみたが しかし

Slide 2

Slide 2 text

1 © COPYRIGHT 2022 FIXER inc. アジェンダ • 自己紹介 • メタバースが提供する仕組みについて • AROを使用する動機 • 検証の強い味方、Visual Studioサブスクリプションの特典 • 作って壊して、を繰り返す • ⼿順化に向けた追加検証 • 整理した⼿順の紹介 • OpenShiftを触ってみた – Operatorにチャレンジ • 触ってみた感想

Slide 3

Slide 3 text

2 © COPYRIGHT 2022 FIXER inc. 自己紹介 松枝 宏樹 • ギリギリ昭和生まれ、愛知県出身の一児の父です • 子供の頃はVisual Basic 6.0で遊んでいた元アプリエンジニアです • 現在はクラウドエンジニアをやっていますが、C#が好きです • 最近はterraformでAzureリソースの構築をするのが得意です • Kubernetesも若⼿メンバーに助けられながら頑張っています 中3の頃は夏休みに こんなゲームを作ってました

Slide 4

Slide 4 text

3 © COPYRIGHT 2022 FIXER inc. メタバースが提供する仕組みについて • メタバースが提供する仕組みは何か?→現在のところ具体的な定義はこれから整っていく認識である • 必要な仕組みは例えば・・・ • Webブラウザ等で基本的な操作ができる=従来のWebの仕組みが使用できる • 3D空間等で相互にコミュニケーションがとれる=リアルタイム通信ができる • 非中央集権的な仕組みで取引が行える=ブロックチェーンを用いたNFTなどが利用できる • そして、上記のような仕組みが、(極端な話をすると)全人類が安定して使用可能である必要が出てくる • ブロックチェーンのインフラは非中央集権≒企業で用意しないので、ブロックチェーン以外の部分をどう用意する? 大量の Webクライアント メタバース リアルタイム通信の仕組み (音声、空間上の位置情報など) 従来のWebの仕組み (HTML、画像、APIの提供) スケーラブルで安定して 使用可能なインフラ まだ具体的に定義不可能な インターフェース ブロックチェーンのインフラ 活用? NFT等の提供?

Slide 5

Slide 5 text

4 © COPYRIGHT 2022 FIXER inc. AROを使用する動機 – 具体的に定義不可能なI/FにはKubernetesが適している • 具体的に定義できないインターフェースが必要であれば、マイクロサービスの形が適している • マイクロサービスのAPIをPaaSで動かそうとすると、例えばAzureのAppServiceをAPIごとに構築することになる • 非常に手間がかかるし、APIが増えた際の追加構築のサポートなども大変 • K8sなら、クラスタを用意しておけばあとはマニフェストファイルで完結するので、インフラ面の調整が容易である API_A API_B API_C PaaSでマイクロサービスを実現しようとすると、APIごとにWebApps を用意しなければならない ↓ - インフラの構築 (職人技のterraform) - 設定調整(Azure CLI、自動化するなら場合によってREST API) - リリースパイプラインの実装(Azure DevOps等) API_A API_B API_C Kubernetesでマイクロサービスを実現しようとすると、Kubernetesクラスタがあ ればインフラの追加構築は不要。 リソースの割り当てや設定やマニフェストファイルで実施できる。 OpenShiftならCI/CDパイプラインもyamlで書ける? 入口の仕組み with PaaS 入口の仕組み (PaaSでもK8sでもどうぞ) 構成図は一見簡単だが、 自動化や運用の面では なかなかの努力が… 一度構築すれば基本的 に残りはyamlファイル で設定できるし、 Operatorで運用の自動 化も期待できる

Slide 6

Slide 6 text

5 © COPYRIGHT 2022 FIXER inc. AROを使用する動機 – 安定して使用可能なインフラにはOpenShiftが適している • Kubernetesを使用したいが、安定運用のためにはミドルウェアの運用自動化がポイントになる • OpenShiftでKubernetesのインフラ運用について楽になりたい • RedHat認証済みのOperatorによる、ミドルウェアの安定した運用自動化にも期待している • Azureに慣れているので、AzureでOpenShiftを簡単にデプロイできそうなAROを使ってみよう • クラウドなら構築が楽で、失敗したら作り直せばいいはず! 自分でSlackに残した呟きをベースに、 上⼿くいったりいかなかったりしたことをご紹介します。

Slide 7

Slide 7 text

6 © COPYRIGHT 2022 FIXER inc. 検証の強い味方、Visual Studioサブスクリプションの特典 • AROは最低でもD8s_v3のノードが6台も必要?検証でそんな出費は厳しい・・・ • とりあえずVisual Studioサブスクリプションの特典で付いてくるAzureクレジットで試してすぐ壊してをやってみよう • ・・・あ、サブスクリプションのクォータが。。デフォルトのクォータだと20vCPUしか使えないからクォータを上げて、 さあスタート! • 「Standard DSv3 ファミリ vCPUs」のクォータ引き上げ依頼しましょう

Slide 8

Slide 8 text

7 © COPYRIGHT 2022 FIXER inc. ポータルから作ってみよう! エラー: ワーカーノード数のケチりすぎ (ドキュメントをちゃんと読まない病?) ワーカーノード数を変更してリトライ! エラー: サービスプリンシパルの権限不足 (ドキュメントをちゃんと読まない病?) 作って壊して、を繰り返す(Azureポータルから作れない?) ドキュメントを読まなかった影響により、 Azureポータルから作れなかった。 多分これを読んでない

Slide 9

Slide 9 text

8 © COPYRIGHT 2022 FIXER inc. 作って壊して、を繰り返す(ケチすぎて時間がかかる) ドキュメントを読まないとダメだ、チュートリアルのドキュメントがあるので、これで試しましょう https://docs.microsoft.com/ja-jp/azure/openshift/tutorial-create-cluster 最低でStandard_D8s_v3はキツいので、Standard_D4s_v3で・・・ はい、エラーです。 パラメータを変えて途中でコケたりしつつも、何とか構築成功! 最後にログインしてみてすぐに削除したら、構築⼿順を安く検証できました。 (元のAzureクレジット¥17,000 - 削除後のAzureクレジット¥14,914 = ¥2,086の消費) ARO 4系の最小構成は、 マスターノードサイズはD8s_v3 ワーカーノードサイズはD4s_v3 でした。 ちなみに、さらにケチって CodeReady ContainersをPCに入れよ うとしましたが、起動に必要な80番 ポートを解放できず断念…

Slide 10

Slide 10 text

9 © COPYRIGHT 2022 FIXER inc. ⼿順化に向けた追加検証 – Pull Secretの利用 az aro create実行時にPull Secretを指定しないとOperatorHubに繋がらない=運用が楽にならない!!!! パラメータ--pull-secretを指定する必要がある ・・・が、ドキュメント読まない病により無駄に苦戦・・ ファイル名の頭に「@」を書く必要があるので要注意。 (エラーメッセージが「Invalid --pull-secret.」のような出力だったので なかなか原因が分からなかった) OperatorHubに繋ぐにはPull Secret が必要です。 ドキュメントに記載の--pull-secret パラメータを指定しましょう。

Slide 11

Slide 11 text

10 © COPYRIGHT 2022 FIXER inc. ⼿順化に向けた追加検証 – 欲張ってAzure AD連携の実施 AAD連携してユーザー認証したい!と思い立ったので欲張って下記⼿順を検証 https://docs.microsoft.com/ja-jp/azure/openshift/configure-azure-ad-ui ほぼドキュメント通りに実施成功! ただし、ドキュメント通りだと認証に使用するAADアプリのシークレット期限が6か月になるので、必要に応じて長い期限 のシークレットを発行すると良いはず。 例) AADアプリ作成後、 `ad sp credential reset --name --append --years 999` を実行

Slide 12

Slide 12 text

11 © COPYRIGHT 2022 FIXER inc. 整理した⼿順の紹介(1) PowerShellを想定した手順です 各パラメータを変数定義して別環境の 構築にも流用しやすく

Slide 13

Slide 13 text

12 © COPYRIGHT 2022 FIXER inc. 整理した⼿順の紹介(2) ワーカーノードのVMサイズを最低サイ ズにして検証費用の削減

Slide 14

Slide 14 text

13 © COPYRIGHT 2022 FIXER inc. 整理した⼿順の紹介(3) AAD認証用のAADアプリのシークレッ ト期限を延ばして長く使えるように

Slide 15

Slide 15 text

14 © COPYRIGHT 2022 FIXER inc. OpenShiftを触ってみた - Operatorにチャレンジ – 素のKubernetesに入れてみる 恥ずかしながら、「Operatorを使うと運用が楽になる」というレベルの知見。 OperatorはOpenShiftの概念では無くてKubernetesの概念なので、 まずは素のKubernetesを使った場合のOperatorを試してみる。 まずはテキトウにAKSを立てて・・・ OperatorHubの⼿順に沿ってインストール。あ、Operator Lifecycle Managerが最初に必要で・・・ 何とか成功?

Slide 16

Slide 16 text

15 © COPYRIGHT 2022 FIXER inc. OpenShiftを触ってみた - Operatorにチャレンジ – 素のKubernetesに入れてみる Operatorを入れただけではGrafanaは入らないので、 https://github.com/grafana-operator/grafana-operator/blob/master/documentation/deploy_grafana.md の説明を見ながらGrafanaをインストール ポートフォワーディングしたらGrafanaが見えました。 素のKubernetesにOperatorを 導入するのは比較的簡単そうではある ものの、 コマンドの実行を積み上げないといけ ないので不安が残りました。

Slide 17

Slide 17 text

16 © COPYRIGHT 2022 FIXER inc. OpenShiftを触ってみた - Operatorにチャレンジ – OpenShiftで入れてみる OperatorHubでGrafanaを検索し・・・ 注意事項を確認して続行

Slide 18

Slide 18 text

17 © COPYRIGHT 2022 FIXER inc. OpenShiftを触ってみた - Operatorにチャレンジ – OpenShiftで入れてみる 「インストール」を押す(Operator Lifecycle Managerは既に入っている) あ!オプションもあったんだ、と気づかされながら「インストール」!

Slide 19

Slide 19 text

18 © COPYRIGHT 2022 FIXER inc. OpenShiftを触ってみた - Operatorにチャレンジ – OpenShiftで入れてみる インストールの状況も見える

Slide 20

Slide 20 text

19 © COPYRIGHT 2022 FIXER inc. OpenShiftを触ってみた - Operatorにチャレンジ – OpenShiftで入れてみる Grafanaを入れるのもGUIから実施できる oc loginしてポートフォワーディングしたら見えた! 設定ポイントが明確になっていたり、 GUIから操作を実施できるので非常に 安心感のある作業が実施できました。 (今回のGrafanaは違いますが) RedHat認証済みのOperatorを使えば 更にOperatorの品質も安心して使え るのは強力なメリットに感じます。

Slide 21

Slide 21 text

20 © COPYRIGHT 2022 FIXER inc. 触ってみた感想 <良かったところ> • 比較的簡単な⼿順でARO環境が構築できた • 設定値はシンプルで、ドキュメントに沿って進めれば構築成功する • AzureADとの連携が簡単だったのが非常に嬉しい • Azureの延長線上で簡単にユーザー管理できそうな期待感 • OpenShift自体のポータル画面の安心感が凄い • ここから何でもできるんだという魅力と、OperatorHubで良いものが導入できそうだという期待感 • 一つ一つの操作もGUIで分かりやすい <課題に感じるところ> • Azureヘビーユーザーの感覚だと、ドキュメントを見ずにAzureポータルから上⼿く作れない ⇒ハードルが高いかも?と感じてしまう • Azureリソースは極端な話、「設定がよく分からないけど構築できた」ができるパターンが多いので、欲を言うと 初期導入のハードルを下げたい • ポータルから作成した時のエラーメッセージや入力制限等がもう少し厳密になると良いかも • 今回で言うと、サービスプリンシパルの生成が自動化されるとか

Slide 22

Slide 22 text

No content