Toilを無くして徒然なるままに日暮し硯に向かひたい

生成AIアプリケーション開発などを行うエンジニアのブログです。

3-SHAKE SRE Tech Talk #8レポート(k8sの話もたくさん)

この記事はKubernetes Advent Calendar 202319日目の記事です。

私は12月1日に株式会社スリーシェイクに入社した、小渕と申します。

kubernetesは初心者ですが、Sreake事業部のSREとしてしっかりキャッチアップして頑張ってまいります。

3-shake.connpass.com

さて、12月18日に弊社の勉強会「3-shake SRE Tech Talk #8」が行われました。

半分以上はKubernetesの話だったので、この勉強会の話題を書きたいと思います。

↓開催中メモ代わりにX(旧Twitter)への自分の投稿はこちら(全部スレッドで連なっています)

Xにて#SRETTで検索した投稿(最新)はこちら

↓セッション毎に分けて、書いてます。

スリーシェイク技術顧問 青山真也さん「KubeCon + CloudNativeCon NA 2023 Sessions for Site Reliability Engineers」

最初はメインセッション。スリーシェイク技術顧問で、サイバーエージェントの青山真也さん「KubeCon + CloudNativeCon NA 2023 Sessions for Site Reliability Engineers」

kubernetesユーザの方にはお馴染み、日本のkubernetesの第一人者の方です。

↓スライドはこちら

speakerdeck.com

冒頭、ちらっとKubernetes完全ガイド第3版の話が進んでいるという「おお!」となるお話も!

↑こちらは第2版です。

k8sユーザのバイブルですよね。私も紙書籍版を持っています。

楽しみですね!

さて、セッションの内容としては、イベントのご紹介、参加者数の推移から、Keynoteで発表された2023年3月のDatadogの障害の話へ。

全てのデータセンターで60%のnodeが1時間ダウンした大規模な障害だったそう。

恐ろしいですね!!

DatadogのK8sクラスタのnodeは Ubuntu 22.04にVer. UP Rolloutをしていっているが、 20.04と22.04の間にあった必要のないルーティングポリシーを消す変更があり、障害に繋がったとのことです。

Auto Scalingが走って、救われた面もあるが、 50%強のスケールアウトを一気にしようとすると課題も多々ありました。

他人事ではなく、障害時に復旧するレベルでオートスケールを設計する必要がある、というのが教訓でした!

二つ目のお話「OpenTelemetry」

OpenTelemetryとは、Traceデータを収集するSDKで、YAMLで書くよりも、OTTLで書くと、コードの記述量が少なくて済むメリットも!

PrometheusからOpenTelemetry Collectorに置き換えると、約1/5にリソース消費を抑えられるなどのメリットもあるそうです。

ただし、Otelは多少バグがあるので使用上は注意とのことでした。

他に、Argoの話もしてくださいました。

Config Management Plugins(CMP)を使うと、HelmやKustomizeでない任意のツールでArgoCDと連携できるとのこと!

青山さんのメインセッションの後は、6名の方のLT!

社外の方3名、社内3名です。

スリーシェイク高村さん「障害対応のススメ」

speakerdeck.com

新人SREはエキスパートSREとペアで障害対応しよう!というお話。

ペアで障害対応することにより、新人だけでなく、エキスパートSREも自分だけでは把握しきれない分も把握できます。

ペアプログラミング」ならぬ「ペア障害対応」いいですね!

ポストモーテム作成も!私もスリーシェイクの一員として早くやってみたいですね!

ペア障害で属人化解消というメリットもあります!

incident-response.connpass.com

「Incident Response Meetup vol.1」という良さげな勉強会もあるのとのこと!でした!

mixi 清水さん「今年1年のEKS運用振り返り」

speakerdeck.com

mixiさんのサービス「みてね」はEKSを使用しているそうで、運用の苦労話も聞けました。

OOMKilledが起こることもあり、CPU、メモリ等リソース調整しないといけないのは大変ですね。

Railsアプリはメモリを食い、再起動かからないとメモリ消費が増えてくるそうです。

定期的に再起動かけるようにして対応したそうです。

手動運用でアップデートが放置されがちだった箇所も、自動アップデートもできるようにしたのはすごいですね。

kubectlでPod作業するのを禁止したりだとか。その代わり踏み台からのアクセスできるようにしたり。

k8s運用の勉強になりました。

スリーシェイク bells17さん「KubernetesとCoreDNS」

speakerdeck.com

自分もEKSでCoreDNSのステータス低下問題に悩まされたことがあったので、ありがたいお話でした。

bells17さんお得意のK8sのコードリーディングでCoreDNSのロジックに迫っていってました。

CoreDNSのデプロイからnameserverにIPアドレスを設定するまでの流れと、 CoreDNSによるService/Podの名前解決を解説してもらいました。

Kubernetes 側で定義されている DNS の仕様に従って、 CoreDNS 側で Kubernetes 用の plugin が実装されてるとのこと。

私もkubernetesの力をつけて、bells17さんの話を理解できるように頑張っていきます!

ZLab yosshi_さん「Grafana Agent を用いた Continuous Profiling」

qiita.com

qiita.com

Grafana Agentで eBPF が使われているそうです。

eBPF だと kernel level で情報がとれるので、より詳細な情報を取れるのではないか、という期待があるとのことでした。

Grafana Agentのgolang pullもあり、対象言語はGo言語のみで、取得対象はpprofの情報になるので、CPU以外にもメモリ等の情報も収集可能とのことでした。

スリーシェイク まさすずさん「Terraform使いがPulumiに入門する」

speakerdeck.com

Terraform(HCL)の記述力に限界を感じていたので、Pulumiを使い始めた。とのことでした。

Pulumiとは任意のプログラミング言語でインフラ構築可能なプロビジョニングツールです。

TerraformやAnsibleなどインフラのツールって柔軟性に欠けるので、任意のプログラミング言語で柔軟にインフラ構築できるのはいいですよね!

Pulumi Cloudは個人で使う分には無料とのことでした!

FLUX cstokuさん「へーしゃで起こったGoogle Cloud課金事故事例」

Cloud Logging で Log Storage cost が爆増。

ログレベル Debug でメッセージが出力されるバッチが (バグで) 何回も呼ばれるようになっていた、とのことでした。

Cloud Loggingではログレベルに気をつけましょう!

また、Cloud Storageにて、Archive時に大量課金事故が発生したそうです。

これはArchiveで費用が嵩むのは仕方がないものの、想定できておらず、予算がつけれてなかったとのことでした。

それから、BigQueryをTerraformでLogical StorageからPhysical Storageに変更しようとしたら、 変更されておらず、Active Logical Strageでコスト増!

原因はドキュメントに乗っていたクエリが間違っており、 さらに、知らないうちに正しいものに更新されていた。という大変な思いも。

ドキュメントも鵜呑みにはできないですね。

課金事故勉強になりました!

アンケート

参加してくださった方ありがとうございました。

アンケートのご記入にもご協力くださいm(._.)m

docs.google.com

アーカイブ動画

編集後、アーカイブ動画がアップロードされる予定です。

YouTubeの3-SHAKEチャンネルをご登録の上、お待ちください。

アドベントカレンダー次回へのバトンタッチ

Kubernetes Advent Calendar 202312月20日はHiroshi Hayakawaさんの記事です。

お楽しみに!

生成AIについて学んだのでざっとアウトプット

はじめに

3-shake Advent Calendar 2023シリーズ1、17日目の記事です。

私は12月1日に株式会社スリーシェイクに入社した、小渕と申します。

前職は暗号資産交換所で、AWS上でブロックチェーンルノードやウォレット基盤の構築・運用を行なってきました。

スリーシェイクではSreake事業部のSREとして、インフラをやりつつも、生成AI等のアプリケーション構築も行なっていく予定です。

よろしくお願いいたします。

生成AIをこれからやっていくにあたり、インプットした情報のアウトプットをしていきます。

ポエムになりますが、ご了承くださいm(._.)m

生成AIを触ってみる

ディープラーニング(深層学習)などを用いた従来のAIは基本的にデータの「分析」に使われてきましたが、生成AI(Generative AI)は文字通り「画像」や「テキスト」、「ソースコード」を生成します。

2022年春頃からは、ユーザが入力したテキストを元に絵画を描く画像生成AIのサービスが数多く誕生し、2022年11月にベータ版がリリースされたChatGPTのリリースは世界的に注目を集め、今年2023年は生成AIがIT業界で注目の的となった一年でした。

ChatGPTを使ったことがない方は無料版を使えますので、ぜひ使ってみましょう。

私は以下の使い方をしてみました。

私「私はIT企業でクライアントワークをするエンジニアです。顧客に提案するため、生成AIを使う事業企画書を出してください。」

もちろんです。生成AIを活用した事業企画書は、顧客への提案を効果的に行うための素晴らしい手段です。以下は、そのような企画書の構成例です。まず、以下の項目を含めることが重要です。

  1. 導入の背景と目的

    • なぜ生成AIを導入する必要があるのか、それによって解決できる課題や得られるメリットを明確に説明します。
  2. 生成AIの概要

    • 生成AIの基本的な機能や技術について説明し、どのように機能するのかを分かりやすく示します。
  3. ビジネスへの価値

    • 生成AIがビジネスに与える具体的な価値や影響について示します。例えば、時間の節約、コスト削減、品質向上、顧客満足度の向上などです。
  4. 導入計画

    • 生成AIの導入に関する計画を示します。導入の段階、時間枠、費用、人員配置などを詳細に記載します。
  5. リスクと対策

    • 導入に伴うリスクや懸念点を列挙し、それに対する対策やリスク軽減策を提示します。
  6. 成功事例や導入効果

    • 他社での成功事例や導入後の具体的な効果、改善された業績などを具体的な数字や事実を交えて提示します。
  7. サポートとトレーニン

    • 導入後のサポート体制や従業員へのトレーニングプログラムについて説明します。利用者が十分なサポートを受けられるように計画を立てます。
  8. 導入後の運用と評価

    • 生成AIの導入後、どのように運用し、どのような指標で評価するのかを示します。

これらの要素を含んだ事業企画書は、顧客に対して生成AIの導入がなぜ重要であるのかを説得力を持って伝えることができます。また、具体的な事例や効果を提示することで、顧客の興味を引きつけ、導入に対する理解を深めることができるでしょう。

これだけ見ても、既存のチャットボットよりちゃんとした返しをしているのがお分かりいただけるでしょうか?

コンピュータへの指示を「プロンプト」と言いますが、このプロンプトを具体的にすればするほど、AIの返答も精密になっていきます。

プロンプトを適切に設計することを「プロンプトエンジニアリング」と言います。

生成AIの得意不得意

テキストを生成するのは得意ですが、算数・数学の文章題は意外にも苦手です。

生成AIが言葉を理解(自然言語処理)するのに、単語の意味や相関性をベクトルを用いて、膨大な蓄積データから確率的に処理しているのですが、 文章題もテキスト処理してしまうと文章を確率的に処理して、残念な結果になることも。

膨大なデータの蓄積はしているものの、その中にないことには答えられません。

例えば、ChatGPTで会社のことを聞くと知らないとのことでした。

私「株式会社スリーシェイクについて教えてください。」

申し訳ありませんが、2022年の情報までしか私のデータベースにはアクセスできません。そのため、特定の企業に関する最新の情報を提供することはできません。株式会社スリーシェイクについての情報は、公式ウェブサイトやニュース記事、ビジネスディレクトリ、または企業情報を提供するデータベースなどを確認することで最新の情報を入手できるかもしれません。お探しの情報が特定の業界やサービスに関連している場合は、その背景や提供しているサービスについて私がお手伝いできるかもしれません。どのような情報をお探しですか?

生成AIをどうビジネスに活用するか

まずはChatGPTに聞いてみました。

私「生成AIを用いたビジネスアイデアを教えてください」

生成AIを活用したビジネスアイデアはさまざまですが、いくつか例を挙げてみましょう。

  1. カスタマイズされたコンテンツの提供

    • 生成AIを使用して、個々のユーザーに合わせたカスタマイズされたコンテンツを提供するプラットフォームを開発する。例えば、ニュース記事、ブログ投稿、商品レコメンデーションなど。
  2. クリエイティブなコンテンツ生成ツール

    • 生成AIを活用したクリエイティブツールの開発。例えば、自動生成されたイメージ、デザイン、音楽、または詩の生成ツール。
  3. 仮想アシスタントやカスタマーサポート

    • 会話型AIを活用した仮想アシスタントやカスタマーサポートの提供。顧客とのインタラクションを自動化し、サポート体制を向上させる。
  4. 製品開発やデザインの支援

    • 生成AIを使って、新しい製品のアイデアやデザインの提案を行うツールやプラットフォームを提供。アイデアのブレストや設計プロセスを支援する。
  5. 自動化されたレポートや分析

    • 生成AIを利用して、データ分析やレポート作成を自動化するツール。ビジネスのデータを解釈し、洞察を提供する。

これらのアイデアは、生成AIの力を活用して新しいビジネスモデルやサービスを展開する可能性を示しています。AI技術を利用することで、効率性の向上や顧客体験の向上など様々なメリットを生み出すことができます。

このように出てきました。

ChatGPTだけを使うのであれば、個人が補助的に使用し、生産性を高めていくことはできますが、社内で生成AIを用いたアプリケーションを導入するとなると、 業務分析をし、業界や各社の業務に合わせたプロダクトが必要になってくるかと思いました。

参考資料

生成AIのまとまった知識を頭に入れておこうと思い、ビジネス書を一読しました。

小林雅一 著「生成AI――「ChatGPT」を支える技術はどのようにビジネスを変え、人間の創造性を揺るがすのか?」ダイヤモンド社

生成AIに関するビジネス書は数多く出ていて、他のは読んでませんが、読むとしたらご自分にあったのを読むといいと思います。

生成AIについて知った後、じゃあビジネスに導入するのはどうすればいいのか?と悩むことになると思いますが、 このブログ書いている最中にググったら、以下の書籍が良さげです。(早速Kindle版をポチりました)

小澤健祐(おざけん)著「生成AI導入の教科書」ワン・パブリッシング

3-shake Advent Calendar 2023シリーズ1、3日目には橋本さんがAI何も知らないSREがGenerative AIで何ができるか考えた in 2023を書いています。こちらもぜひお読みください。

スリーシェイクの生成AIの取り組み

スリーシェイクでは、Google Cloud向けの生成AIスターターパックというパッケージングサービスを提供しています。

sreake.com

また、生成AIを用いたアプリケーション開発、インフラ基盤構築も行います。

以下からお問い合わせください。

sreake.com

アドベントカレンダー翌日の予告

12月18日の3-shake Advent Calendar 2023は以下の通りです!

シリーズ1は、林愛子さん「5,000円以下で選ぶ!今年のトレンド「ノームコア」をおさえたメンズコーデ3選。

シリーズ2は、@kiyos_1207 さん「terraform test: 応用機能

明日もお楽しみに!

IT勉強会に飯モクおじさん現る

cryptocurrency.connpass.com

12月9日にビットコインとか忘年会を行いました。 参加してくださった皆様ありがとうございました。

私は12月に本業がブロックチェーンではなくなったものの、 勉強会の運営は引き続きやらせてもらってます。

今回の勉強会で楽しい面もありましたが、 腹立たしいこともありました。

飯モクおじさんが紛れ込んでいたのです。

懇親会付きで参加費無料にしていたので、 紛れることはしょうがなかったのですが、 まさか少人数の勉強会にも紛れ込むとは。

LT会をやった後にピザパだったのですが、 思い返せば、LT中、飯モクおじさんはスマホをずっといじってましたね。 発表内容に興味ないのでしょうね。

懇親会開始後、ひたすらピザを食べていて、 私は性善説的に、初めてだから話す相手いなくて、食い続けているだけかと思い、 話しかけました。

私「普段、ブロックチェーンに関する何かやられているんですか?」 飯モクおじさん「コンピュータ作っています」 と噛み合わない謎返答。

私は運営ということもあり、他の方との会話もあって、 飯モクおじさんだけに注力できませんでしたが、 いつの間にか帰ってました。

気付かれずに帰るのは忍者並(苦笑)

懇親会中は、飯モクおじさんだけに意識を集中できませんでしたが、 時が経つにつれ、腹が立ってきました。

blog.shoko.dev

SHOKO SATOさんの「めし目的人間撲滅委員会の活動報告」というタイトルのブログ記事がバズったばかり。 IT勉強会運営の方々は、飯モクおじさんは他人事ではなく、身近にいるものだと思って対策した方がいいかも、

特にコロナ明けで、懇親会付きオフライン勉強会が増えたでしょうし。

うちの勉強会の運営内で、「交通費使ってまで来てコスパ悪くね?」 と話をしていたら、「チャリで来るんじゃないの?都心であればいけるっしょ。」とのこと。

チャリで来ているかは分かりませんが、なるほどね(苦笑)

タイパ(タイムパフォーマンス)も悪い気がするけど、 飯モクおじさんにとっては、こういうことが趣味なのかとも思ったり。

うちの勉強会は普段オンラインで、ときどきオフラインイベントをやっています。 オフラインだとやっぱり懇親会もつけたい、と思いますが、 これからは、飯モク対策しつつ、健全な会にしていきたいと思います。

ブロックチェーンノード運用の苦労話

アドベントカレンダー

この記事はSRE Advent Calendar 2023 2日目の記事です。

1日目はしょっさんGitHubのorganization移行をやったお話でした。

転職しました

2023年11月30日で、暗号資産交換業者ビットバンクを退職し、12月1日にスリーシェイクに入社しました。

ビットバンクでは関係各位お世話になり、ありがとうございました。

スリーシェイクでは、皆様お世話になります。

SRE構築総合支援サービスを行うSreake事業部にて、これからガッツリとSREの世界で頑張っていきます!

日本のSREを盛り上げていきたいと思います。SREの皆様、よろしくお願いいたします!

これまでやってきたブロックチェーンのキャリアについて

私は、ビットバンクの前は、フレセッツという暗号資産交換所向けウォレットベンダーにいました。途中買収により、HashPortに。

暗号資産業界にかれこれ5年いて、ウォレットの新規開発フェーズだったフレセッツでの最初の1年を除いて、4年間はブロックチェーン領域のEmbeded SREをやってました。

この記事を書いているときは、スリーシェイクに入って1日目が終わったところであり、スリーシェイクでの経験で書くのが無理なので、 自分のキャリアの棚卸しも兼ねて、これまでのブロックチェーンのことを振り返ろうかな、と思います。

ブロックチェーンノード構築、運用はインフラエンジニアの仕事であり、SREの皆さんもやる機会があるかもしれないので、参考になれば幸いです。

ブロックチェーンノード

ビットコインイーサリアムなどの暗号資産(仮想通貨)について名前は聞いたことあるかな、と思いますが、 トランザクションやブロックのデータを蓄えている分散台帳です。

「フルノード」という言葉を聞いたことがあるかもしれません。ビットコインのフルノードの場合は、過去から全てのトランザクションとブロックデータを持っています。

イーサリアムなどの通貨によってはフルノードでも全てのデータを持っておらず、アーカイブノードが全てのデータを持っているなど名前が異なったりしますw

ここではブロックチェーンノードということにします。

ブロックチェーンノード運用の何が大変か

フレセッツに在職していた当時、同僚が書いたブロックチェーン徒然日記も併せてご覧ください。

インスタンスとコスト

ブロックチェーンノードというのはアプリケーションとデータベースを持っており、特殊なシステムと言えるかな、と思います。

CPU、メモリをくうて、でかいサーバーが必要です。

ブロックチェーンデータが大きすぎるため、AWSでいうとFargateは使えず、EC2を使う必要があります。

m5.xlargeとかxlarge、2xlargeなどでかいインスタンスを使用してコストもすごいです。

コストを少しでも抑えるため、適切なインスタンスサイズを模索するのも大事な仕事でした。

ビットバンクにいたときは、通貨数もどんどん増えて、通貨ごとに異なるブロックチェーンノードの種類もどんどん増えていきました。

個人でブロックチェーンノードを利用する際、ノード内のウォレットを使用したりしますが、 商用利用する際は、安全性を考えて、安全な設計のウォレットをノードの外部で動かします。

ブロックチェーンノードは参照のみでよいため、複数の開発環境のノードを1台にまとめて、 複数環境のウォレットからアクセスするなど、コスト削減も推進しました。

最近話題のFinOpsを実践できたとも言えます。

Gethが高負荷で落ちたり同期遅延

イーサリアム(Ethereum)のノードgo-ethereum(通称Geth)を2019年とかに運用していたときは、品質も悪く、 高負荷でプロセスが死んだり、ブロックの同期遅延が起こったりして大変だったな、と思い出しました。

あとは、Ver.の違いでチェーンの分岐が起こる事故起こったり、致命的なバグのHot-Fix版が出た数日後にバグを突かれてチェーンの分岐が起こったり。

なかなか大変でしたね。

ビットコインと同じくマイニングしてブロックを生成するPoWから2022年9月にステーキングしたバリデータノードがブロック生成するPoSに移行した後は安定したと思います。

Web3のプロジェクトとかやるとなると、Geth使うかもしれませんが、今はマシです。

Polygonなどのノードではデータが6TB

同じくWeb3のプロジェクトで、Polygonノードの運用とかやるなら大変ですよ。

ブロックチェーンデータが6TBとかあるので。。。

Gethの場合は初期から同期しても、インスタンスのサイズによりますが、1週間とかでできるものの、 Polygonの場合は永遠に終わらないので、 公式が配布しているSnapshotをダウンロードして展開してからプロセスを起動するのですが、 Snapshotのダウンロードだけで丸一日かかったりします。

これだけデータがでかいと途中でダウンロード失敗することもあり、やり直しが何回も発生して大変でした。

振り返って

ブロックチェーンノードの稼働自体は難しくないのですが、ブロックチェーンネットワーク自体がおかしくなると、 ウォレットの入出金を止める必要があったり、外乱も大きなシステムでした。

こんなじゃじゃ馬と格闘したのもいい経験です。

これからは

一旦ブロックチェーンは一区切りで、これからはスリーシェイクのSreakeにて、 kubernetes等を使用したクラウドネイティブなアーキテクチャを構成していき、効率的に信頼性を高める仕事をしていきます。

はてなブログを開設して1記事目が今回でしたが、今後も記事を増やしていきたいと思います。

ブロックチェーンでマニアックだったかと思いますが、最後までお読みいただきありがとうございました。

次回は

SRE Advent Calendar 2023 3日目はみゅーみくすさんのゆるやか成長スタートアップのEnabling SRE的活動です!