TECH PLAY

株匏䌚瀟G-gen

株匏䌚瀟G-gen の技術ブログ

å…š765ä»¶

G-gen の堂原です。本蚘事は Google Cloud Next '24 in Las Vegas の 2 日目に行われた Breakout Session「 Optimize your machine learning applications using BigQuery DataFrames 」のレポヌトです。 他の Google Cloud Next '24 の関連蚘事は Google Cloud Next '24 カテゎリ の蚘事䞀芧からご芧いただけたす。 セッションの抂芁 背景 BigQuery DataFrames デモ ナヌスケヌス 関連蚘事 セッションの抂芁 本セッションでは、この床 GA ずなった BigQuery DataFrames に぀いお、抂芁、デモ及びナヌスケヌスが玹介されたした。 アゞェンダ 背景 Next '24 内でも繰り返し述べられおいる通り、デヌタ分析、特に AI・生成 AI を甚いたデヌタ分析のための幅広いサヌビスが Google Cloud では提䟛されおおり、BigQuery はその代衚ず蚀えるでしょう。 さお、Python はデヌタアナリストやデヌタサむ゚ンティストセッション䞭では「data practitioner」ず称されおたしたから最も人気なプログラミング蚀語です。 pandas や scikit-learn を甚いたデヌタ凊理、AI 分析はメゞャヌなデヌタ分析手法です。 ここで、BigQuery に蓄積されたビックデヌタを、これらのラむブラリで分析するずき、以䞋のような課題に盎面したす。 メモリ : これらのラむブラリはデヌタを䞀床ロヌカルのメモリに栌玍する必芁があり、TB を超えるようなデヌタを分析する際、メモリ䞍足に盎面する コンピュヌティング : ロヌカルで TB を超えるデヌタを凊理する堎合、䜿甚しおいる蚈算機のパワヌが䞍足しおしたう ガバナンス : 分析のためにはデヌタをロヌカルにコピヌする必芁があり、デヌタの挏えい等のリスクが぀きたずう そのため、これたでは Spark 等を甚いる必芁がありたした。 BigQuery DataFrames BigQuery では、pandas、scikit-learn のような操䜜感で BigQuery 䞊のデヌタを分析するこずができる、 BigQuery DataFrames が提䟛されおいたす。 BigQuery DataFrames を甚いるこずで、デヌタを BigQuery に残したたた、぀たり圧倒的なスケヌリング機胜が担保されたたた、慣れ芪しんだ方法ずほがほが倉わらないデヌタ分析が可胜ずなりたす。 以前からプレビュヌ公開されおいた本機胜ですが、この床、晎れお GA䞀般公開されたした。 BigQuery DataFrames は、以䞋のブログ蚘事で解説しおいる通り倧きく 2 ぀の機胜が提䟛されおいたす。 bigframes.pandas bigframes.ml blog.g-gen.co.jp その䞊で今回、 Gemini や PaLM 2 が呌び出せる bigframes.ml.llm が機胜ずしお远加されたした。 デモ 䞊蚘の機胜のデモずしお、商品の賌入履歎を基に以䞋のような凊理を行う様子が玹介されたした。 デヌタの前凊理 k-means を甚いたクラスタリング Gemini を甚いた各クラスタヌの解析及びキャンペヌンメッセヌゞの䜜成 箄 1.6 TB ある賌入履歎テヌブルに察しお、メモリが 15 GB しかないむンスタンス䞊で䞊蚘の凊理がスムヌズに行われおいきたした。 ナヌスケヌス 最埌に、ナヌスケヌスずしお囜際的な小売䌁業である Carrefour 瀟での掻甚が玹介されたした。 Carrefour 瀟では、䞖界各囜で生成されたデヌタが地域レベル、グロヌバルレベルの BigQuery に栌玍されおいたす。 Carrefour 瀟でも䟋に挏れず、デヌタ分析チヌムで最も需芁のある蚀語は Python であり、実行環境のキャパシティを気にするこずなく Python での分析が可胜な BigQuery DataFrames はかなり重宝されおいるずのこずでした。 関連蚘事 blog.g-gen.co.jp 堂原 竜垌 (蚘事䞀芧) クラりド゜リュヌション郚デヌタアナリティクス課。2023幎4月より、G-genにゞョむン。 Google Cloud Partner Top Engineer 2023, 2024に遞出 (2024幎はRookie of the yearにも遞出)。䌑みの日はだいたいゲヌムをしおいるか、時々自転車で遠出をしおいたす。 Follow @ryu_dohara
G-gen の歊井です。本蚘事は Google Cloud Next '24 in Las Vegas の1日目に行われた Breakout Session「 Build an integrated DevSecOps solution with GitLab and Google Cloud 」のレポヌトです。 他の Google Cloud Next '24 の関連蚘事は Google Cloud Next '24 カテゎリ の蚘事䞀芧からご芧いただけたす。 セッションの抂芁 Better Together: Benefits and Features Workload Identity Federation Demonstration 関連蚘事 セッションの抂芁 本セッションでは GitLab ず Google Cloud による DevSecOps ゜リュヌションの玹介が䞀郚デモを亀えお玹介されたした。 Better Together: Benefits and Features セッションの冒頭では、GitLab ず Google Cloud ずの芪和性の高さや利䟿性、双方が連携するうえでのセキュリティの高さを玹介しおいたした。 Workload Identity Federation CI/CD パむプラむンを構成しお䞀連のゞョブを実行するアプリケヌション GitLab runner では、Google Cloud ずの連携にサヌビスアカりントキヌを必芁ずしないセキュアな連携手法 Workload Identity Federation が利甚可胜であるず玹介されたした。 Demonstration セッションでは以䞋に぀いおデモを亀えた玹介がありたした。 GitLab ず Google Cloud の Workload Identity 連携 GitLab runner によるリ゜ヌスデプロむ 公匏ドキュメント やセットアップスクリプトに加え、コン゜ヌル画面䞊から簡単な操䜜でセットアップ可胜なメニュヌも揃っおおり、どなたでも簡単にご利甚いただけるのではないかずいう印象を受けたした。 関連蚘事 blog.g-gen.co.jp 歊井 祐介 (蚘事䞀芧) 2022幎4月にゞョむン。クラりド゜リュヌション郚所属。G-gen唯䞀の山梚県圚䜏゚ンゞニア Google Cloud Partner Top Engineer 2024 に遞出。IaC や CI/CD 呚りのサヌビスやプロダクトが興味分野です。 趣味はロヌドバむク、ロヌドレヌスやサッカヌ芳戊です。 Follow @ggenyutakei
本蚘事は Google Cloud Next '24 in Las Vegas の1日目のキヌノヌトで発衚された Vertex AI Agent Builder (Vertex AI Agents) を觊っおみたのでご玹介したす。 他の Google Cloud Next '24 の関連蚘事は Google Cloud Next '24 カテゎリ の蚘事䞀芧からご芧いただけたす。 抂芁 Agent ずは Vertex AI Agent Builder ずは 料金 抂芁 詊算䟋 Vertex AI Agents 抂芁 Agents の構成芁玠 Goal Instructions Examples Tools 抂芁 Built-in tools OpenAPI tools Data store tools 觊っおみた 関連蚘事 抂芁 Agent ずは 生成 AI アプリケヌションにおける Agent ずは、人間の代わりに生成 AI が、目的を達成するために様々な機胜 (ツヌル) を甚いお情報を収集しアクションを実行するこずができるシステムのこずを指したす。 䟋えば、「Google 怜玢を実行できるツヌル」ず「瀟内情報を怜玢できるツヌル」を持った Agent を䟋にみおみたしょう。 通垞 LLM は、過去のトレヌニングデヌタで孊習されおいるため最新情報に回答するこずはできたせんが、「今の日本の総理倧臣は」ずいうナヌザヌからの質問が来たこずを想定しおみたす。 Agent は適切な回答を生成するために、どのツヌルを甚いた方がいいのか自ら考え実行し回答を生成したす。今回の堎合ですず、最新情報に回答するために「Google 怜玢を実行できるツヌル」を甚いお 最新情報を取埗し回答を生成 するこずができたす。 Agent 䜿甚䟋 Agent を応甚するこずで、今たで人が介入しおいた耇雑な凊理を生成 AI アプリで代替しおいくこずが期埅できたす。 Vertex AI Agent Builder ずは Vertex AI Agent Builder では、このような Agent 開発をサポヌトするサヌバヌレスか぀フルマネヌゞドなサヌビスです。たた、ノヌコヌド・ロヌコヌドで Agent 開発ができる点も倧倉魅力的です。 Vertex AI Agents では、Agent の開発からテスト、デプロむはもちろんのこず、䌚話履歎の管理や Agent のバヌゞョン管理たで、Agent 開発をスムヌズに進められる環境が倚数揃っおいたす。 Vertex AI Agent Builder は、旧来は「Vertex AI Search and Conversation」ず呌ばれおいたした。しかし 2024 幎の Google Cloud Next のタむミングで Vertex AI Agent Builder ず改称されたした。Vertex AI Agent Builder の䞭に、゚ンタヌプラむズサヌチを実珟する Vertex AI Search ず、゚ヌゞェントを実珟する Vertex AI Agents の2機胜が内包されおいたす。 Vertex AI Agent Builder の名称の倉遷 圓蚘事では䞻に Vertex AI Agents の内容を玹介したす。それ以倖を含む Vertex AI Agent Builder の詳现な解説蚘事は、以䞋をご参照ください。 blog.g-gen.co.jp 料金 抂芁 Vertex AI Agent Builder の料金は、公匏ペヌゞだず Agent に察しお $12/1000ク゚リ ず蚘茉されおいたす。ただし、プレビュヌ期間䞭の料金に぀いおは以䞋の泚意曞きもあるため、さっそく觊っおみたいず考えおいる方は確認したほうが良いかも知れたせん 2024幎4月珟圚、Vertex AI Agents の課金はプレビュヌずなっおたすため、詳现は Google 担圓営業にお問い合わせ䞋さい。 Vertex AI Agent Builder - Pricing 詊算䟋 Vertex AI Agent Builder で䜜成した Agent アプリに察し、䞀月あたり 10,000 ク゚リのリク゚ストが発生するこずを想定したす。尚、ツヌルは Vertex AI Search のみが蚭定され、すべおのク゚リに察しツヌルを1回利甚するこずを想定したす。 # Agent 月額コスト 10,000 ク゚リ × ($12 / 1,000 ク゚リ) = $120 # ツヌル月額コスト 10,000 ク゚リ/月 × ($2 / 1,000 ク゚リ) = $20 # 月額合蚈 $120 + $20 = $140 Vertex AI Agents 抂芁 Vertex AI Agents ずは、Agent の開発はもちろん、テスト、デプロむができる Agent に特化した統合開発環境のようなツヌルです。 ナヌザヌむンタヌフェむスずしおは、以䞋のような機胜を提䟛しおいたす。 機胜名 説明 Agents Agent の構成芁玠を管理 Tools Agent が利甚するツヌルを管理 Test cases シミュレヌタで䜜成されたテストケヌスの管理・実行 Conversation history Agent の䌚話履歎を管理 Integrations Slack や Google Chat 等のむンテグレヌション管理 Prebuilt agents 人気のある Agent のサンプル集 Change history Agent の倉曎履歎 Agent settings Agent アプリ名、ロケヌション、LLM のモデル、ログ等の蚭定を管理 参考 User interface Agents の構成芁玠 Goal Goal (目暙) では、Agent が達成すべき目暙を定矩したす。耇雑に曞くより簡朔な目暙であるこずが望たしいです。 Instructions Instructions (手順・指瀺) では、目暙達成のために実行する必芁があるプロセスを定矩したす。ナヌザヌの問題を解決するための 段階的なアプロヌチ を蚘述したす。 Examples Examples (䟋)では、サンプル入出力䟋を定矩したす。䞀般的には few-shot prompt のようなものです。 少なくずも 1 ぀以䞊の Example が必芁ですが、4 ぀以䞊の Examples があるず Agent の動䜜粟床が向䞊したす。逆に蚀うず、Agent の動䜜粟床を䞊げたい堎合、この Examples を増やしおみたり、既存の Examples を改善しおみるずいいでしょう。 参考 At least one example for each playbook 参考 Agent の構成芁玠 Tools 抂芁 Tools (ツヌル)ずは、Agent が倖郚システムに接続するための機胜です。Agent 耇雑なタスクを効率的に凊理するためにツヌルを䜿甚したす。぀たり、Vertex AI Agents を構成するために、Agent ず同じくらいツヌルは重芁になっおきたす。 参考 Tools Built-in tools Built-in tools は、 Google によっおホストされたマネヌゞドなツヌルで、すぐに利甚可胜です。珟圚は、Code Interpreter のみが察応しおいたす。 Code Interpreter ずは、自然蚀語から Python コヌドを自動で生成および実行するこずで、デヌタ分析や可芖化、耇雑な蚈算凊理などの様々なタスクを実行できるツヌルです。 OpenAPI tools OpenAPI tools は、 OpenAPI のスキヌマを定矩するこずでナヌザヌ独自のツヌルが䜜成できるツヌルです。スキヌマの蚘述はもちろん、倖郚 API を呌び出す際の認蚌呚りなどナヌザヌ偎で定矩する必芁がありたすが、汎甚的な API 実行が可胜ずなりたす。 クラむアント偎からは実行できるが OpenAPI tools からアクセスできない堎合は、 Function tools などを甚いお、API 実行をクラむアント偎で行い、Agent 偎では API 実行結果を受け取るような工倫が必芁です。 Data store tools Data store tools は、Vertex AI Search のように瀟内ドキュメントや指定した Web サむトに察し怜玢をかけたり、怜玢芁玄を取埗したりできるツヌルです。぀たり、Vertex AI Search のような機胜をツヌルずしお利甚できる機胜です。 デヌタストアのタむプは以䞋のいずれかがサポヌトされおいたす。 PUBLIC_WEBPublic Web コンテンツを含むデヌタストア UNSTRUCTURED非構造化デヌタを含むデヌタストア STRUCTURED: 構造化デヌタを含むデヌタストア 觊っおみた 今回は非垞にシンプルな Agent アプリを構築しおいきたす。 Agent アプリの構成ずしおは、ナヌザヌの質問が蚈算問題だったら Code Interpreter を䜿甚し、そうでなければツヌルを䜿わず盎接 LLM による回答を生成させる構成です。 耇雑な蚈算問題を埗意ずしない LLM の堎合、このような Agent を構成するこずでグラりンディングが実装できたす。 構成䟋 Google Cloud コン゜ヌルから [Agent Builder] > [アプリ] > [新しいアプリを䜜成] を抌䞋したす。 Vertex AI Agent Builder コン゜ヌル画面① アプリの皮類で [Agent] を遞択、衚瀺名ずリヌゞョンを蚭定し䜜成を抌䞋したす。 Vertex AI Agent Builder コン゜ヌル画面② しばらく埅぀ず、Agent Demo App が䜜成できたす。デフォルトで「Default Generative Agent」ずいう名前の Agent が䜜られたす。 Agent App コン゜ヌル画面① Default Generative Agent のパラメヌタをいく぀か倉曎したす。 Goal を以䞋に倉曎したす。 You are an general agent. Support customer. Instructions を以䞋に倉曎したす。 - if the customer asks for calculations, - Use ${TOOL: code-interpreter} - else, - Answer with a general answer. 倉曎したら [Save] を抌䞋したす。 Agent App コン゜ヌル画面② それでは、画面右のプレビュヌ画面で動䜜確認を行いたす。 たずは、「4x 3 -2x+1 を埮分しお」ずいうプロンプトを実行しおみたす。 するず裏偎では Agent が以䞋の凊理フロヌを実行しおナヌザヌぞの回答を生成しおいたす。 Agent は、ナヌザヌのプロンプトが蚈算問題だず刀断し、Code Interpreter のツヌルを䜿甚 Code Interpreter により Python コヌドが生成および実行され、正確な回答結果が埗られ LLM に枡されたす 最埌に LLM は、ツヌルの回答結果をもずにナヌザヌぞの回答文を生成しおレスポンスずしお出力 動䜜確認① 次に、「BigQuery に぀いお教えお」ずいうプロンプトを実行しおみたす。 するず、蚈算問題ではないのでツヌルを䜿わずに䞀般的な回答を生成しおいるこずが確認できたした。 動䜜確認② 関連蚘事 blog.g-gen.co.jp G-gen 線集郚 (蚘事䞀芧) 株匏䌚瀟G-genは、サヌバヌワヌクスグルヌプずしお「クラりドで、䞖界を、もっず、はたらきやすく」をビゞョンに掲げ、クラりドの導入から最適化たでを支揎しおいる Google Cloud 専業のクラりドむンテグレヌタヌです。
G-gen の奥田です。この床 Google Cloud Next '24 in Las Vegas で発衚された Gemini in BigQuery の デヌタキャンバス 機胜を詊しおみたので手順等をご玹介したす。 はじめに デヌタキャンバスずは 詊したこず 自然蚀語でク゚リするためのその他の手法 利甚料金 BigQuery キャンバスを䜜成 Gemini in BigQuery を甚いお SQL やグラフを䜜成 䟋1: 特定の数倀でデヌタを分類する 䟋2: 分類分け 䟋3:グラフを䜜成 はじめに デヌタキャンバスずは Gemini in BigQuery ずは、Google Cloud Next '24 で発衚された、Gemini for Google Cloud シリヌズの䞀郚であり、BigQuery での分析を生成 AI が補助する機胜の総称です。 圓蚘事では、Gemini in BigQuery の1機胜であるデヌタキャンバスを解説しおいたす。Gemini in BigQuery の党容やその他の機胜に぀いおは、以䞋の蚘事を参照しおください。 blog.g-gen.co.jp デヌタキャンバス Data canvasは、この Gemini in BigQuery に含たれる機胜の1぀です。圓機胜では、自然蚀語人間が普段話す蚀葉をプロンプトに入力するこずで SQL や Python のコヌドが生成されたす。これにより、コヌディングの時間を短瞮し、デヌタサむ゚ンティスト等が分析や可芖化を行うリヌドタむムを短瞮するこずができたす。 たた、䜜成したノヌトブックはク゚リの実行履歎などを衚で分かりやすく確認するこずができるため、匕き継ぎが倚く有るプロゞェクトなどでもデヌタを芖芚化しやすくなりたす。 本蚘事で䜜成したデヌタキャンバス 参考 Gemini で Google Cloud を強化 | Google Cloud 公式ブログ 参考 Google Cloud Next '24 in Las Vegas 速報レポート(キーノート・1日目) - G-gen Tech Blog なお、 BigQuery ずは、様々なデヌタを蓄積、統合、ク゚リできる Google Cloud旧称 GCPの分析甚デヌタベヌスです。様々な蚘事で、BigQuery に関しお解説しおいたす。 参考 BigQuery カテゴリーの記事一覧 - G-gen Tech Blog 詊したこず 詊した䜿い方はシンプルであり、以䞋の通りです。 1. Google Cloud 偎ぞ利甚申請を行う   →2024幎5月以降申請䞍芁 BigQuery キャンバスを䜜成 Gemini in BigQuery を甚いお SQL やグラフ を䜜成 参考 Set up Gemini in BigQuery  |  Google Cloud Documentation 自然蚀語でク゚リするためのその他の手法 BigQuery に察しお自然蚀語でク゚リする手法は、デヌタキャンバスの他にも、数倚く甚意されおいたす。以䞋の蚘事を参考にしおください。 blog.g-gen.co.jp 利甚料金 Gemini in BigQuery は、オンデマンドモヌドず、すべおの BigQuery Editions で利甚可胜です。ただし、Standard ゚ディションの堎合のみ、以䞋の2機胜が利甚できたせん。 デヌタむンサむト メタデヌタの自動生成Automated metadata generation Gemini in BigQuery 機胜を利甚しおも、通垞の BigQuery 料金以倖の料金は発生したせんが、前月の BigQuery 利甚ボリュヌムに応じお、翌月の Gemini in BigQuery の利甚回数に制限Quotasがかかりたす。前月のスキャン量やスロット量に応じお、翌月の1日あたりの実行可胜回数が決定したす。詳现は以䞋を参照しおください。 参考 : Gemini in BigQuery Pricing Overview 参考 : Quotas and limits - Quotas for Gemini in BigQuery BigQuery キャンバスを䜜成 『 BigQuery キャンバス 』 を䜜成したす。 キャンバスの䜜成のためには既存のテヌブルが必芁ずなるため別途䜜成する必芁がありたす。 サンプルデヌタずしお架空の䌁業リストを利甚したした。 Number CompanyName Industory EstablishYear Employee GS00001 株匏䌚瀟アルファネクスト 情報通信 2020 60 GS00002 ブルヌバヌドテクノロゞヌズ株匏䌚瀟 サヌビス 2016 15 
 
 
 
 
 各フィヌルドの皮類は䞋蚘の様に蚭定したした。 フィヌルド名ず型 テヌブル䜜成埌にホヌムタブ隣の『 â–Œ 』を抌䞋、『 デヌタキャンバスを䜜成 』を抌䞋したす。 『 Get started by selecting a data source 』、に利甚したいテヌブル名を入力し、『 ADD TO CANVAS 』を抌䞋したす。 遞択したク゚リのスキヌマが衚瀺されたら、巊䞋の『 <>ク゚リ 』を抌䞋し、ク゚リ甚のプロンプト䜜成りむンドりを衚瀺したす。 プロンプトを入力できるテキストボックスが衚瀺されたした。 Gemini in BigQuery を甚いお SQL やグラフを䜜成 テキストボックス䞊に䜜成したいク゚リを自然蚀語で入力したす。 今回詊した3぀の事䟋を玹介したす。 䟋1: 特定の数倀でデヌタを分類する プロンプトに入力した内容は䞋蚘です。 1995幎以前に蚭立された瀟員数50名以䞊の䌚瀟を教えおください。 右端の『 ▶ 』を抌䞋するこずでSQLが䜜成されたす。 『 ▶ 』を抌䞋する前 『 ▶ 』を抌䞋した埌 䜜成された SQL を実行する際は、プロンプト文の䞋の『 実行 』を抌䞋したす。 プロンプトの䞋にク゚リ結果が衚瀺されたした。 䟋2: 分類分け ク゚リ結果に察しお远加でク゚リを実行するこずが出来たす。 䟋1の結果の巊䞋にある、『 これらの結果に察しおク゚リを実行する 』を抌䞋するずプロンプトが新たに衚瀺されたす。 プロンプトに入力した内容は䞋蚘です。 䌁業を䞋蚘の様に分類しおください。瀟員数が1-50名、51名-100名、100名-150名、150名-300名、300名以䞊。分類した埌、それぞれの項目が䜕瀟ず぀あるのか教えおください プロンプト入力画面プロンプトの内容は途䞭で途切れおしたう様です 䟋1ず同様に右端の『 ▶ 』を抌䞋するこずで SQL が䜜成され、 䜜成された SQL を実行するために、プロンプト文の䞋の『 実行 』を抌䞋したす。 ク゚リ実行結果 ク゚リを実行するこずで、より具䜓的に分析が出来たした。 䟋3:グラフを䜜成 䟋2の結果の䞭倮䞋にある『 可芖化 』を抌䞋したす。 どの皮類のグラフを䜜成するか遞択できたす。今回は『 棒グラフの䜜成 』を抌䞋したす。 棒グラフが䜜成できたしたが、できればX軞の埓業員数は1-50名、51名-100名...ずいったように倀を調敎したいので、巊䞋の『 EDIT 』を抌䞋したす。 䜜成したグラフ(1回目) EDIT 抌䞋埌、プロンプトの内容を線集できるようになったので䞋蚘を入力したした。 䞊蚘の結果に察しお棒グラフを䜜成しおください。暪軞は埓業員数、瞊軞は䌁業数の合蚈です。暪軞のレンゞは䞋蚘の順番でお願いしたす。 1. 1-50 2. 51-100 3. 101-150 4. 151-300 5. 300以䞊 その結果、暪軞が敎理され芖芚的にも確認しやすいデヌタずなりたした。 䜜成したグラフ(2回目) Risa (蚘事䞀芧) クラりド゜リュヌション郚クラりドデベロッパヌ課 Google Cloudの可胜性に惹かれ、2024幎4月G-genにゞョむン。 Google Cloud Partner Top Engineer 2025 Google Cloud 11 資栌保有。日々修行䞭です Follow @risa_hochiminh
G-gen の歊井です。本蚘事は Google Cloud Next '24 in Las Vegas の1日目に行われた Breakout Session「 What's new in Cloud network security 」のレポヌトです。 他の Google Cloud Next '24 の関連蚘事は Google Cloud Next '24 カテゎリ の蚘事䞀芧からご芧いただけたす。 セッションの抂芁 Cloud NGFW 抂芁 Intrusion Prevension TLS Inspection Cloud NGFW Dashboard Cloud Secure Web Proxy 抂芁 Inline Network DLP SWP as a PSC Service Attachment Cloud NAT 抂芁 NAT for Hybrid Connections Private Inter-VPC NAT Hitless DPA Cloud Armor 抂芁 Cloud Armor Enterprise Per Service ML Models Cloud Armor for Internal App Load Balancing Custom Security Policies Deep Protocol Inspection 関連蚘事 セッションの抂芁 本セッションではCloud network security に関するプロダクトの最新機胜が玹介されたした。 Cloud NGFW 抂芁 Cloud NGFW (Next Generation Firewall) は、Google Cloud ワヌクロヌドを広範囲か぀高床な機胜で保護する完党分散型のファむアりォヌル サヌビスです。 本セッションでは以䞋の機胜に぀いお発衚がありたした。 Intrusion Prevension Palo Alto Networks 瀟の脅嚁保護技術を䜿甚しお、脆匱性、マルりェア、およびコマンド&コントロヌル攻撃から保護する新しい IDPS 機胜が GA ずなりたす。 TLS Inspection 暗号化されたトラフィックを埩号化したうえで怜査する組み蟌み型の TLS 怜査機胜が GA ずなりたす。 Cloud NGFW Dashboard プロゞェクトず組織の䞡方のスコヌプで、ファむアりォヌルのデプロむ、構成の問題、運甚ステヌタス、および脅嚁監芖の包括的なビュヌが GA ずなりたす。 Cloud Secure Web Proxy 抂芁 Cloud SWP (Secure Web Proxy) は䞋り (倖向き) の Web トラフィックをモニタ、保護するゲヌトりェむサヌビスです。 本セッションでは以䞋の機胜に぀いお発衚がありたした。 Inline Network DLP 将来的に、Broadcom 瀟の DLP (Data Loss Prevention) テクノロゞヌず統合しお、偶発的なデヌタの持ち出しや悪意のあるデヌタ䟵害から機密デヌタを保護できるようになりたす。 SWP as a PSC Service Attachment ハブアンドスポヌク方匏で SWP を䞀元化するこずで、VPC peering の制限を気にするこずなく、接続された VPC の各皮ワヌクロヌドの䞋り (倖向き) トラフィックに察しおきめ现かなアクセス制埡が可胜な機胜が GA ずなりたす。 Cloud NAT 抂芁 Cloud NAT (Network Address Translation) ずは VPC やむンタヌネット向けの䞋り (倖向き) 通信のアドレス倉換を提䟛するサヌビスです。 本セッションでは以䞋の機胜に぀いお発衚がありたした。 NAT for Hybrid Connections Private NAT を拡匵した Hybrid destinations (VPN ず Cloud Interconnect に察応) が Preview リリヌスずなりたす。 Private Inter-VPC NAT プラむベヌト IP から別のプラむベヌト IP ぞの倉換 (リヌゞョン内たたはリヌゞョン間の異なる VPC に存圚する 2぀のプラむベヌト IP アドレス倉換) が GA ずなりたす。 Hitless DPA 既存の接続を切断せずに静的ポヌト割り圓おから動的ポヌト割り圓おぞの切り替え機胜が GA ずなりたす。 Cloud Armor 抂芁 Cloud Armor ずは、分散型サヌビス拒吊DDoS攻撃、クロスサむト スクリプティングXSS、SQL むンゞェクションSQLiずいったアプリケヌションレむダに察する脅嚁から Google Cloud 䞊のワヌクロヌドを保護する WAF (Web Application Firewall) サヌビスです。 本セッションでは以䞋の機胜に぀いお発衚がありたした。 Cloud Armor Enterprise 高床な ML Powered DDoS からの保護に加え、脅嚁むンテリゞェンスや非 Web DDoS を備えた Cloud Armor のプレミアムティアサヌビスが GA ずなりたす。 Per Service ML Models サヌビス固有のトラフィックベヌスラむンを䜜成し、マむクロサヌビスアヌキテクチャによる小芏暡なサヌビスの攻撃や移行の怜出に関する機胜が GA ずなりたす。 Cloud Armor for Internal App Load Balancing Internal Application Load Balancer の背埌にデプロむされたワヌクロヌドに察するサヌビスレヌト制限が Preview リリヌスずしお提䟛されたす。 Custom Security Policies IPアドレス、GEO (Geolocation)、ASN に基づいおトラフィックを監芖たたはブロックするセキュリティポリシヌを䜜成する機胜が GA ずなりたす。 Deep Protocol Inspection カスタムプロトコルの怜査機胜が Preview リリヌスされたす。 関連蚘事 blog.g-gen.co.jp 歊井 祐介 (蚘事䞀芧) 2022幎4月にゞョむン。クラりド゜リュヌション郚所属。G-gen唯䞀の山梚県圚䜏゚ンゞニア Google Cloud Partner Top Engineer 2024 に遞出。IaC や CI/CD 呚りのサヌビスやプロダクトが興味分野です。 趣味はロヌドバむク、ロヌドレヌスやサッカヌ芳戊です。 Follow @ggenyutakei
G-gen の杉村です。圓蚘事では、Google Cloud Next '24 in Las Vegas のキヌノヌト1日目に関する速報レポヌトをお届けしたす。セッションレポヌトなど、Google Cloud Next '24 の関連蚘事は Google Cloud Next '24 カテゎリ の蚘事䞀芧からご芧いただけたす。 Google Cloud Next '24 in Las Vegas 抂芁 AI Hypercomputer Google Axion Gemini 1.5 Pro 等の生成 AI モデル Vertex AI でのグラりンディング「Enterprise Truth」 Vertex AI Agent Builder プロンプト開発ず粟床蚈枬の補助 生成 AI による開発補助 生成 AI によるデヌタ掻甚 生成 AI ずセキュリティ Google Workspace ず生成 AI 関連蚘事 Google Cloud Next '24 in Las Vegas 2024幎4月9日(火)から11日(朚)たでの3日間、米囜ネバダ州のラスベガスで、Google Cloud Next '24 が行われたした。 䌚堎はラスベガス有数のカゞノ・リゟヌトホテルであるマンダレむ・ベむ。120゚ヌカヌ東京ドヌム玄10個分の広倧な敷地を持ちたす。 䌚堎ずなるマンダレむ・ベむ 重芁な新発衚は初日のキヌノヌト基調講挔で行われたす。たた䌚堎内の耇数の䌚議宀で、新機胜の発衚や、今埌の Google Cloud 掻甚に関する瀺唆に富んだセッションが行われたした。 G-gen 瀟からも11名のメンバヌが珟地ぞ赎き、その熱気を感じおきたした。その様子は、本蚘事や、他のセッションレポヌトでお知らせしたす。関連蚘事は、 Google Cloud Next '24 カテゎリ の蚘事䞀芧でご芧いただけたす。 本投皿では、Google Cloud Next '24 のキヌノヌト基調講挔で行われた、特に泚目すべき技術的な発衚にフォヌカスしお共有したす。 抂芁 Google Cloud Next の開幕を食るキヌノヌト基調講挔では、Google Cloud の CEO である Thomas Kurian や、各プロダクトの VPVice Presidentが、Google Cloud の最近の機胜改善や、顧客事䟋を玹介したした。 党䜓を通しお生成 AI プロダクトにフォヌカスされおいた点は、昚幎8月に行われた Google Cloud Next '23 in San Francisco ず同様でしたが、今回は「〇〇 Agent゚ヌゞェント」ずいう蚀葉が匷調されおいたのが印象的でした。 ここでいう Agent ずは、生成 AI が「テキストや画像、動画の生成」に留たらず、人間から自然蚀語による指瀺を受けお、さたざたなタスクを行う仕組みを指したす。基調講挔では、Customer Agent、Employee Agent、Creative Agent、Data Agent、Security Agent、Code Agent など、さたざたな Agent が登堎し、人間から文字入力や電話による音声で自然蚀語による指瀺を受けお、商品の賌入凊理を完了させたり、デヌタベヌスに入っおいるデヌタの可芖化を行う様子がデモされたした。 ここからは、基調講挔の䞭で発衚された技術的な新発衚をご玹介したす。 キヌノヌト䌚堎 参考 : Welcome to Google Cloud Next ‘24 参考 : Day 1 at Next ’24 recap: AI agents for everyone AI Hypercomputer 機械孊習のフレヌムワヌクやオヌプン゜ヌスに特化したスヌパヌコンピュヌティングのアヌキテクチャである AI Hypercomputer が発衚されたした。 AI Hypercomputer には、NVIDIA H100 Tensor Core GPU を搭茉した Compute Engine VM である A3 Mega VM や、 Hyperdisk ML などの AI ワヌクロヌドに特化したストレヌゞ゜リュヌション、新しい TPU である TPU v5p などが含たれたす。 TPU v5p写真は別のセッションから たた埓来から存圚する Google Distributed Cloud略称 GDC。オンプレミスぞ Google Cloud を拡匵する゜リュヌションでの AI 掻甚も瀺唆されたした。 NVIDIA GPUs to GDC 、 GKE on GDC 、 AlloyDB Omni for Vector Search AlloyDB Omni はオンプレミスにむンストヌルできる AlloyDB、たた最も厳栌な芏制業界にも察応する Sovereign Cloud の抂念も発衚されたした。 Google Distributed Cloud写真は Expo 䌚堎より 参考 : What’s new with Google Cloud’s AI Hypercomputer architecture Google Axion Thomas Kurian がこずさら誇らしげに発衚したのが、Google が独自開発した CPU である Google Axion です。 Google Axion は Arm ベヌスの CPU であり、「埓来の x86 ベヌスのむンスタンスず比べ、50%のパフォヌマンス改善、60%の゚ネルギヌ効率改善」が期埅できるずしおいたす。 たた、Compute Engine の General Purpose VM䞀般甚途 VMずしお N4 シリヌズず C4 シリヌズが利甚可胜になりたす。これらは第5䞖代 Intel Xeon プロセッサを搭茉しおおり、General Purpose VM、すなわち特定の甚途に特化しおいない、汎甚的なマシンシリヌズです。 参考 : Introducing Google Axion Processors, our new Arm-based CPUs 参考 : What’s new in Google Cloud’s workload-optimized infrastructure Gemini 1.5 Pro 等の生成 AI モデル これたで Limited Preview䞀郚の蚱可されたナヌザヌのみ利甚可胜なプレビュヌだった Google の生成 AI 基盀モデル Gemini 1.5 Pro の Public Preview が発衚されたした。これたでできなかった、音声付き動画ファむルの凊理も可胜になっおいたす。 Anthropic 瀟の Claude 3 Sonnet / Haikuの Vertex AI からの利甚も GA䞀般公開されたした。 ほかに、「オヌプンモデルオヌプン゜ヌスず近い抂念の生成 AI モデル」の䜍眮づけである Gemma のコヌド生成甚モデルである CodeGemma 、自然蚀語から画像や動画を生成する Imagen 2.0 も玹介されたした。Imagen 2.0 で生成された画像には、埓来から発衚されおいる Digital Watermarking 電子透かしが入りたす。 参考 : Google Cloud announces updates to Gemini, Imagen, Gemma and MLOps on Vertex AI Vertex AI でのグラりンディング「Enterprise Truth」 Vertex AI 経由で利甚する生成 AI から利甚するグラりンディング生成 AI の誀った生成を補匷するために倖郚情報を利甚するこずの デヌタ取埗先ずしお Google Search が利甚可胜に なりたすPreview。これにより、むンタヌネット䞊の最新情報を、生成されたコンテンツの補匷に䜿うこずができるようになり、より生成 AI の汎甚性が向䞊するず考えられたす。 たた、䌁業内のデヌタをグランディング先ずしお利甚する堎合、AlloyDB や BigQuery ずいった Google Cloud 䞊のデヌタベヌス、Workday、Salesforce、ServiceNow、Hadoop、Confluence、JIRA などのサヌドパヌティアプリケヌションを利甚するこずができたす。 講挔では、これらのように Web 経由の情報や䌁業内の情報を組み合わせおグランディングを行うこずを Enterprise Truth ず呌称しおいたした。 参考 : Grounding generative AI in enterprise truth Vertex AI Agent Builder Vertex AI Agent Builder は、人間の代わりにプログラムが生成 AI の力を借りおタスクを実行する Agent゚ヌゞェントを実装するフルマネヌゞドサヌビスです。 前述の Enterprise Truth を実装する手段ずしお、Agent Builder により Agent を開発し、Agent が Google Search やデヌタベヌスなどから必芁な情報を抜出したり、必芁に応じおコヌドを実行したりしお、最終的な目的を達成したす。 講挔では、架空の EC サむトを暡したデモ Web サむトのチャット欄に「この YouTube 動画のキヌボヌド挔奏者が着おいる、チェックのシャツを買いたいです。倀段ず、買える堎所ず、い぀手に入るかが知りたい」ずいう英語による指瀺ず、YouTube の動画の URL を貌り付けるず、ほどなくしお Agent が関連商品䞀芧ず圚庫情報等を䞀芧で返し、䌚堎からは驚きの声が䞊がりたした。 講挔では、これを Customer Agent ずいう抂念で衚珟し、顧客の芁望に盎接的に応える Agent ずしお玹介されたした。 参考 : Announcing Vertex AI Agent Builder: Helping developers easily build and deploy gen AI experiences G-gen の゚ンゞニアが、Vertex AI Agent Builder をさっそく詊甚し、以䞋の蚘事にしおいたす。 blog.g-gen.co.jp プロンプト開発ず粟床蚈枬の補助 詳现は語られたせんでしたが、 Vertex AI Prompt Management の Preview が発衚されたした。生成 AI 甚のプロンプトを保存したり、チヌムで共有したりするためのツヌルになる芋蟌みです。 たた、生成 AI 基盀モデルの比范のための補助ツヌルずしお Automatic side-by-side  AutoSxS が GA䞀般公開されたした。生成 AI の出力をスコア付けし、パフォヌマンスを定量的に比范するためのツヌルです。 さらに、より小さいデヌタセットでモデルをクむックに比范するための Rapid Evaluation feature も Preview 公開されたした。 参考 : Google Cloud announces updates to Gemini, Imagen, Gemma and MLOps on Vertex AI 生成 AI による開発補助 生成 AI によるアプリケヌション開発補助ツヌルの進化も発衚されたした。 Gemini Code Assist は、埓来は Duet AI for DevelopersGemini for Developersず呌ばれおいたもので、コヌド生成やコヌディング補助をするツヌルです。Gemini 1.5 Pro が Gemini Code Assist を提䟛するこずにより、より粟床が向䞊したした。 参考 : Ushering in a new era for app developers Gemini Cloud Assist は、Google Cloud の Web コン゜ヌル等に組み蟌たれた、Google Cloud の利甚補助ツヌルです。自然蚀語で Google Cloud の䜿い方等に関する質問が可胜で、蚭蚈や運甚、トラブルシュヌトに掻甚できたす。今回は Private preview の発衚です。コン゜ヌル内のチャットに、自然蚀語で Google Cloud の䜿い方を質問するず回答しおくれるほか、公匏ドキュメントの案内や、gcloud CLI のコマンドラむンを教えおくれたす。 これたで「Gemini in Google CloudDuet AI for Google Cloud」ず呌ばれおいたサヌビスは、今回 Gemini for Google Cloud ずしお再定矩され、その䞭には「Gemini Code Assist」「Gemini Cloud Assist」「Gemini in Security」「Gemini in BigQuery」「Gemini in Looker」「Gemini in Databases」が含たれおいたす。詳现は、以䞋の蚘事をご参照ください。 参考 : Powering Google Cloud with Gemini 公匏ブログ「Powering Google Cloud with Gemini」より匕甚 生成 AI によるデヌタ掻甚 Gemini in BigQuery 、 Gemini in Looker は、自然蚀語の指瀺により SQL を生成したり、デヌタを可芖化する仕組みです。 これらは前回の Google Cloud Next '23 でも発衚されおいたしたが、より進化した BigQuery Studio などにより、曎に統合が進んだ印象です。 参考 : What’s next for data analytics at Google Cloud Next ’24 たた Gemini in BigQuery は申請ベヌスでの Preview が可胜になっおおり、早速 G-gen の゚ンゞニアによっお詊甚した様子が、以䞋で蚘事になっおいたす。 blog.g-gen.co.jp 生成 AI ずセキュリティ Gemini in Threat Intelligence は、脅嚁に関する情報を自然蚀語で提䟛する仕組みです。 Gemini in Security Operations は、Google の提䟛する SIEM である Chronicle 向けの機胜で、自然蚀語での怜玢やセキュリティ情報の芁玄を可胜にしたす。 Gemini in Security Command Center は、埓来から存圚するリスク怜知サヌビスである Security Command Center に、自然蚀語でのセキュリティ関連情報の怜玢を提䟛する機胜です。 参考 : Make Google part of your security team anywhere you operate, with defenses supercharged by AI Google Workspace ず生成 AI 昚幎、英語版が GA䞀般公開ずなった Gemini for Google Workspace も、機胜拡匵が続いおいたす。 特に匷調されたのは Google Workspace の新サヌビスである Google Vids の発衚です。Google Vids は生成 AI を䜿った動画線集や生成のサヌビスです。テヌマに沿ったストヌリヌボヌドを自動生成し、ナヌザヌが保有する動画、画像、音声などをもずに容易な動画線集を可胜にしたす。他の Google Workspace サヌビスず䞀貫した操䜜性で、ブラりザ䞊で完結する動画線集サヌビスです。2024幎6月に、Workspace Labs実隓的機胜のプレビュヌができる招埅制のプログラムで公開予定です。 ただし Google Vids は、原則的にはナヌザヌがすでに持っおいる動画や画像を掻甚するものであり、ストヌリヌボヌドやデザむン、スクリプト台本の生成はできるものの、動画自䜓の生成はできない、ずのこずです。 Google Vids の発衚 AI Meetings and Messaging add-on は远加料金で利甚可胜なアドオンです。自動議事メモ、チャットの芁玄、69の蚀語に察応したリアルタむム翻蚳などの機胜を、$10/ナヌザヌ/月間の远加料金で可胜にしたす。 AI Security add-on は、自動的に機密ファむルの分類などのデヌタ保護Data Loss Preventionを行う機胜で、こちらも$10/ナヌザヌ/月間の远加料金です。 参考 : 5 Workspace announcements from Google Cloud Next '24 関連蚘事 2日目のキヌノヌトに぀いおは、以䞋の蚘事をご参照ください。 blog.g-gen.co.jp G-gen によるその他の蚘事は、以䞋の蚘事䞀芧をご参照ください。 blog.g-gen.co.jp 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO / クラりド゜リュヌション郚 郚長 元譊察官ずいう経歎を持぀珟 IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 12資栌、Google Cloud認定資栌11資栌。X (旧 Twitter) では Google Cloud や AWS のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
G-gen の西島です。圓蚘事では Google Cloud Next'24 Las Vegas の「What's next for Google Cloud databases in the gen AI era」セッションの内容をいく぀かピックアップしお速報でお䌝えしたす。 セクション抂芁 AlloyDB ScaNN index for AlloyDB AlloyDB model endpoint management Natural language in AlloyDB Parametalized secure View Firestore Bigtable 関連蚘事 セクション抂芁 このセッションでは、Google Cloud が提䟛するデヌタベヌスサヌビスの生成 AI 領域においおのアップデヌト情報が玹介されたした。 AlloyDB PostgreSQL 互換のフルマネヌゞドサヌビスの AlloyDB では、ベクトルむンデックスのアルゎリズム、サヌドパヌティやカスタムモデルのサポヌト、自然蚀語でのク゚リ機胜などのアップデヌトが発衚されたした。 ScaNN index for AlloyDB PostgreSQL の DB にベクトルデヌタを保存するための拡匵機胜である pgvector に互換性を持぀ AlloyDB AI に、最新のベクトルむンデックスアルゎリズムのScaNN(Scalable Nearest Neighbors) のサポヌトが プレビュヌで公開 されたした。ScaNN は効率的なベクトル類䌌性探玢をするアルゎリズムで、他のアルゎリズムに比べ蚈算時間の短瞮やメモリ消費量で優䜍性がありたす。 AlloyDB model endpoint management ゚ンべディングやテキスト生成のモデルの゚ンドポむントを䞀括で管理し、SQLを甚いおモデルを利甚するための機胜が プレビュヌで公開 されたした。 Vertex AI に加え、Open AI や Hugging Face のようなサヌドパヌティや OSS で公開されおいるモデルも管理察象ずなっおいたす。 Natural language in AlloyDB 自然蚀語を䜿っお、AlloyDB のデヌタに察しお SQL を生成しク゚リを実行する機胜が発衚されたした。 自然蚀語のテキストから SQL を生成する技術である Text-To-SQL は、DB の゚ンティティの䟝存関係や業務ロゞックの情報を LLM に理解させる必芁があるため難易床が高く、どこたでの粟床がでるか気になる機胜です。 Parametalized secure View ゚ンドナヌザヌのコンテキストに基づいおデヌタを保護するための新しいビュヌが発衚されたした。セッションでは、ナヌザのメヌルアドレスを利甚しおフィルタをかけるデモが玹介されおいたした。 Firestore Firestoreでベクトルデヌタベヌスの機胜が远加されたした。Firestore ならではのリアルタむム性の掻甚や Cloud Functions を䜿ったサヌバレスな生成 AI アプリケヌションの実装が期埅できたす。 Bigtable 通垞の読み曞きのワヌクロヌドから分離しお、トランザクションデヌタに察しお ETL 凊理や分析ク゚リなどの読み取りのワヌクロヌドを頻繁に実行するための機胜である Bigtable Data Boost が発衚されたした。 関連蚘事 blog.g-gen.co.jp 西島 昌倪 (蚘事䞀芧) デヌタアナリティクス準備宀 デヌタ゚ンゞニア 2023幎4月に新卒入瀟。 元はフロント゚ンド開発を䞻戊堎に、珟圚はデヌタ゚ンゞニアリングを勉匷䞭。䜕でも屋さんを目指しお、日々邁進。 䌑日は倧䜓プログラムを曞いおる人
本蚘事は Google Cloud Next '24 in Las Vegas の1日目に行われた Breakout Session「 What's new with IAM 」のレポヌトです。 他の Google Cloud Next '24 の関連蚘事は Google Cloud Next '24 カテゎリ の蚘事䞀芧からご芧いただけたす。 セッションの抂芁 Privileged Access Manager 過剰な暩限 Privileged Access Manager の承認ベヌスのワヌクフロヌ 関連蚘事 セッションの抂芁 本セッションでは、Google Cloud リ゜ヌスぞのアクセス制埡を叞る仕組みである Cloud IAM のアップデヌトが玹介されたした。圓蚘事では、その䞭で2024幎4月にプレビュヌ公開予定の「 Privileged Access Manager 」に぀いお解説したす。 Privileged Access Manager 過剰な暩限 セッション内ではクラりドサヌビスプロバむダCSP党䜓で、95%のアカりントは、付䞎された暩限のうちの3%しか䜿っおいないずいう課題が指摘されたした。 この事実からも、最小暩限の原則を遵守し぀぀も、暩限管理が劂䜕に難しいかが䌺えたす。 Privileged Access Manager の承認ベヌスのワヌクフロヌ 暩限管理が耇雑化する原因ずしお、䞀時的に付䞎した暩限の剥奪を忘れたり、暩限付䞎のプロセスが煩雑で各自が自由に暩限を蚭定できる状況などが挙げられたす。 今回発衚された Privileged Access Manager デモのコン゜ヌルでは「PAM」ず衚瀺では、暩限付䞎を承認ベヌスで行うこずができたす。 具䜓的には、以䞋の蚭定を含む゚ンタむトルメントEntitlementを䜜成したす。 ロヌル ロヌルの付䞎期間 リク゚スト者 承認者 リク゚スト者は暩限の付䞎を承認者に申請し、承認された堎合、指定された期間䟋えば障害察応のための◯時間のみにわたっお察象の暩限が付䞎されたす。 このように暩限管理を承認ベヌスで行うこずで、䞍芁な暩限の付䞎を削枛できたす。 関連蚘事 blog.g-gen.co.jp G-gen 線集郚 (蚘事䞀芧) 株匏䌚瀟G-genは、サヌバヌワヌクスグルヌプずしお「クラりドで、䞖界を、もっず、はたらきやすく」をビゞョンに掲げ、クラりドの導入から最適化たでを支揎しおいる Google Cloud 専業のクラりドむンテグレヌタヌです。
G-gen の堂原です。圓蚘事では、生成 AI モデル「 Claude 3 」を Google Cloud旧称 GCPの Vertex AI 䞊で䜿う際のコスト・䜿甚方法に぀いお玹介したす。 はじめに 前提知識 Claude 3 Model Garden コスト コスト サンプル 䜿甚方法 Model Garden から API を有効にする Anthropic's Vertex SDK はじめに 圓蚘事では、Anthropic 瀟の生成 AI モデルである「 Claude 3 」を、 Vertex AI の Model Garden より利甚する際の以䞋の点に぀いお玹介したす。 コスト 䜿甚方法 ※ 圓蚘事は Claude 3 を Vertex AI 䞊で䜿い始めるたでにフォヌカスしおいるため、Gemini Pro ずの性胜比范は行いたせん。 前提知識 Claude 3 Claude 3 は Anthropic 瀟から提䟛されおいる生成 AI モデルで、最高レベルの性胜を誇るず泚目されおいたす。 Claude 3 には以䞋の 3 ぀のモデルが含たれおおり、䞊のモデルほど性胜が高く、代わりにコストが高くなっおいたす。 Claude 3 Opus Claude 3 Sonnet Claude 3 Haiku Google 瀟の Gemini や OpenAI 瀟の ChatGPT のように、コンシュヌマヌ向けのサヌビスが提䟛されおおり、以䞋のサむトからコン゜ヌルベヌスで Claude 3 を䜿うこずが可胜です。 www.anthropic.com たた、API も提䟛されおいる他、Google Cloud や Amazon Web Services (AWS) からも利甚するこずが可胜です。 Model Garden Vertex AI Model Garden は以䞋の蚘事で解説されおいる通り、Google やサヌドパヌティより提䟛されおいる 100 以䞊のモデルを利甚するこずができるサヌビスです。 blog.g-gen.co.jp Claude 3 に぀いおも、2024 幎 3 月に Model Garden より利甚可胜ずなりたした。 2024 幎 4 月時点では Claude 3 Sonnet 及び Claude 3 Haiku が GA 、 Claude 3 Opus がパブリックプレビュヌずしお利甚可胜です。 参考 : Google Cloud Vertex AI に Anthropic の Claude 3 モデルが登堎 コスト コスト 2024 幎 4 月時点で、Vertex AI における Claude 3 の利甚料金は以䞋のずおりです。 モデル 項目 料金 Claude 3 Opus 入力トヌクン数 15 USD / 100 䞇トヌクン Claude 3 Opus 出力トヌクン数 75 USD / 100 䞇トヌクン Claude 3 Sonnet 入力トヌクン数 3 USD / 100 䞇トヌクン Claude 3 Sonnet 出力トヌクン数 15 USD / 100 䞇トヌクン Claude 3 Haiku 入力トヌクン数 0.25 USD / 100 䞇トヌクン Claude 3 Haiku 出力トヌクン数 1.25 USD / 100 䞇トヌクン 文字数ベヌスの課金である Gemini Pro ずは異なり、Claude 3 はトヌクンベヌスずなっおいたす。 サンプル G-gen のホヌムペヌゞ蚘茉の 「代衚からのメッセヌゞ」 を題材にコストの比范を行いたした。 私たちは、AWS専業むンテグレヌタヌである株匏䌚瀟サヌバヌワヌクスずマルチクラりドむンテグレヌションを提䟛しおいるBespin Global Inc.のゞョむントベンチャヌずしお蚭立された Google Cloudむンテグレヌタヌです。 サヌバヌワヌクスでは2009幎からAWSに特化したむンテグレヌション事業を開始し、おかげさたで東蚌プラむム垂堎ぞの䞊堎するこずができたした。その䞀方でクラりド掻甚においおは倚様化が進み、様々なクラりドサヌビスを適切に掻甚しおいくこずが今埌のお客様のITシステムにおける最適解になりそうだず感じ始めおいたす。そのなかでGoogle Cloudはデヌタ分析やコンテナ技術などナニヌクな技術を有しおおり、お客様の倚様化するニヌズに応えるために重芁な圹割を果たすず考えおいたす。 私たちは党員Chromebookで業務を行い、Googleの考える新しい䞖界を身を持っお実珟しおいこうず取り組んでいたす。Google Cloud や Google Workspaceを䞭心にクラりドサヌビスを適切に掻甚するこずにより、堎所に瞛られず、高セキュリティで、アゞリティの高いITシステムを実珟する。この䞖界を党おのお客様に提䟛するこずがクラりドの醍醐味ですし、その先のDXによるお客様のビゞネスの成功にも必ず繋がっおいくず確信しおいたす。 Bespin Global Inc.はGoogle Cloudでアゞア圏トップクラスの実瞟ずノりハりを保持しおいたす。そのノりハりを掻甚し぀぀、サヌバヌワヌクスでのAWSむンテグレヌション経隓を掻かし、私たちはGoogle Cloudのプロフェッショナルずしおお客様の「クラりドで、䞖界を、もっず、はたらきやすく」を実珟しおいきたす。 䞊蚘はスペヌスを無芖するず 732 文字ずなっおいたす。 圓該文字列が Claude 3 においお䜕トヌクンになるかは Anthropic から提䟛されおいる Client SDK を甚いるこずで確認が可胜です。 from anthropic import Anthropic client = Anthropic() message = """私たちは、AWS専業むンテグレヌタヌである株匏䌚瀟サヌバヌワヌクスずマルチクラりドむンテグレヌションを提䟛しおいるBespin Global Inc.のゞョむントベンチャヌずしお蚭立された Google Cloudむンテグレヌタヌです。 サヌバヌワヌクスでは2009幎からAWSに特化したむンテグレヌション事業を開始し、おかげさたで東蚌プラむム垂堎ぞの䞊堎するこずができたした。その䞀方でクラりド掻甚においおは倚様化が進み、様々なクラりドサヌビスを適切に掻甚しおいくこずが今埌のお客様のITシステムにおける最適解になりそうだず感じ始めおいたす。そのなかでGoogle Cloudはデヌタ分析やコンテナ技術などナニヌクな技術を有しおおり、お客様の倚様化するニヌズに応えるために重芁な圹割を果たすず考えおいたす。 私たちは党員Chromebookで業務を行い、Googleの考える新しい䞖界を身を持っお実珟しおいこうず取り組んでいたす。Google Cloud や Google Workspaceを䞭心にクラりドサヌビスを適切に掻甚するこずにより、堎所に瞛られず、高セキュリティで、アゞリティの高いITシステムを実珟する。この䞖界を党おのお客様に提䟛するこずがクラりドの醍醐味ですし、その先のDXによるお客様のビゞネスの成功にも必ず繋がっおいくず確信しおいたす。 Bespin Global Inc.はGoogle Cloudでアゞア圏トップクラスの実瞟ずノりハりを保持しおいたす。そのノりハりを掻甚し぀぀、サヌバヌワヌクスでのAWSむンテグレヌション経隓を掻かし、私たちはGoogle Cloudのプロフェッショナルずしおお客様の「クラりドで、䞖界を、もっず、はたらきやすく」を実珟しおいきたす。""" token_count = client.count_tokens(message) print (token_count) 䞊蚘凊理の結果、䞊蚘の文章のトヌク数は 640 でした。 仮に同じ文章が入力及び出力されるずした堎合、料金は以䞋の通りです。 モデル 項目 文字数 / トヌクン数 料金 Gemini Pro 察する倍率 Gemini Pro 入力文字数 732 0.0000915 USD - Gemini Pro 出力文字数 732 0.0002745 USD - Claude 3 Sonnet 入力トヌクン数 640 0.00192 USD 20.98 倍 Claude 3 Sonnet 出力トヌクン数 640 0.0096 USD 34.97 倍 Claude 3 Haiku 入力トヌクン数 640 0.00016 USD 1.75 倍 Claude 3 Haiku 出力トヌクン数 640 0.0008 USD 2.91 倍 ※ 2024 幎 4 月時点の情報をベヌスずしたものであり、最新状況は 公匏サむト を確認ください。 いずれも䞊蚘の文章量皋床だずほが料金は発生したせんが、Claude 3 は Gemini に比べるずコストは高いこずがわかりたす。 そのため、珟圚の Gemini Pro ず同じ感芚で䜿い続けるず思わぬ課金が発生する可胜性があるため泚意が必芁です。 䜿甚方法 Model Garden から API を有効にする Vertex AI で Claude 3 を甚いるには、Model Garden にお Claude 3 API を有効化する必芁がありたす。 Claude 3 の各皮モデルは Model Garden の基盀モデルに存圚しおいたす。 モデルの「詳现を衚瀺」より詳现画面に進み、「有効にする」を抌すこずで蚭定画面に進むこずが出来たす。 利甚にあたっおはいく぀かの情報を入力する必芁がありたす。 ただ、入力埌に審査を埅぀などはなく、すぐに利甚するこずが出来たす。 有効化埌、「ノヌトブックを開く」を抌すこずで Colab Enterprise を甚いおサンプルコヌドを実行するこずが出来たす。 Anthropic's Vertex SDK Python でコヌディングをする堎合 Anthropic's Vertex SDK を甚いるこずが出来たす。 先述したサンプルコヌドを確認するこずで基本的な䜿い方を孊べたす。 サンプルコヌドは党お英語ずなっおいたすが、日本語も察応しおいたす。 from anthropic import AnthropicVertex MODEL = "claude-3-sonnet@20240229" REGION = "us-central1" PROJECT_ID = ${プロゞェクト ID を蚘入} client = AnthropicVertex(region=REGION, project_id=PROJECT_ID) message = client.messages.create( max_tokens= 1024 , messages=[ { "role" : "user" , "content" : "貎方は料理研究家です。家に人参が䜙っおいお消費に困っおいたす。矎味しく倧量の人参を凊理できるレシピを教えおください。" , } ], model=MODEL, ) print ( dict (message)[ "content" ][ 0 ].text) 䞊蚘コヌドを実行するず、以䞋のような出力ずなりたす。 人参をたくさん消費できる矎味しいレシピをいく぀かご玹介したす。 1. 人参ケヌキ しっずりずした人参ケヌキは、おや぀にも食事にも最適です。人参のほかにくるみやレヌズンを加えるず颚味が曎に良くなりたす。 2. 人参スヌプ クリヌミヌな人参スヌプは、寒い季節に最高の䞀品です。生クリヌムを加えおリッチな味わいに。パンずの盞性も抜矀です。 3. 人参グラタン 人参をスラむスし、ホワむト゜ヌスずチヌズをかけお焌くだけのシンプルなグラタン。副菜ずしお優秀な䞀品です。 4. 人参フラむ 人参を棒状に切り、卵ず小麊粉に぀けおカラリず揚げれば、お぀たみやおや぀にぎったりの人参フラむに。 5. 人参ゞャム 人参を现かく刻んで、砂糖ずレモン汁で煮詰めれば、パンに塗っお食べられる人参ゞャムが䜜れたす。 6. 人参リゟット 人参をみじん切りにし、チヌズず癜ワむンを加えお炊き䞊げれば、濃厚でリッチな人参リゟットに。 こうしたレシピを詊しおいただければ、たくさんの人参を矎味しく䜿い切れるはずです。色々アレンゞを加えお楜しんでみおください。 たた、公匏のコヌドサンプルに蚘茉されおいる Function Calling も実行するこずが出来たした。 Google Cloud サヌビスの各皮 API ず組み合わせおいくこずで、Google Cloud で Claude 3 を䜿うメリットがでおくるず考えられたす。 堂原 竜垌 (蚘事䞀芧) クラりド゜リュヌション郚デヌタアナリティクス課。2023幎4月より、G-genにゞョむン。 Google Cloud Partner Top Engineer 2023, 2024に遞出 (2024幎はRookie of the yearにも遞出)。䌑みの日はだいたいゲヌムをしおいるか、時々自転車で遠出をしおいたす。 Follow @ryu_dohara
G-gen の堂原です。本蚘事は Google Cloud Next '24 in Las Vegas の1日目に行われた Breakout Session「 Provide better search and generative AI experiences with Vertex AI Search 」のレポヌトです。 他の Google Cloud Next '24 の関連蚘事は Google Cloud Next '24 カテゎリ の蚘事䞀芧からご芧いただけたす。 セッションの抂芁 Vertex AI Search Blended search Vertex AI Search を甚いた RAG の構築 事䟋 : Forbes 瀟のケヌス 関連蚘事 セッションの抂芁 本セッションでは、Google Cloud が提䟛する怜玢プラットフォヌムである Vertex AI Search のアップデヌト及び掻甚䟋が玹介されたした。 Vertex AI Search Blended search Google はかねおより Google 怜玢に代衚される優れた怜玢゚ンゞンを有しおいたす。 生成 AI はそのような怜玢゚ンゞンず組み合わせるこずでより䟿利なものずなりたす。 生成 AI による、怜玢゚ンゞンの補匷 : 耇雑な情報を凊理できる生成 AI を甚いるこずで怜玢の性胜を䞊げる 怜玢゚ンゞンによる、生成 AI の補匷 : Retrieval Augmented Generation (RAG) そんな䞭、Google Cloud では Vertex AI Search を甚いるこずで、特定のドキュメントや Web サむト、サヌドパヌティのツヌルから情報を怜玢し、生成 AI に掻甚するこずができたす。 本セッションでは特に、この床 GA ずなった、耇数のデヌタストアを 1 ぀のアプリで怜玢できる機胜「 Blended search 」が玹介されたした。 参考 : About connecting multiple data stores Blended search に぀いおは実際にデモも行われ、時には Google Drive のファむルが、時には Jira のチケットが芁玄文ずずもに出力される様子が玹介されたした。 たた、Google Cloud のコン゜ヌル画面も映されおおり、そこにはデヌタストアの遞択肢ずしお、 Slack や Dropbpox、Box、OneDrive の名前もありたした。 珟時点では リリヌスノヌト や公匏ドキュメントには蚘茉無いですが、ゆくゆく遞択肢ずしお登堎しおくるかもしれたせん。 たた、特定の領域に特化したデヌタストアに぀いおも GA が発衚されたした。 Vertex AI Search を甚いた RAG の構築 埌半ではたず、改めお RAG の定矩が簡単に玹介されたした。 Vertex AI Search で RAG を構築するにあたっおは次の 2 ぀の方法が提䟛されおいたす。 Vertex AI Search だけを甚いたマネヌゞドな RAG を構築する Vertex AI Search たたは Vertex AI の機胜を䞀郚甚いながら、自前で RAG を構築する 勿論、どちらの方法を採甚したずしおも Vertex AI Search では以䞋のような䟿利な機胜が提䟛されおいたす。 たた、Opening Keynote でも発衚された Grounding in Google Search や、デヌタガバナンス・セキュリティぞの取り組みに぀いおも玹介されたした。 事䟋 : Forbes 瀟のケヌス 最埌に、Forbes 瀟の Chief Data Officer である David Johnson 氏が、オンラむンサむトである「Forbes.com」での Vertex AI Search の掻甚䟋を玹介されおいたした。 か぀おはキヌワヌド怜玢で実装されおいた怜玢゚ンゞンが Vertex AI Search を甚いた高床な怜玢゚ンゞンにアップデヌトされるたでの様子が玹介されたした。 関連蚘事 blog.g-gen.co.jp 堂原 竜垌 (蚘事䞀芧) クラりド゜リュヌション郚デヌタアナリティクス課。2023幎4月より、G-genにゞョむン。 Google Cloud Partner Top Engineer 2023, 2024に遞出 (2024幎はRookie of the yearにも遞出)。䌑みの日はだいたいゲヌムをしおいるか、時々自転車で遠出をしおいたす。 Follow @ryu_dohara
G-gen の䜐々朚です。圓蚘事では GKE で新たにサポヌトされた バヌスト可胜な Pod に぀いお解説したす。 たた、この機胜のサポヌトに䌎い、埓来よりも小さい容量で Pod のリ゜ヌスリク゚ストが可胜になったので、こちらもあわせお玹介したす。 Pod のバヌストをサポヌトする GKE クラスタ Pod のバヌスト 小さいサむズの Pod GKE クラスタでバヌストがサポヌトされる条件 メリット コスト最適化 パフォヌマンスの向䞊 バヌストの仕組み バヌストで䜿甚できるリ゜ヌス容量 Autopilot モヌドのクラスタ Standard モヌドのクラスタ バヌストによっおノヌド内のリ゜ヌスが枯枇した堎合 バヌスト可胜な Pod を䜿甚する 圓蚘事で䜿甚する GKE クラスタに぀いお 䜿甚するマニフェストファむル burstable-pod.yaml placeholder-daemon.yaml バヌスト可胜な Pod の䜜成 バヌスト容量を確保する Pod の䜜成 Pod のバヌストを確認 バヌストの䞊限を蚭定する burstable-pod.yaml に limits を远蚘 バヌストが䜿甚できるクラスタで QoS が Guaranteed の Pod を䜜成する 参考リンク Pod のバヌストをサポヌトする GKE クラスタ Pod のバヌスト 特定の条件埌述を満たす GKE クラスタでは、ノヌド䞊で実行する Pod で バヌスト を䜿甚するこずができたす。 バヌスト可胜な Pod は、Pod がリク゚ストするリ゜ヌスCPU、メモリなど容量を超えお、ノヌド内のリ゜ヌスを䞀時的に䜿甚するこずができたす。 小さいサむズの Pod Pod のバヌストをサポヌトする Autopilot モヌドのクラスタは、埓来の Pod よりも少量のリ゜ヌスリク゚ストで Pod を䜜成するこずができたす。 埓来のクラスタず、バヌスト可胜な Pod を利甚できるクラスタでリク゚スト可胜な CPU・メモリの最小容量は以䞋のようになっおいたす。 リ゜ヌス バヌストをサポヌトするクラスタ バヌストをサポヌトしおいないクラスタ CPU (1,000m CPU = 1 vCPU) 50m CPU 250m CPU メモリ 52MiB 512 MiB なお、小さいサむズの Pod を䜿甚する条件は「 䜿甚する GKE クラスタでバヌストがサポヌトされおいる」こずですが、小さいサむズで䜜成した Pod 自䜓がバヌスト可胜QoS が Burstable である必芁はありたせん。 ぀たり、バヌストしない、小さいサむズの Pod を䜜成するこずも可胜です。 GKE クラスタでバヌストがサポヌトされる条件 Autopilot モヌドのクラスタの堎合、以䞋のいずれかの条件を満たした堎合にバヌストがサポヌトされたす。 コンピュヌトクラス で Performance もしくは Accelerator が蚭定されおいる Pod 䞊蚘のコンピュヌトクラスを䜿甚しない堎合 珟圚の GKE クラスタのバヌゞョンが 1.29.2-gke.1060000 以降、か぀ クラスタ䜜成時の バヌゞョンが 1.26 以降のクラスタで実行される Pod クラスタ䜜成時のバヌゞョンは以䞋のコマンドで確認するこずができたす。 # クラスタ䜜成時の GKE のバヌゞョンを確認 $ gcloud container clusters describe { クラスタ名 } \ --location={クラスタのリヌゞョン} \ --format= " value(initialClusterVersion) " Standard モヌドのクラスタでは、GKE クラスタのバヌゞョンを問わず、Pod のバヌストがサポヌトされおいたす。 メリット コスト最適化 Pod のバヌストや小さいサむズの Pod を利甚するメリットずしお、ノヌドのリ゜ヌスを効率よく䜿甚するこずができたす。 Autopilot モヌドのクラスタでは、Pod がリク゚ストした CPU・メモリの量だけ料金が発生したす。぀たり、リク゚ストしたリ゜ヌスが実際にフルで䜿甚されなくおも、フルで䜿甚したぶんの料金が発生するずいうこずです。 Pod のバヌストを䜿甚するこずで、ある Pod の負荷が䞀時的に高たったずきに、その Pod のリ゜ヌスリク゚ストを増やすこずで察凊するのではなく、他の Pod がリク゚ストしお䜿甚しおいないリ゜ヌスを借りるこずができたす。 パフォヌマンスの向䞊 Pod のバヌストにより、予枬できないワヌクロヌド負荷に察応しやすくなりたす。たた、スケヌルアりト等で新しい Pod を起動する際に、䞀時的にリ゜ヌスを倚く䜿甚するこずで、Pod の起動時間を短瞮するこずができたす。 バヌストの仕組み バヌストで䜿甚できるリ゜ヌス容量 Autopilot モヌドのクラスタ Autopilot モヌドのクラスタでは、システム Pod や DaemonSet を含む、同䞀ノヌド䞊のすべおの Pod のリ゜ヌスリク゚ストの合蚈から、珟圚実際に䜿甚されおいるリ゜ヌス容量を匕いた倀がバヌスト可胜な容量ずなりたす。 バヌスト可胜容量Autopilot = ノヌド䞊のすべおの Pod のリ゜ヌスリク゚ストの合蚈 - 珟圚䜿甚されおいるリ゜ヌス容量 䟋えば、以䞋の図の GKE クラスタで、Node-A 䞊の PodPod-A-1がバヌストする堎合を考えおみたす。 Pod-A-1がバヌストする堎合に远加で䜿甚できるCPUリ゜ヌス Node-A には 1~3 たでの 3぀の Pod があり、CPU リク゚ストの合蚈倀は 1,200m CPU です。 Pod-A-1 がバヌストするタむミングで、リク゚ストされおいる CPU のうち、Pod-A-1、Pod-A-2、Pod-A-3 が合蚈 800m CPU を䜿甚しおいたずするず、バヌスト時に䜿甚できる远加の CPU は 1,200 - 800 = 400m CPU ずなりたす。 Node-B 䞊の PodPod-B-1、Pod-B-2、Pod-B-3では合蚈 1,800m CPU がリク゚ストされおおり、そのうち 1,000m CPU が䜿甚されおいたす。したがっお 800m CPU が䜙っおいる状態ですが、ノヌドが異なるため Pod-A-1 のバヌストに䜿甚するこずはできたせん。 バヌストの最適化には、 ポッドアフィニティ を䜿甚した Pod の配眮先の調敎や、 DaemonSet を䜿甚したリ゜ヌスの確保などの工倫が必芁ずなりたす。 Standard モヌドのクラスタ Standard モヌドのクラスタでは、ノヌドずしお実行されおいる Compute Engine VM の未䜿甚リ゜ヌスが、バヌストで䜿甚できるリ゜ヌス容量ずなりたす。 バヌスト可胜容量Standard= ノヌドの未䜿甚リ゜ヌス容量 バヌストによっおノヌド内のリ゜ヌスが枯枇した堎合 ノヌドで䜿甚できる CPU リ゜ヌスがバヌストによっお枯枇した堎合、GKE は䞀郚のコンテナの CPU 䜿甚率を調敎するこずで、すべおのコンテナが元々リク゚ストしおいた CPU を䜿甚できるようにしたす。 それに察しお、ノヌドで䜿甚できるメモリリ゜ヌスがバヌストによっお枯枇した堎合、GKE は コンテナを終了しおメモリを再利甚できるようにしたす。 Pod に蚭定された QoS が䜎く、リ゜ヌスを倧量に䜿甚しおいるコンテナが優先的に終了されたす。 したがっお、メモリのバヌストには極力䟝存せず、十分なメモリ容量のリク゚ストを蚭定しおおくこずが掚奚されたす。 たた、バヌスト可胜な Pod は QoS が Burstable に蚭定されるため、重芁なコンテナを含む Pod は、より高い QoS である Guaranteed に蚭定しおおきたす。 バヌストが䜿甚できるクラスタでは、リ゜ヌスリク゚ストrequestsずリミットlimitsを同䞀の倀にするこずで、QoS が Guaranteed の Pod を実行するこずができたす。 バヌスト可胜な Pod を䜿甚する 圓蚘事で䜿甚する GKE クラスタに぀いお 圓蚘事では Autopilot モヌドの GKE クラスタを䜿甚したす。 クラスタのコントロヌルプレヌンずノヌドのバヌゞョンは以䞋のようになっおいたす。 MASTER_VERSION: 1 . 29 .2-gke. 1521000 NODE_VERSION: 1 . 29 .2-gke. 1521000 䜿甚するマニフェストファむル burstable-pod.yaml このマニフェストファむルでは、バヌスト可胜な Pod ずしお、最小の CPU・メモリ容量をリク゚ストする Pod を䜜成したす。 # burstable-pod.yaml apiVersion : v1 kind : Pod metadata : name : burstable-pod spec : containers : - name : burstable-pod image : nginx:1.25 resources : requests : cpu : 50m memory : 52Mi ephemeral-storage : 10Mi placeholder-daemon.yaml このマニフェストファむルでは、ノヌドのリ゜ヌスをある皋床リク゚ストしおおき、実際には䜕もしない Pod を䜜成したす。 この Pod の CPU・メモリリク゚スト - この Pod が実際に䜿甚しおいる CPU・メモリ ぶんのリ゜ヌスが、 burstable-pod.yaml で䜜成した Pod のバヌスト時に䜿甚するこずができたす。 DaemonSet ずしお Pod を䜜成するこずで、実行されおいる党おのノヌドでバヌスト甚のリ゜ヌスを確保しおおくこずができたす。 なお、Autopilot モヌドの堎合は、実際にリ゜ヌスが䜿甚されおいなくおも、 リク゚ストしたリ゜ヌスの料金が発生する 点は泚意が必芁です。 # placeholder-daemon.yaml apiVersion : apps/v1 kind : DaemonSet metadata : name : placeholder labels : app : placeholder spec : selector : matchLabels : app : placeholder template : metadata : labels : app : placeholder spec : containers : - name : placeholder image : nginx:1.25 resources : requests : cpu : 500m バヌスト可胜な Pod の䜜成 GKE クラスタにバヌスト可胜な Pod のマニフェストファむルを適甚したす。 # バヌスト可胜な Pod を䜜成する $ kubectl apply -f burstable-pod.yaml pod/burstable-pod created Pod の䜜成埌、QuS が Burstable になっおいるこずを確認したす。 # Pod の QuS を確認する $ kubectl describe pod burstable-pod | grep -m 1 " QoS " QoS Class: Burstable Pod のリ゜ヌスリク゚ストの倀を確認したす。 バヌスト可胜な Pod の最小倀が蚭定できおいるこずがわかりたす。 # Pod のリ゜ヌスリク゚ストを確認する $ kubectl get pods burstable-pod -o json | jq ' .spec.containers[0].resources.requests ' { " cpu " : " 50m " , " ephemeral-storage " : " 10Mi " , " memory " : " 52Mi " } バヌスト容量を確保する Pod の䜜成 この DaemonSet で䜜成される Pod は䜕も凊理を行わず、リ゜ヌスをほが䜿甚したせん。したがっお、ここでリク゚ストしたリ゜ヌスは burstable-pod のバヌスト時に代わりに䜿甚できたす。 # DaemonSet を䜜成する $ kubectl apply -f placeholder-daemon.yaml daemonset.apps/placeholder created # burstable-pod ず同じノヌドに Pod が䜜成されおいるこずを確認する $ kubectl get po -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES burstable-pod 1 / 1 Running 0 2m18s 172 . 17 . 0 . 137 gk3-cluster-gke-public-129-aut-pool-2-b4bbb5d3-62bk < none > < none > placeholder-9drqb 1 / 1 Running 0 12s 172 . 17 . 0 . 138 gk3-cluster-gke-public-129-aut-pool-2-b4bbb5d3-62bk < none > < none > placeholder-bwnx2 1 / 1 Running 0 12s 172 . 17 . 0 . 202 gk3-cluster-gke-public-129-aut-pool-2-48addb14-h72h < none > < none > placeholder-qm8qj 1 / 1 Running 0 12s 172 . 17 . 1 . 14 gk3-cluster-gke-public-129-aut-pool-2-af2c9a34-qsbl < none > < none > Pod のバヌストを確認 バヌスト可胜な Pod にログむンし、yes コマンドで負荷をかけるこずで、Pod をバヌストさせおみたす。 # Pod にログむンする $ kubectl exec -it burstable-pod -- /bin/bash # Pod に負荷をかける root@burstable-pod:/# yes > /dev/null 別タヌミナルから、Pod のリ゜ヌス䜿甚状況を確認したす。 CPU リク゚スト 50m の Pod がバヌストし、966m が䜿甚されおいるこずがわかりたす。 placeholder-daemon.yaml で䜜成した Pod の CPU リク゚スト500m、およびシステム Pod の CPU リク゚ストのうち、これらの Pod で珟圚䜿甚されおいないぶんのリ゜ヌスが、バヌストした burstable-pod で䜿甚されおいたす。 # 別のタヌミナルから Pod のリ゜ヌス䜿甚状況を確認する $ kubectl top pod burstable-pod NAME CPU ( cores ) MEMORY ( bytes ) burstable-pod 966m 4Mi バヌストの䞊限を蚭定する burstable-pod.yaml に limits を远蚘 バヌスト可胜な Pod のマニフェストファむルで resources.limits を蚭定するこずで、バヌストの䞊限を蚭定するこずができたす。 以䞋のマニフェストファむルでは、たず 50m CPU の Pod が䜜成され、バヌスト時には最倧で 300m CPU たで CPU リ゜ヌスを䜿甚するこずができたす。 # burstable-pod.yaml apiVersion : v1 kind : Pod metadata : name : burstable-pod spec : containers : - name : burstable-pod image : nginx:1.25 resources : requests : cpu : 50m memory : 52Mi ephemeral-storage : 10Mi limits : cpu : 300m # バヌストの䞊限 このマニフェストファむルで䜜成した Pod に負荷をかけおみるず、 resources.limits で指定した倀たでしか CPU が䜿甚されおいないこずがわかりたす。 # Pod のリ゜ヌス䜿甚状況を確認する $ kubectl top pod burstable-pod NAME CPU ( cores ) MEMORY ( bytes ) burstable-pod 300m 3Mi バヌストが䜿甚できるクラスタで QoS が Guaranteed の Pod を䜜成する 最埌に、バヌストが䜿甚できるクラスタで、バヌストを䜿甚しない、QoS が Guaranteed に蚭定された Pod を䜜成したす。 リ゜ヌスの requests ず limits の倀を同䞀にする必芁がありたす。 この Pod は、他の Pod がバヌストしたこずによっおノヌド䞊のメモリの枯枇が起きた際に、終了察象ずしお遞択される優先床が䜎くなっおいたす。 # guaranteed-pod.yaml apiVersion : v1 kind : Pod metadata : name : guaranteed-pod spec : containers : - name : guaranteed-pod image : nginx:1.25 resources : requests : cpu : 250m memory : 512Mi limits : # requests ず同䞀の倀を蚭定する cpu : 250m memory : 512Mi マニフェストファむルをクラスタに適甚し、Pod の QoS を確認したす。 # QoS が Guaranteed の Pod を䜜成する $ kubectl apply -f guaranteed-pod.yaml pod/guaranteed-pod created # Pod の QuS を確認する $ kubectl describe pod guaranteed-pod | grep -m 1 " QoS " QoS Class: Guaranteed 参考リンク GKE Autopilot mode gets burstable workloads and smaller Pod sizes Google Cloud ブログ Configure Pod bursting in GKE Google Cloud ドキュメント 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2024に遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
G-gen の䜐々朚です。圓蚘事では、GKE における Workload Identity Federation の、新しく远加された蚭定方法を解説したす。 GKE における Workload Identity Federation 埓来の方法 新しい方法 新しい方法の制限事項 新しい Workload Identity Federation の蚭定手順 圓蚘事で䜿甚する GKE クラスタに぀いお ServiceAccount リ゜ヌスの䜜成 Workload Identity Federation の蚭定 動䜜確認 参考手順 GKE における Workload Identity Federation 埓来の方法 GKE クラスタ内の Pod 䞊で動䜜するアプリケヌションから Google Cloud の API にアクセスする堎合、認蚌方法ずしお Workload Identity Federation の䜿甚が掚奚されおいたす。 埓来の Workload Identity Federation では、GKE クラスタ䞊に䜜成した ServiceAccount リ゜ヌスず、Google Cloud の IAM サヌビスアカりントを玐づけるこずで利甚できたした。 これにより、ServiceAccount を䜿甚する Pod が、それに玐づいた IAM サヌビスアカりントの暩限を借甚できるようになりたす。 埓来のWorkload Identity Federation 埓来の方法、たた Workload Identity を䜿甚せずに IAM 認蚌を行う方法の詳现は、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp 新しい方法 新しい方法では、GKE クラスタ内の ServiceAccount リ゜ヌスを IAM のプリンシパルずしお蚭定するこずで、ServiceAccount に IAM ロヌルを盎接玐づけるこずができたす。 GKEクラスタ内のServiceAccountをIAMのプリンシパルずしお蚭定する この方法では玐づけ先ずなる IAM サヌビスアカりントを䜜成しなくおもよいため、IAM サヌビスアカりントの管理負荷が軜枛されるほか、蚭定の手順が簡略化されたす。 新しいWorkload Identity Federation 新しい方法の制限事項 埓来の方法では、GKE クラスタ内の ServiceAccount が IAM サヌビスアカりントの暩限借甚を行う、぀たり IAM サヌビスアカりントになりすたすimpersonate こずで、Google Cloud の API にアクセスしおいたした。 新しい方法ではこの暩限借甚が行われず、あくたでも GKE クラスタ内の ServiceAccount をプリンシパルずしお API ぞのアクセスが行われたす。 この「暩限借甚が行われない」こずで制限がかかるケヌスずしお、 VPC Service Control でサヌビス境界を蚭定しおいる堎合 がありたす。 サヌビス境界の䞊り内向きず䞋り倖向きのルヌルでは、アクセスを蚱可する察象ずしお GKE クラスタ内の ServiceAccount を指定するこずができたせん。 GKE 内のアプリケヌションは、IAM サヌビスアカりントの暩限借甚を介しおサヌビス境界内のリリヌスにアクセスする必芁がありたす。 したがっお、このようなケヌスでは埓来の方法で Workload Identity Federation を蚭定したす。 参考 Identity federation: products and limitations 新しい Workload Identity Federation の蚭定手順 圓蚘事で䜿甚する GKE クラスタに぀いお 圓蚘事では Autopilot モヌドの GKE クラスタを䜿甚したす。 クラスタのコントロヌルプレヌンずノヌドのバヌゞョンは以䞋のようになっおいたす。 MASTER_VERSION: 1.27.8-gke.1067004 NODE_VERSION: 1.27.8-gke.1067004 ServiceAccount リ゜ヌスの䜜成 GKE クラスタに ServiceAccout リ゜ヌスを䜜成したす。 # GKE クラスタに ServiceAccount リ゜ヌスを䜜成 $ kubectl create serviceaccount my-serviceaccount Workload Identity Federation の蚭定 さきほど䜜成した ServiceAccout に察しお IAM ロヌルを玐付けたす。 IAM ロヌルの玐づけを行う際に、IAM プリンシパルずしお Workload Identity Federation 特有の文字列を指定したす。 圓蚘事では、蚭定に必芁な情報がわかりやすいように、以䞋のシェル倉数を蚭定しおいきたす。 # シェル倉数の蚭定 PROJECT_ID = { プロゞェクトID } PROJECT_NUMBER = { プロゞェクト番号 } SERVICE_ACCOUNT = { GKEクラスタに䜜成したServiceAccountの名前 } NAMESPACE =default もし default 以倖の Namespace を䜿甚する堎合は、 NAMESPACE 倉数の倀も倉曎しおください。 たた、プロゞェクト番号はコン゜ヌルのダッシュボヌド画面や、以䞋のコマンドを䜿甚するこずで確認できたす。 # プロゞェクト番号を確認する $ gcloud projects describe ${PROJECT_ID} | grep projectNumber 以䞋のコマンドを実行し、GKE クラスタに䜜成した ServiceAccount に IAM ロヌルを玐づけたす。 圓蚘事では「Kubernetes Engine Cluster 閲芧者roles/container.clusterViewer」を蚭定したす。 # ServiceAccout に IAM ロヌルを玐づけ $ gcloud projects add-iam-policy-binding projects/ ${PROJECT_ID} \ --role=roles/container.clusterViewer \ --member=principal://iam.googleapis.com/projects/ ${PROJECT_NUMBER} /locations/global/workloadIdentityPools/ ${PROJECT_ID} .svc.id.goog/subject/ns/ ${NAMESPACE} /sa/ ${SERVICE_ACCOUNT} 動䜜確認 GKE クラスタ内の Pod に ServiceAccount を玐付け、Google Cloud の API にアクセスしおみたす。 以䞋のマニフェストファむルを䜿甚しお、gcloud コマンドがむンストヌルされたコンテナを含む Pod をクラスタに䜜成したす。 spec.serviceAccountName に ServiceAccount の名前を蚭定したす。 # pod.yaml apiVersion : v1 kind : Pod metadata : name : test-pod namespace : default spec : serviceAccountName : my-serviceaccount containers : - name : test-pod image : google/cloud-sdk:slim command : [ "sleep" , "infinity" ] Standard クラスタを䜿甚しおいる堎合は、マニフェストファむルに spec.nodeSelector フィヌルドを蚘述し、Pod が Workload Identity Federation を䜿甚できるノヌドプヌルに配眮されるようにしたす。 # Standard クラスタの堎合の远蚘内容 spec : nodeSelector : iam.gke.io/gke-metadata-server-enabled : "true" Pod が実行状態になるのを埅っおから、以䞋のコマンドで Pod 偎から gcloud コマンドを実行しおみたす。 ここでは GKE クラスタの䞀芧を取埗するコマンドを実行しおいたすが、暩限゚ラヌが発生するこずなく GKE クラスタの䞀芧が取埗できたした。 # Pod 偎で gcloud コマンドを実行 $ kubectl exec -it test-pod -- gcloud container clusters list # 出力䟋 $ kubectl exec -it test-pod -- gcloud container clusters list NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS cluster-sasashun-gke-public-autopilot asia-northeast1 1 . 27 .8-gke. 1067004 xx.xx.xxx.xxx e2-small 1 . 27 .8-gke. 1067004 1 RUNNING 参考手順 Authenticate to Google Cloud APIs from GKE workloads 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2024に遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
G-gen の䜐々朚です。圓蚘事では GKE の Ingress リ゜ヌスずしお䜜成したロヌドバランサで Identity-Aware Proxy を有効化する方法を解説したす。 圓蚘事の抂芁 GKE クラスタにサンプルアプリケヌションをデプロむ GKE クラスタの䜜成 Deployment リ゜ヌスの䜜成 Google マネヌゞド蚌明曞の䜜成 静的倖郚 IP アドレスの䜜成 DNS レコヌドの䜜成 ManagedCertificate リ゜ヌスの䜜成 アプリケヌションの公開 Ingress リ゜ヌスの䜜成 ブラりザからアプリケヌションにアクセス OAuth 認蚌情報を栌玍する Secret リ゜ヌスの䜜成 OAuth 同意画面の構成 OAuth 2.0 クラむアント ID ずシヌクレットの発行 Secret リ゜ヌスの䜜成 IAP の有効化 BackendConfig リ゜ヌスの䜜成 Ingress リ゜ヌスの曎新 IAP の動䜜確認 参考手順 圓蚘事の抂芁 圓蚘事では、GKE クラスタに Ingress リ゜ヌスずしお䜜成したアプリケヌションロヌドバランサで Identity-Aware Proxy 以䞋、IAPを有効化する手順を解説したす。 IAP は、Web アプリケヌションや仮想マシンなどのクラりドリ゜ヌスに察しお、アプリケヌションレベルの認蚌機胜を提䟛するサヌビスです。 IAP を甚いるこずで、Web アプリケヌションや仮想マシンにアクセスできるナヌザヌを、特定の IAM ロヌル がアタッチされた Google アカりント / グルヌプ に制限するこずができたす。 Ingress で IAP を䜿甚するこずにより、バック゚ンドの Pod 䞊で動䜜するアプリケヌションにアクセスする際に、IAM による認蚌を必須にするこずができたす。 IngressでIAPを有効化する Kubernetes および GKE に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp blog.g-gen.co.jp たた、圓蚘事に関連しお、以䞋の蚘事では Ingress リ゜ヌスずしお䜜成したアプリケヌションロヌドバランサで Cloud Armor を䜿甚する方法に぀いお解説しおいたす。 GKE 䞊で展開するりェブアプリケヌションに接続元 IP アドレス制限などをかけたい堎合は、こちらもご䞀読ください。 blog.g-gen.co.jp GKE クラスタにサンプルアプリケヌションをデプロむ GKE クラスタの䜜成 圓蚘事では Autopilot モヌドの GKE クラスタを䜿甚したす。 䜿甚するクラスタのコントロヌルプレヌンおよびノヌドのバヌゞョンは以䞋のようになっおいたす。 MASTER_VERSION: 1.27.8-gke.1067004 NODE_VERSION: 1.27.8-gke.1067004 GKE クラスタの䜜成方法に぀いおは 公匏ドキュメント 、たたは Terraform を䜿甚した以䞋の蚘事を参照しおください。 blog.g-gen.co.jp Deployment リ゜ヌスの䜜成 以䞋のマニフェストファむルを GKE クラスタに適甚し、Deployment リ゜ヌスを䜜成したす。 この Deployment により、Google Cloud が公開しおいる サンプルアプリケヌション のコンテナむメヌゞを䜿甚する Pod が䜜成されたす。 # deployment.yaml apiVersion : apps/v1 kind : Deployment metadata : name : helloweb labels : app : hello spec : selector : matchLabels : app : hello template : metadata : labels : app : hello spec : containers : - name : hello-app image : us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 ports : - containerPort : 8080 resources : requests : cpu : 200m Google マネヌゞド蚌明曞の䜜成 静的倖郚 IP アドレスの䜜成 Ingress リ゜ヌスずしお䜜成される倖郚アプリケヌションロヌドバランサに玐付ける、静的倖郚 IP アドレスを䜜成したす。 # 静的倖郚 IP アドレスを䜜成する $ gcloud compute addresses create helloweb-ip --global DNS レコヌドの䜜成 利甚可胜なドメむンず、さきほど䜜成した IP アドレスを䜿甚しお A レコヌドを登録したす。 圓蚘事では Cloud DNS を䜿甚したす。 Cloud DNS では、以䞋のように CLI でレコヌドを登録するこずができたす。 # トランザクションの開始 $ gcloud dns record-sets transaction start --zone = { DNS ゟヌン名 } # A レコヌドを䜜成 $ gcloud dns record-sets transaction add { 䜜成した IP アドレス } \ --name = { 䜿甚するドメむン } \ --ttl = 300 \ --type = A \ --zone = { DNS ゟヌン名 } # トランザクションの終了 $ gcloud dns record-sets transaction execute --zone = { DNS ゟヌン名 } ManagedCertificate リ゜ヌスの䜜成 以䞋のマニフェストファむルを䜿甚しお、GKE の ManagedCertificate リ゜ヌスずしお Google マネヌゞド SSL 蚌明曞を䜜成したす。 spec.domains には A レコヌドに蚭定したドメむン名を蚘述したす。 # cert.yaml apiVersion : networking.gke.io/v1 kind : ManagedCertificate metadata : name : hello-managed-cert spec : domains : - { 䜿甚するドメむン } # Aレコヌドで䜿甚したドメむン 蚌明曞の怜蚌には20分ほどかかるため、怜蚌埅ちの間に以降の手順を実斜したす。 アプリケヌションの公開 Ingress リ゜ヌスの䜜成 IAP 有効化前埌の動䜜の比范をするため、たずは IAP を有効化しおいない状態でロヌドバランサを䜜成し、IAM 認蚌なしでアプリケヌションを公開したす。 Ingress リ゜ヌスずしお、ここたでの手順で䜜成した静的倖郚 IP アドレス、Google マネヌゞド蚌明曞ManagedCertificate リ゜ヌスを䜿甚するアプリケヌションロヌドバランサを䜜成したす。 以䞋のマニフェストファむルを GKE クラスタに適甚したす。 # ingress.yaml apiVersion : networking.k8s.io/v1 kind : Ingress metadata : name : helloweb annotations : kubernetes.io/ingress.class : "gce" kubernetes.io/ingress.global-static-ip-name : helloweb-ip # 䜜成した静的倖郚 IP アドレスの名前 networking.gke.io/managed-certificates : hello-managed-cert # 䜜成した ManagedCertificate リ゜ヌスの名前 labels : app : hello spec : defaultBackend : service : name : helloweb-backend port : number : 8080 --- apiVersion : v1 kind : Service metadata : name : helloweb-backend labels : app : hello spec : type : NodePort selector : app : hello ports : - port : 8080 targetPort : 8080 なお、 kubectl apply で䞊蚘マニフェストファむルを適甚するず、以䞋のような Warning メッセヌゞが衚瀺されたす。 $ kubectl apply -f manifests/ingress.yaml Warning: annotation " kubernetes.io/ingress.class " is deprecated, please use ' spec.ingressClassName ' instead ingress.networking.k8s.io/helloweb created service/helloweb-backend created これは、2024幎3月珟圚、Ingress の䜜成時にアノテヌションずしお kubernetes.io/ingress.class を䜿甚するのが Kubernetes では非掚奚になっおいるためです。 Kubernetes では非掚奚になっおいるものの、GKE では匕き続きこのアノテヌションを䜿甚しお Ingress を䜜成したす 参考 。 ブラりザからアプリケヌションにアクセス 前の手順で䜜成した ManagedCertificate リ゜ヌスの STATUS が ACTIVE になっおいるこずを確認したす。 $ kubectl get managedcertificates -w NAME AGE STATUS hello-managed-cert 6m6s Provisioning hello-managed-cert 16m Active DNS に蚭定したドメむン名を䜿甚しおブラりザからアクセスするず、以䞋のようなサンプルアプリケヌションの画面が衚瀺されたす。 GKE䞊のアプリケヌションにアクセスする OAuth 認蚌情報を栌玍する Secret リ゜ヌスの䜜成 OAuth 同意画面の構成 プロゞェクトで OAuth 同意画面 をただ構成しおいない堎合は、蚭定を行いたす。 手順は こちらのブログ蚘事 の「OAuth 同意画面の蚭定」を参照しおください。 OAuth 2.0 クラむアント ID ずシヌクレットの発行 Google Cloud コン゜ヌルの「API ずサヌビス」から、OAuth 2.0 クラむアント ID を䜜成しおいきたす。 「OAuth クラむアント ID」を遞択する 以䞋の項目を入力し、「䜜成」を遞択したす。 項目 倀 アプリケヌションの皮類 りェブ アプリケヌション 名前 任意の名前 「承認枈みのリダむレクト URI」項目は埌ほど蚭定するため、䞀旊は空欄のたた䜜成したす。 OAuth クラむアント ID を䜜成する 䜜成埌、 クラむアント ID ず クラむアント シヌクレット が衚瀺されるので、この2぀はメモしおおきたす。 クラむアント ID ずクラむアント シヌクレットをメモしおおく 䜜成したクラむアント ID の線集画面を開き、「承認枈みのリダむレクト URI」項目を蚭定したす。 倀には、先ほどメモしおおいたクラむアント ID を含む以䞋の URI を蚭定したすクラむアント ID ずシヌクレットの倀は線集画面からも確認できたす。 「承認枈みのリダむレクト URI」の蚭定倀 https://iap.googleapis.com/v1/oauth/clientIds/{クラむアント ID の倀}:handleRedirect 「承認枈みのリダむレクト URI」を蚭定する Secret リ゜ヌスの䜜成 OAuth 2.0 クラむアント ID を䜜成したずきにメモしおおいたクラむアント ID、クラむアント シヌクレットの倀を䜿甚しお、GKE クラスタに Secret リ゜ヌスを䜜成したす。 # Secret リ゜ヌスを䜜成する kubectl create secret generic iap-secret --from-literal = client_id = { クラむアント ID の倀 } \ --from-literal = client_secret = { クラむアント シヌクレットの倀 } IAP の有効化 BackendConfig リ゜ヌスの䜜成 以䞋のマニフェストファむルを GKE クラスタに適甚し、IAP 甚の BackendConfig リ゜ヌスを䜜成したす。 spec.iap.oauthclientCredentials.secretName には、前の手順で䜜成した Secret リ゜ヌスの名前を蚘述したす。 # backendconfig.yaml apiVersion : cloud.google.com/v1 kind : BackendConfig metadata : name : iap-backendconfig spec : iap : enabled : true oauthclientCredentials : secretName : iap-secret Ingress リ゜ヌスの曎新 Ingress リ゜ヌスのマニフェストファむルを曎新し、先ほど䜜成した IAP 甚の BackendConfig を玐付けたす。 以䞋のように Service リ゜ヌスに metadata.annotations.beta.cloud.google.com/backend-config を远蚘し、GKE クラスタに再適甚したす。 # ingress.yaml apiVersion : networking.k8s.io/v1 kind : Ingress metadata : name : helloweb annotations : kubernetes.io/ingress.class : "gce" kubernetes.io/ingress.global-static-ip-name : helloweb-ip networking.gke.io/managed-certificates : hello-managed-cert labels : app : hello spec : defaultBackend : service : name : helloweb-backend port : number : 8080 --- apiVersion : v1 kind : Service metadata : name : helloweb-backend labels : app : hello annotations : # この項目を远蚘 beta.cloud.google.com/backend-config : '{"default": "iap-backendconfig"}' # 䜜成した BackendConfig リ゜ヌスの名前 spec : type : NodePort selector : app : hello ports : - port : 8080 targetPort : 8080 IAP の動䜜確認 再床ブラりザからアプリケヌションにアクセスし、以䞋のようなログむン画面が衚瀺されれば、IAP による認蚌が有効化されおいたす有効化には少し時間がかかりたす。 IAPのログむン画面 IAM で「IAP で保護されたりェブアプリ ナヌザヌroles/iap.httpsResourceAccessor」ロヌルが付䞎されたアカりントを䜿甚するこずで、ログむンするこずができたす。 参考手順 GKE での IAP の有効化 Ingress configuration on Google Cloud 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2025 Fellowに遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
G-gen の杉村です。2024幎3月のむチオシ Google Cloud アップデヌトをたずめおご玹介したす。蚘茉は党お、蚘事公開圓時のものですのでご留意ください。 はじめに 攟眮プロゞェクトに察する掚奚事項が衚瀺 AlloyDB AI が Preview => GA BigQuery で Amazon S3 に察するマテビュヌ等が Preview => GA IAM 事前定矩ロヌル䞀芧ドキュメントの読み蟌みが高速化 Cloud Run の service レベルで最小むンスタンス数を蚭定可胜に 別 GWS アカりントにメヌルデヌタを移行Open Beta VPC で Internal ranges が Preview => GA Dataflow streaming jobs で CUD確玄利甚割匕が賌入可胜に Vertex AI Searchで ドキュメントの「チャンク化」が利甚可胜に Vertex AI Search で ServiceNow ず接続 (Private Preview) Cloud Run の Direct VPC egress で Cloud NAT が䜿甚可胜に Vertex AI Search で Google ドラむブずの sync が可胜に (Preview) 新しい組織ポリシヌ iam.serviceAccountKeyExposure が利甚可胜に 削陀された BigQuery デヌタセットを埩旧できるようにPreview 新サヌビス App Hub が Preview => GA Container Registry が廃止ぞ Cloud Run から NFS volume をマりントできるようにPreview 新芏 Google Cloud 組織でデフォルトの組織ポリシヌが適甚される BigQuery で Salesforce Data Cloud のデヌタを取り蟌めるように BigQuery の Incremental materialized view で察応 SQL が拡匵 Cloud Loggingでintercepting aggregated sinkが利甚可胜に 耇数の Application Load Balancer が mTLS (盞互 TLS) に察応 (Preview) はじめに 月ごずの Google Cloud アップデヌトのうち、特にむチオシなものをたずめおいたす。 ある皋床の事前知識が必芁な蚘茉ずなっおいたす。サヌビスごずの前提知識は、ぜひ以䞋の蚘事もご参照ください。 blog.g-gen.co.jp たたリンク先の公匏ガむドは英語版にしないず最新情報が反映されおいない堎合がありたすためご泚意ください。 攟眮プロゞェクトに察する掚奚事項が衚瀺 (2024/2月末頃) Resource Manager のツリヌ衚瀺から、攟眮プロゞェクト䜿われおおらず攟眮されおいる Google Cloud プロゞェクトの情報が衚瀺されるようになった。 攟眮プロゞェクトはセキュリティホヌルになり埗るため、削陀するなどの察策が望たしい。 圓機胜はリリヌスノヌトに蚘茉がなく、サむレントリリヌス。 AlloyDB AI が Preview => GA Build generative AI applications using AlloyDB AI (2024/02/29) AlloyDB AI が Preview => GA。AlloyDB の䞭から SQL で Vertex AI のモデルを呌び出せる。゚ンべディングむンデックス䜜成ク゚リも可胜。 BigQuery で Amazon S3 に察するマテビュヌ等が Preview => GA BigLake metadata cache-enabled tables (2024/02/29) BigQuery で Amazon S3 に察するマテビュヌ等が Preview => GA。 S3 に栌玍された CSV 等に察しマテリアラむズドビュヌを䜜り、自動曎新でデヌタを BigQuery に実䜓化。パフォヌマンスや AWS 偎 Egress コストの面で、通垞の BigQuery Omni より優れる。 IAM 事前定矩ロヌル䞀芧ドキュメントの読み蟌みが高速化 IAM basic and predefined roles reference (2024/03/05) 新機胜ではなく、公匏ドキュメントの修正。IAM の事前定矩ロヌル䞀芧のドキュメントで「*」を展開できなくなる代わりに、ペヌゞの読み蟌みが高速化。 埓来はこのペヌゞを衚瀺しきるのに 30秒〜1分ほどかかっおいたが、10秒ほどに短瞮。 Cloud Run の service レベルで最小むンスタンス数を蚭定可胜に Applying minimum instances at service-level versus revision-level (2024/03/05) Cloud Run の service レベルで最小むンスタンス数を蚭定できるようにPreview。 埓来は revision レベルでしか蚭定できず、蚭定倉曎いは再デプロむが必芁だった。今埌はサヌビスレベルでの蚭定が掚奚になる。 別 GWS アカりントにメヌルデヌタを移行Open Beta Migrate email data from one Google Workspace account to another, available in open beta (2024/03/05) Gmail のメヌルデヌタを、ある Google Workspace アカりントから別の Google Workspace アカりントに移行可胜。 同䞀組織内のアカりント同士、たたは他の組織のアカりントに察しお移行可胜。 䞀床に最倧 100 ナヌザヌたで移行できる。 VPC で Internal ranges が Preview => GA Internal ranges overview (2024-03-07) VPC で Internal ranges が Preview => GA。 IP アドレス範囲を「Internal range」オブゞェクトずしお CIDR 圢匏で予玄しおおける。Internal range ぞの暩限がなければ、その IP 範囲でサブネットを䜜ったり他ネットワヌクずピアリングできない。 Dataflow streaming jobs で CUD確玄利甚割匕が賌入可胜に Committed use discounts (2024-03-12) Dataflow streaming jobs で CUD確玄利甚割匕が賌入できるように。 1幎 or 3幎のコミットメントで20%〜40%の割匕が適甚される。FlexRS など適甚倖のリ゜ヌスがあるこずに留意。 Vertex AI Searchで ドキュメントの「チャンク化」が利甚可胜に Parse and chunk documents (2024-03-12) Vertex AI Searchで ドキュメントの「チャンク化」が利甚可胜に。 PDF等非構造化デヌタストアで有効化するずLLMによる回答生成の粟床が向䞊。䞀方で無効化デフォルトだずドキュメント怜玢に最適化。甚途により有効 or 無効を遞択するずよい。 Vertex AI Search で ServiceNow ず接続 (Private Preview) Connect a third-party data source (2024-03-12) Vertex AI Search で ServiceNow ず接続できるようにPrivate Preview。 サヌドパヌティは他に Confluence、Jira、Salesforce に既に察応いずれも Preview。 Cloud Run の Direct VPC egress で Cloud NAT が䜿甚可胜に Cloud Run Release Notes - March 14, 2024 (2024-03-14) Cloud Run の Direct VPC egress で Cloud NAT (Public IP) が䜿えるように。 埓来は Direct VPC egress 経由だず Cloud NAT は䜿甚䞍可で、接続元 IP を固定したいずきは「サヌバヌレス VPC アクセス」を䜿う必芁があった。 Vertex AI Search で Google ドラむブずの sync が可胜に (Preview) Vertex AI Search and Conversation release notes - March 15, 2024 (2024-03-15) Vertex AI Search で Google ドラむブずの sync が可胜にPreview with allowlist。 Vertex AI Search のデヌタ゜ヌスずしお Google ドラむブが利甚可胜。Google ドラむブを䜿った RAG 構成が容易に構築できる。 Preview with allowlist なので利甚には Google ぞの申請が必芁。 新しい組織ポリシヌ iam.serviceAccountKeyExposure が利甚可胜に Automatically disable exposed service account keys (2024-03-15) 新しい組織ポリシヌ iam.serviceAccountKeyExposure が利甚可胜に。 サヌビスアカりントキヌの流出が Google に怜知されたずき、キヌを自動的に無効化。2024-06-16 からすべおの組織においおデフォルトで有効化される。 以䞋の蚘事も参照。 blog.g-gen.co.jp 削陀された BigQuery デヌタセットを埩旧できるようにPreview Undelete datasets (2024-03-18) BigQuery で、削陀しおしたったデヌタセットを埩旧できるようにPreview。 ただし埩旧できるのは、タむムトラベル期間䞭デフォルト7日間に限る。 新サヌビス App Hub が Preview => GA App Hub overview (2024-03-19) Google Cloud の新サヌビス App Hub が 2024-03-19 に Preview => GA䞀般公開。 Google Cloud リ゜ヌスを論理的にグルヌピングしおワヌクロヌドごずに敎理するサヌビス。Preview 公開時は gcloud での操䜜のみだったが、コン゜ヌル操䜜もできるようになった。 Container Registry が廃止ぞ Container Registry deprecation (2024-03-19) Google Cloud のコンテナむメヌゞレゞストリサヌビスである Container Registry が廃止ぞ。 Artifact Registry ぞ移行する必芁あり。今埌のスケゞュヌルは以䞋の通り。 2025-03-18以降、Container Registry ぞのむメヌゞ曞き蟌みが䞍可に 2025-04-22には、むメヌゞの読み出しも䞍可 Cloud Run から NFS volume をマりントできるようにPreview NFS volume mounts for services (2024-03-19) Cloud Run (services/jobs) から VPC/オンプレの NFS volume をマりントできるようになった。 Google Cloud のフルマネヌゞドなファむルシステムである「Filestore」にも察応しおいる。 新芏 Google Cloud 組織でデフォルトの組織ポリシヌが適甚される Introducing stronger default Org Policies for our customers (2024-03-21) 2024幎初頭以降に新芏䜜成の Google Cloud 組織では、デフォルトで耇数の組織ポリシヌが適甚されるこずになった。 "Disable service account key creation" や "Domain restricted sharing" などが最初から有効化されおいる。よりセキュアになる䞀方で、Google Cloud の䜿い始めにあたり、仕様を正しく理解しおいないず壁にぶ぀かるこずも想定される。 BigQuery で Salesforce Data Cloud のデヌタを取り蟌めるように Work with Salesforce Data Cloud data in BigQuery (2024-03-21) BigQuery で Salesforce Data Cloud のデヌタを取り蟌めるようになったGA。Salesforce Data Cloud ずは、日本では2024幎3月に提䟛開始されたクラりド型 CDP。 BigQuery Omni により SF Data Cloud 䞊のデヌタをク゚リしたり、マテリアラむズド・ビュヌで氞続化できる。 BigQuery の Incremental materialized view で察応 SQL が拡匵 LEFT OUTER JOIN and UNION ALL support (2024-03-21) BigQuery の Incremental materialized view が LEFT OUTER JOIN ず UNION ALL をサポヌトPreview。 LEFT JOIN では巊偎のテヌブルにレコヌド远加があった堎合に増分(Incremental)アップデヌトになり、効率的にク゚リが凊理される。 Cloud Loggingでintercepting aggregated sinkが利甚可胜に Collate and route organization- and folder-level logs to supported destinations (2024-03-27) Cloud Loggingでintercepting aggregated sinkが利甚可胜に。組織内の芪リ゜ヌスでこの sink を䜿うず、収集されたログは子リ゜ヌスのシンクでは拟えなくなる。 䞊流でログを集玄するこずでログコスト肥倧化を防げる。たた、この intercepting aggregated sink は子プロゞェクトのログルヌタヌペヌゞからも閲芧可胜。 耇数の Application Load Balancer が mTLS (盞互 TLS) に察応 (Preview) Mutual TLS authentication (2024-03-27) 以䞋の Load Balancer が mTLS (盞互 TLS) に察応。埓来は Global external Application Load Balancer (Classic/New) だけが察応しおいた。 Regional external Application Load Balancer Regional internal Application Load Balancer Cross-region internal Application Load Balancer 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO / クラりド゜リュヌション郚 郚長 元譊察官ずいう経歎を持぀珟 IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 12資栌、Google Cloud認定資栌11資栌。X (旧 Twitter) では Google Cloud や AWS のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
G-gen の䜐々朚です。圓蚘事では Google が提䟛する生成 AI モデル Gemini Pro ず、Web UI 甚の Python フレヌムワヌクである Gradio を䜿甚した、シンプルなチャットボットの䜜り方を玹介したす。 前提知識 Gemini Pro Gradio Gradio を䜿甚しお Gemini Pro のチャットボットを開発する Python のバヌゞョン requirements.txt main.py コヌドの解説 Gradio の ChatInterface に枡す関数の圢匏に぀いお generation_config に぀いお Gemini における䌚話履歎の圢匏に぀いお 動䜜確認 ロヌカルでチャットボットを実行する チャットボットを䜿甚する チャットボットを倖郚に共有する Safety Attributes の調敎 ResponseValidationError Safety Attributes ずは コヌドの修正 修正埌の main.py å…šæ–‡ 動䜜確認 BLOCK_NONE に蚭定した堎合の動䜜に぀いお Google Cloud 䞊にチャットボットをデプロむする Cloud Run を䜿甚する コヌドの修正 Dockerfile の䜜成 Cloud Run にデプロむ 動䜜確認 Cloud Run のアクセス元制埡に぀いお 前提知識 Gemini Pro Gemini Pro は、Google が提䟛する生成 AI モデル Gemini のバリ゚ヌションの1぀であり、テキストや画像、動画などの耇数の皮類のデヌタを扱うこずができるマルチモヌダルな生成 AI モデルです。 詳现に぀いおは以䞋の蚘事をご䞀読ください。 blog.g-gen.co.jp Gradio Gradio は、Python で機械孊習 Web アプリを容易に構築できるフレヌムワヌクです。 圓蚘事では、 Gradio の ChatInterface() を䜿甚しおチャットボットを䜜成しおいたす。コヌドに以䞋の䞀行を蚘述するだけで、チャットボットに必芁な機胜を備えた UI を甚意するこずができたす。 gradio.ChatInterface(fn={関数名}).launch() ChatInterface ですぐに䜿甚できる UI この UI 䞊でメッセヌゞを送信Submitするず、 ChatInterface() に匕数ずしお枡した関数にメッセヌゞを枡すこずができたす。この関数内にメッセヌゞを凊理するロゞックを蚘述するだけで、UI を備えたチャットボットを簡単に開発するこずができたす。 参考 How to Create a Chatbot with Gradio Gradio を䜿甚しお Gemini Pro のチャットボットを開発する Python のバヌゞョン 圓蚘事の内容は、 Python 3.12.0 で詊しおいたす。 $ python --version Python 3 . 12 . 0 requirements.txt 䜿甚する倖郚ラむブラリは以䞋の通りです。 google-cloud-aiplatform==1.42.1 gradio==4.19.2 main.py 䜿甚するコヌドの党文を以䞋に蚘茉したす。 PROJECT_ID の倀は、䜿甚する Google Cloud プロゞェクトの IDに眮き換えおください。 import gradio as gr import vertexai from vertexai.generative_models import GenerativeModel, Content, Part # 環境倉数の蚭定 PROJECT_ID = "myproject" # Google Cloud プロゞェクトの ID LOCATION = "asia-northeast1" # Gemini モデルを䜿甚するリヌゞョン # Vertex AI API の初期化 vertexai.init(project=PROJECT_ID, location=LOCATION) # Gemini モデルずのチャットを行う関数 def gemini_chat (message, history, temperature, top_p, top_k, max_output_token): # Gemini モデルの初期化 generation_config = { "temperature" : temperature, # 生成するテキストのランダム性を制埡 "top_p" : top_p, # 生成に䜿甚するトヌクンの环積確率を制埡 "top_k" : top_k, # 生成に䜿甚するトップkトヌクンを制埡 "max_output_tokens" : max_output_token, # 最倧出力トヌクン数を指定 } gemini_model = GenerativeModel( model_name= "gemini-1.0-pro" , generation_config=generation_config ) # 䌚話履歎のリストを初期化 gemini_history = [] # 䌚話履歎のフォヌマットを敎圢 for row in history: input_from_user = row[ 0 ] output_from_gemini = row[ 1 ] gemini_history.append(Content(role= "user" , parts=[Part.from_text(input_from_user)])) gemini_history.append(Content(role= "model" , parts=[Part.from_text(output_from_gemini)])) # Gemini モデルに䌚話履歎をむンプット chat = gemini_model.start_chat(history=gemini_history) # Gemini モデルにプロンプトリク゚ストを送信 try : response = chat.send_message(message).text except IndexError as e: print (f "IndexError: {e}" ) return "Gemini からレスポンスが返されたせんでした。もう䞀床質問を送信するか、文章を倉えおみおください。" return response # UI に Generation Config を調敎するスラむダヌを远加するためのリスト additional_inputs = [ gr.Slider(label= "Temperature" , minimum= 0 , maximum= 1 , step= 0.1 , value= 0.4 , interactive= True ), gr.Slider(label= "Top-P" , minimum= 0.1 , maximum= 1 , step= 0.1 , value= 1 , interactive= True ), gr.Slider(label= "Top-K" , minimum= 1 , maximum= 40 , step= 1 , value= 32 , interactive= True ), gr.Slider(label= "Max Output Token" , minimum= 1 , maximum= 8192 , step= 1 , value= 1024 , interactive= True ), ] if __name__ == "__main__" : # gemini_chat 関数を䜿甚するチャットボットむンタヌフェむスを起動 gr.ChatInterface( fn=gemini_chat, additional_inputs=additional_inputs ).launch() コヌドの解説 Gradio の ChatInterface に枡す関数の圢匏に぀いお コヌド末尟の ChatInterface(fn={関数名}).launch() で Gradio のチャットボットを起動しおいたす。 if __name__ == "__main__" : gr.ChatInterface( fn=gemini_chat, additional_inputs=additional_inputs # ここは埌ほど解説 ).launch() ChatInterface() の匕数 fn に枡す関数は、ナヌザヌが送信したメッセヌゞず過去の䌚話履歎を匕数ずしお受け取るように実装したす以䞋の第1、第2匕数が該圓。 def gemini_chat (message, history, temperature, top_p, top_k, max_output_token): ナヌザヌが送信したメッセヌゞは message に栌玍されたす。 history には過去の䌚話履歎がリストずしお枡されたす。䟋えばナヌザヌが送信したメッセヌゞを user_input_N 、モデルからのレスポンスを model_response_N ずするず、以䞋のような圢匏で履歎が栌玍されたす。 history = [ [user_input_1, model_response_1], [user_input_2, model_response_2], [user_input_3, model_response_3] ] 参考 How to Create a Chatbot with Gradio - Defining a chat function generation_config に぀いお Gemini 䜿甚時にいく぀かのパラメヌタを枡すこずで、生成される回答の粟床を調敎するこずができたす。パラメヌタの詳现に぀いおは ドキュメント をご䞀読ください。 generation_config = { "temperature" : temperature, # 生成するテキストのランダム性を制埡 "top_p" : top_p, # 生成に䜿甚するトヌクンの环積確率を制埡 "top_k" : top_k, # 生成に䜿甚するトップkトヌクンを制埡 "max_output_tokens" : max_output_token, # 最倧出力トヌクン数を指定 } 圓蚘事では、以䞋のようにしおチャットボットの UI 䞊にスラむダヌを配眮し、メッセヌゞ送信前に各皮パラメヌタを手動で調敎できるようにしおいたす。 # UI に Generation Config を調敎するスラむダヌを远加するためのリスト additional_inputs = [ gr.Slider(label= "Temperature" , minimum= 0 , maximum= 1 , step= 0.1 , value= 0.4 , interactive= True ), gr.Slider(label= "Top-P" , minimum= 0.1 , maximum= 1 , step= 0.1 , value= 1 , interactive= True ), gr.Slider(label= "Top-K" , minimum= 1 , maximum= 40 , step= 1 , value= 32 , interactive= True ), gr.Slider(label= "Max Output Token" , minimum= 1 , maximum= 8192 , step= 1 , value= 1024 , interactive= True ), ] if __name__ == "__main__" : # gemini_chat 関数を䜿甚するチャットボットむンタヌフェむスを起動 gr.ChatInterface( fn=gemini_chat, additional_inputs=additional_inputs ).launch() UI にパラメヌタを手動で調敎するスラむダヌを配眮する このように手動でパラメヌタの調敎ができる機胜を぀ける堎合、メッセヌゞ送信のたびにモデルの初期化を行う必芁がありたす。レスポンスの速床などを気にする堎合は、パラメヌタを固定化しお Gemini モデルの初期化凊理はグロヌバルスコヌプに蚘述したす。 Gemini における䌚話履歎の圢匏に぀いお Gemini を利甚する堎合、過去の䌚話履歎は Content オブゞェクトずしおモデルに枡したす。 チャットボットのナヌザヌが送信したメッセヌゞは role="user" 、Gemini からのレスポンスは role="model" ずしお Content オブゞェクトを䜜成したす。 gemini_history.append(Content(role= 'user' , parts=[Part.from_text(input_from_user)])) gemini_history.append(Content(role= 'model' , parts=[Part.from_text(output_from_gemini)])) Gemini モデルずのチャットを開始する際に Content オブゞェクトのリストを枡すこずで、過去の䌚話履歎を甚いたやり取りを行うこずができたす。 chat = gemini_model.start_chat(history=gemini_history) 動䜜確認 ロヌカルでチャットボットを実行する main.py を実行しおロヌカルでチャットボットを起動したす。 デフォルトではロヌカルホスト127.0.0.1のポヌト 7860 でチャットボットが起動されるため、ブラりザからアクセスしたす。 $ python main.py Running on local URL: http:// 127.0 . 0.1 : 7860 To create a public link, set `share= True ` in `launch()`. Gradio では gradio コマンドを䜿甚するこずで、ホットリロヌドを䜿甚しおチャットボットを実行するこずもできたす。 $ gradio main.py 参考 Developing Faster with Auto-Reloading チャットボットを䜿甚する チャットボットの UI から適圓なメッセヌゞを送信しおみたす。 送信したメッセヌゞの埌に、Gemini Pro モデルからのレスポンスが衚瀺されたす。 ロヌカルで起動したチャットボットにメッセヌゞを送信する チャットボットを倖郚に共有する Gradio では期限付きの倖郚公開 URL を発行するこずもできたす。 この機胜は、 launch() の匕数に share=True を枡すこずで利甚できたす。 gr.ChatInterface( fn=gemini_chat, additional_inputs=additional_inputs ).launch(share= True ) 発行された public URL にアクセスするず、むンタヌネットからロヌカルで実行しおいるチャットボットにアクセスするこずができたす。 $ python main.py Running on local URL: http:// 127 . 0 . 0 .1:7860 Running on public URL: https://52b37dd2b7cf213999.gradio.live This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces ( https://huggingface.co/spaces ) むンタヌネットからロヌカルのチャットボットにアクセスする 参考 Quickstart - Sharing Your Demo Safety Attributes の調敎 ResponseValidationError 䜜成したチャットボットずやり取りしおいるず、以䞋のように゚ラヌが発生しおレスポンスが衚瀺されない可胜性がありたす。 チャットボットからのレスポンスで゚ラヌが発生する このスクリヌンショットぱラヌを再珟するための極端なメッセヌゞ䟋ですが、チャットボットず普通にしりずりをしおいるだけであっおも同じ゚ラヌに遭遇する可胜性がありたす。 チャットボットのログには以䞋のように ResponseValidationError が出力されおいたす。 これは、Gemini からのレスポンスに察しおいく぀かの基準埌述で怜蚌が行われた結果、䞍適切な内容が含たれおいる可胜性があるず刀断され、レスポンスがブロックされたこずを瀺しおいたす。 vertexai.generative_models._generative_models.ResponseValidationError: The model response did not completed successfully. Finish reason: 3 . Finish message: . Safety ratings: [ category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE , category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE , category: HARM_CATEGORY_HARASSMENT probability: MEDIUM blocked: true , category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE ] . To protect the integrity of the chat session, the request and response were not added to chat history . To skip the response validation, specify `model.start_chat ( response_validation =False ) ` . Note that letting blocked or otherwise incomplete responses into chat history might lead to future interactions being blocked by the service. この゚ラヌメッセヌゞでは、 HARM_CATEGORY_HARASSMENT ずいうカテゎリで MEDIUM 、぀たり䞭皋床に䞍適切な可胜性があるレスポンスがあったこずがわかりたす。 Safety Attributes ずは Safety Attributes ずは、Gemini モデルが䞍適切なコンテンツを生成するこずを防ぐための評䟡カテゎリであり、このカテゎリに照らし合わせお䞍適切な可胜性があるず刀断されたコンテンツは、ナヌザヌに返される前にブロックされたす。 Safety Attributes には以䞋のようなカテゎリがありたす。 Safety Attributes のカテゎリ 説明 Hate Speech (HARM_CATEGORY_HATE_SPEECH) 特定の属性に察するヘむトスピヌチに関するもの。 Harassment (HARM_CATEGORY_HARASSMENT) 別の個人に察する嫌がらせに関するもの。 Sexually Explicit (HARM_CATEGORY_SEXUALLY_EXPLICIT) 露骚な性的衚珟に関するもの。 Dangerous Content (HARM_CATEGORY_DANGEROUS_CONTENT) 有害な商品、サヌビス、掻動に関するもの。 Gemini API を䜿甚する堎合、API リク゚ストに Safety Settings ずしおブロックの閟倀を蚭定するこずで、Safety Attributes のカテゎリごずにフィルタヌの匷さを調敎するこずができたす。 䜕も蚭定しおいない堎合は、デフォルトで BLOCK_MEDIUM_AND_ABOVE が蚭定されたす。 閟倀 説明 BLOCK_NONE レスポンスに察しお Safety Attributes のフィルタを適甚しない垞にレスポンスを衚瀺する。 BLOCK_ONLY_HIGH 䞍適切である可胜性が高いレスポンスのみブロックする。 BLOCK_MEDIUM_AND_ABOVE デフォルトの閟倀。䞍適切である可胜性が䞭皋床以䞊のレスポンスをブロックする。 BLOCK_LOW_AND_ABOVE 䞍適切である可胜性が少皋床であっおもレスポンスをブロックする。 HARM_BLOCK_THRESHOLD_UNSPECIFIED デフォルトの閟倀を䜿甚する。 参考 Configure safety attributes コヌドの修正 Gemini モデルに察しお Safety Settings を含むリク゚ストを送信するようにコヌドを修正したす。 たず、 vertexai.generative_models からの import 文に HarmCategory 、 HarmBlockThreshold 、 ResponseValidationError を远蚘したす。 from vertexai.generative_models import GenerativeModel, Content, Part, HarmCategory, HarmBlockThreshold, ResponseValidationError Safety Attributes のカテゎリごずにフィルタヌの匷さを蚭定したす。圓蚘事では䞀埋 BLOCK_ONLY_HIGH に蚭定したす。 ここで蚭定できるカテゎリの皮類は先ほど説明した4぀に加え、䞍特定カテゎリ HARM_CATEGORY_UNSPECIFIED が存圚したす。 # 緩めの Safety Settings SAFETY_SETTINGS = { HarmCategory.HARM_CATEGORY_UNSPECIFIED: HarmBlockThreshold.BLOCK_ONLY_HIGH, HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_ONLY_HIGH, HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_ONLY_HIGH, HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_ONLY_HIGH, HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_ONLY_HIGH, } send_message で Gemini にメッセヌゞを送る際に、 safety_settings 匕数を枡すように修正したす。 たた、 BLOCK_ONLY_HIGH にフィルタヌを緩めた埌でも、䞍適切な可胜性が高いず刀定されたレスポンスは匕き続き゚ラヌが発生しおしたうため、 ResponseValidationError に぀いお䟋倖凊理を実装し、フィルタに匕っかかっおしたった堎合のナヌザヌぞのメッセヌゞを返すようにしたす。 # Gemini モデルずのチャットを行う関数 def gemini_chat (message, history): 〜〜〜省略〜〜〜 # Gemini モデルにプロンプトリク゚ストを送信 try : response = chat.send_message( message, safety_settings=SAFETY_SETTINGS # 匕数に Safety Attributes の蚭定を远加 ).text except ResponseValidationError as e: # フィルタに匕っかかった堎合の゚ラヌ凊理 print (f "ResponseValidationError: {e}" ) return "Gemini から䞍適切なレスポンスが返されたため、メッセヌゞを衚瀺できたせん。もう䞀床質問を送信するか、文章を倉えおみおください。" except IndexError as e: print (f "IndexError: {e}" ) return "Gemini からレスポンスが返されたせんでした。もう䞀床質問を送信するか、文章を倉えおみおください。" return response 修正埌の main.py å…šæ–‡ Safety Attributes の蚭定を加えたコヌドの党文を以䞋に蚘茉したす。 import gradio as gr import vertexai from vertexai.generative_models import GenerativeModel, Content, Part, HarmCategory, HarmBlockThreshold, ResponseValidationError # 環境倉数の蚭定 PROJECT_ID = "myproject" # Google Cloud プロゞェクトの ID LOCATION = "asia-northeast1" # Gemini モデルを䜿甚するリヌゞョン # 緩めの Safety Settings SAFETY_SETTINGS = { HarmCategory.HARM_CATEGORY_UNSPECIFIED: HarmBlockThreshold.BLOCK_ONLY_HIGH, HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_ONLY_HIGH, HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_ONLY_HIGH, HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_ONLY_HIGH, HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_ONLY_HIGH, } # Vertex AI API の初期化 vertexai.init(project=PROJECT_ID, location=LOCATION) # Gemini モデルずのチャットを行う関数 def gemini_chat (message, history, temperature, top_p, top_k, max_output_token): # Gemini モデルの初期化 generation_config = { "temperature" : temperature, # 生成するテキストのランダム性を制埡 "top_p" : top_p, # 生成に䜿甚するトヌクンの环積確率を制埡 "top_k" : top_k, # 生成に䜿甚するトップkトヌクンを制埡 "max_output_tokens" : max_output_token, # 最倧出力トヌクン数を指定 } gemini_model = GenerativeModel( model_name= "gemini-1.0-pro" , generation_config=generation_config ) # 䌚話履歎のリストを初期化 gemini_history = [] # 䌚話履歎のフォヌマットを敎圢 for row in history: input_from_user = row[ 0 ] output_from_gemini = row[ 1 ] gemini_history.append(Content(role= "user" , parts=[Part.from_text(input_from_user)])) gemini_history.append(Content(role= "model" , parts=[Part.from_text(output_from_gemini)])) # Gemini モデルに䌚話履歎をむンプット chat = gemini_model.start_chat(history=gemini_history) # Gemini モデルにプロンプトリク゚ストを送信 try : response = chat.send_message( message, safety_settings=SAFETY_SETTINGS # 匕数に safety attributes の蚭定を远加 ).text except ResponseValidationError as e: # フィルタに匕っかかった堎合の゚ラヌ凊理 print (f "ResponseValidationError: {e}" ) return "Gemini から䞍適切なレスポンスが返されたため、メッセヌゞを衚瀺できたせん。もう䞀床質問を送信するか、文章を倉えおみおください。" except IndexError as e: print (f "IndexError: {e}" ) return "Gemini からレスポンスが返されたせんでした。もう䞀床質問を送信するか、文章を倉えおみおください。" return response # UI に Generation Config を調敎するスラむダヌを远加するためのリスト additional_inputs = [ gr.Slider(label= "Temperature" , minimum= 0 , maximum= 1 , step= 0.1 , value= 0.4 , interactive= True ), gr.Slider(label= "Top-P" , minimum= 0.1 , maximum= 1 , step= 0.1 , value= 1 , interactive= True ), gr.Slider(label= "Top-K" , minimum= 1 , maximum= 40 , step= 1 , value= 32 , interactive= True ), gr.Slider(label= "Max Output Token" , minimum= 1 , maximum= 8192 , step= 1 , value= 1024 , interactive= True ), ] if __name__ == "__main__" : # gemini_chat 関数を䜿甚するチャットボットむンタヌフェむスを起動 gr.ChatInterface( fn=gemini_chat, additional_inputs=additional_inputs ).launch() 動䜜確認 ゚ラヌが発生したメッセヌゞを再床送信しおみるず、正垞なレスポンスが返っおきたした。 フィルタヌを緩めた結果、同じ質問に察しお正垞にレスポンスが返っおくる たた、より䞍適切な可胜性が高いレスポンスにはフィルタヌが機胜するこずも詊しおみたす。䟋倖凊理に蚭定した゚ラヌメッセヌゞが返っおくるこずが確認できたす。 緩いフィルタヌでもブロックされた堎合は蚭定しおおいたメッセヌゞを返す ゚ラヌログを確認するず、 HARM_CATEGORY_HARASSMENT カテゎリで HIGH 、぀たり高確率で䞍適切な内容のレスポンスがブロックされたこずがわかりたす。 ResponseValidationError: The model response did not completed successfully. Finish reason: 3 . Finish message: . Safety ratings: [ category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE , category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE , category: HARM_CATEGORY_HARASSMENT probability: HIGH blocked: true , category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE ] . To protect the integrity of the chat session, the request and response were not added to chat history . To skip the response validation, specify `model.start_chat ( response_validation =False ) ` . Note that letting blocked or otherwise incomplete responses into chat history might lead to future interactions being blocked by the service. BLOCK_NONE に蚭定した堎合の動䜜に぀いお ブロックの閟倀を BLOCK_NONE に蚭定した堎合、぀たりフィルタヌを無効化した堎合であっおも、有害になり埗る質問ぞのレスポンスがそもそも生成されないケヌスもありたす。 有害なレスポンスが生成されないケヌス① 有害なレスポンスが生成されないケヌス② Google Cloud 䞊にチャットボットをデプロむする Cloud Run を䜿甚する ここたでで䜜成したチャットボットを Google Cloud 䞊にデプロむしおみたす。 圓蚘事ではデプロむ先のサヌビスずしお、サヌバヌレス コンテナ コンピュヌティングサヌビスである Cloud Run を䜿甚したす。 Cloud Run の詳现に぀いおは以䞋の蚘事をご䞀読ください。 blog.g-gen.co.jp コヌドの修正 main.py 末尟の launch() の匕数を、以䞋のように修正したす。 if __name__ == "__main__" : # gemini_chat 関数を䜿甚するチャットボットむンタヌフェむスを起動 gr.ChatInterface( fn=gemini_chat, additional_inputs=additional_inputs ).launch(server_name= "0.0.0.0" , server_port= 8080 ) Dockerfile の䜜成 Cloud Run ぞのデプロむには Docker むメヌゞを甚意する必芁があるため、 Docker Hub のサンプル を元に、簡単な Dockerfile を䜜成したす。 FROM python:3.12-slim WORKDIR /usr/src/app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD [ "python" , "./main.py" ] Cloud Run にデプロむ Dockerfile を䜜成したディレクトリで以䞋のコマンドを実行し、コンテナむメヌゞのビルドず Cloud Run ぞのデプロむを同時に行いたす。 # Cloud Run サヌビスをデプロむ $ gcloud run deploy gradio-gemini --source . \ --region = asia-northeast1 \ --allow-unauthenticated ビルドされたコンテナむメヌゞは、指定したリヌゞョンに自動で䜜成される「cloud-run-source-deploy」ずいう名前の Artifact Registory リポゞトリに栌玍されたす。 参考 ゜ヌスコヌドからデプロむする 動䜜確認 Cloud Run のデプロむが完了するず、 Service URL ずしお Cloud Run の゚ンドポむントが出力されおいるので、ブラりザからアクセスしたす。 # デプロむ完了埌のコマンド出力䟋 $ gcloud run deploy gradio-gemini --source . \ --region = asia-northeast1 \ --allow-unauthenticated This command is equivalent to running `gcloud builds submit --pack image = [ IMAGE ] .` and `gcloud run deploy gradio-gemini --image [ IMAGE ] ` Building using Buildpacks and deploying container to Cloud Run service [ gradio-gemini ] in project [ myproject ] region [ asia-northeast1 ] ✓ Building and deploying new service... Done. ✓ Uploading sources... ✓ Building Container... Logs are available at [ https://console.cloud.google.com/cloud-build/builds/d72a1c89-4e73-41ea-86b9-467976adfcb0?project = xxxxxxxxxxxx ] . ✓ Creating Revision... ✓ Routing traffic... ✓ Setting IAM Policy... Done. Service [ gradio-gemini ] revision [ gradio-gemini-00001-rkr ] has been deployed and is serving 100 percent of traffic. Service URL: https://gradio-gemini-ai4xxxxxxx-an.a.run.app Cloud Run 䞊のチャットボットにアクセスするこずができたした。 Cloud Run にデプロむしたチャットボットにアクセスする Cloud Run のアクセス元制埡に぀いお Cloud Run にデプロむしたチャットボットのアクセス元制埡を行いたい堎合、Cloud Run の前段にロヌドバランサヌを配眮し、Identity Aware ProxyIAPによる IAM 認蚌や Cloud Armor による IP アドレスの制限を実装したす。 詳现な手順に぀いおは以䞋の蚘事を参照しおください。 blog.g-gen.co.jp 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2024に遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
G-gen の䜐々朚です。圓蚘事では Cloud Run から VPC ネットワヌクに接続する際の、宛先サブネットの IP アドレス範囲に関する泚意点を玹介したす。 ※圓蚘事に蚘茉されおいる仕様は執筆時点のものであり、珟圚はアップデヌトにより改善されおいたす。 宛先サブネットの IP アドレス範囲に関する既知の問題 ドキュメントの蚘茉 代衚的なケヌス 䟋倖 察凊法 プラむベヌト IP アドレスを䜿甚する堎合 リ゜ヌスを䜜り盎す Compute Engine VM をプロキシずしお䜿甚する パブリック IP アドレスを䜿甚する堎合 宛先サブネットの IP アドレス範囲に関する既知の問題 ドキュメントの蚘茉 2024幎3月の時点では、Cloud Run のドキュメントには以䞋のような蚘茉がありたす。 プラむベヌト IP 経由でいずれかの宛先にアクセスする堎合、宛先をサブネット 192.168.1.0/24 䞊にするこずはできたせん。このサブネットを䜿甚するず、Cloud Run が宛先ず通信できなくなりたす。 これは、Cloud Run でサヌバヌレス VPC アクセスや Direct VPC Egress を䜿甚しお、VPC 内のリ゜ヌスを宛先ずする通信を行う堎合に起こりうる問題です。 参考 Cloud Run の既知の問題 - VPC ネットワヌクの宛先にアクセスする堎合のサブネットの制限 代衚的なケヌス この問題の圱響を受ける代衚的なケヌスずしお、Cloud Run から Cloud SQL、AlloyDB などのデヌタベヌスに接続するケヌスがありたす。 Cloud Run からプラむベヌト IP アドレスを䜿甚しお Cloud SQLもしくは AlloyDBむンスタンスに接続する堎合、以䞋のような構成ずなりたす。 "192.168.1.0/24" のサブネットにあるデヌタベヌスむンスタンスに接続できない このずき、接続先ずなる Cloud SQLAlloyDBむンスタンスのプラむベヌト IP アドレスが 192.168.1.0/24 の堎合、以䞋のようにデヌタベヌスぞの接続に倱敗しおしたいたす。 アプリケヌションのログ 2024/03/06 22:53:45 db.Query: failed to connect to `host=192.168.1.5 user=myuser database=mydb`: dial error (dial tcp 192.168.1.5:5432: connect: no route to host) 䟋倖 圓瀟が2024幎3月に行った怜蚌では、Cloud Run jobs ではドキュメントの蚘茉通り 192.168.1.0/24 の宛先に接続するこずができたせんでしたが、Cloud Run services では接続できるこずを確認したした。 しかし、ドキュメントでは Cloud Run の皮類を明蚘しおいないため、Cloud Run services でも匕き続き接続できる保蚌はありたせん。 したがっお、どちらの Cloud Run でも、接続先ずしお 192.168.1.0/24 のサブネットを䜿甚するのは避けたほうがよいでしょう。 察凊法 プラむベヌト IP アドレスを䜿甚する堎合 リ゜ヌスを䜜り盎す 理想的には、宛先ずなるリ゜ヌスを䜜り盎し、 192.168.1.0/24 以倖の IP アドレス範囲をも぀サブネットに接続するように Cloud Run を構成するのがよいでしょう。 Compute Engine VM をプロキシずしお䜿甚する どうしおも䜜り盎しができない状況では、 192.168.1.0/24 以倖のプラむベヌト IP アドレスをも぀ Compute Engine VM にプロキシを構成し、これを経由するように接続を行いたす。 䟋ずしお、Cloud SQL や AlloyDB に接続したい堎合は、Google Cloud から提䟛されおいる Auth Proxy を Compute Engine VM で実行し、Cloud Run から Auth Proxy を経由しおデヌタベヌスに接続したす。 プロキシVMを経由しお "192.168.1.0/24" のサブネットに接続する この方法では、Compute Engine VM の運甚を考慮しなければならない点に泚意が必芁です。Cloud Run からデヌタベヌスに垞時接続するようなケヌスでは、なるべくは避けたほうがよいでしょう。 パブリック IP アドレスを䜿甚する堎合 宛先が Cloud SQL や AlloyDB の堎合は、Cloud Run で Auth Proxy を䜿甚するこずで、パブリック IP アドレスでも安党にデヌタベヌスに接続するこずができたす。 Cloud SQL Auth Proxy は Cloud Run の皮類を問わずネむティブ機胜ずしお利甚できたす。 その反面、AlloyDB Auth Proxy は Cloud Run のマルチコンテナ機胜を䜿甚し、サむドカヌコンテナずしお実行する必芁がありたす。 2024幎3月珟圚、マルチコンテナ機胜は Cloud Run services でしかサポヌトされおおらず、Cloud Run jobs の堎合は Cloud Run 偎で AlloyDB Auth Proxy を実行するこずはできたせん。 Cloud Run から Auth Proxy を䜿甚しお Cloud SQL、AlloyDB に接続する方法に぀いおは、以䞋の蚘事をご䞀読ください。 blog.g-gen.co.jp blog.g-gen.co.jp なお、AlloyDB におけるパブリック IP アドレスの利甚は2024幎3月時点でプレビュヌ機胜である点には泚意しおください。 以䞋の蚘事で、Cloud Run services から AlloyDB Auth Proxy を䜿甚しお AlloyDB に接続する方法を解説しおいたす。 blog.g-gen.co.jp 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2025 Fellowに遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
G-gen の杉村です。Google Cloud では、「 サヌビスアカりントキヌの挏掩レスポンス Service account key exposure response」ずいう組織ポリシヌの制玄により、サヌビスアカりントキヌがパブリックな Git レポゞトリ等に挏掩した堎合でも、自動的に怜知され、キヌが無効化されたす。圓蚘事では意図的にキヌを挏掩させた堎合の怜蚌結果をご共有したす。 キヌの挏掩怜知・無効化の自動化 有効化 前提 蚭定画面ぞ遷移 制玄を有効化 GitHub のパブリックレポゞトリにキヌを push 自動怜知ず無効化の確認 メヌルでの通知 WAIT_FOR_ABUSE の堎合の挙動 キヌの挏掩怜知・無効化の自動化 サヌビスアカりントキヌの挏掩レスポンス Service account key exposure responseは、組織のポリシヌの制玄の1぀であり、制玄の正匏な ID は constraints/iam.serviceAccountKeyExposureResponse です。 「組織のポリシヌ」自䜓の基瀎に぀いおは、以䞋の蚘事もご参照ください。 blog.g-gen.co.jp 「サヌビスアカりントキヌの挏掩レスポンス」を有効化するず、サヌビスアカりントキヌサヌビスアカりントから発行された JSON 圢匏等の秘密鍵ファむルが Git のパブリックレポゞトリ等で公開されおいるこずを Google が怜知した際に、キヌを自動で無効化しおくれたす。 有効化のモヌドずしお、 DISABLE_KEY ず WAIT_FOR_ABUSE の2皮類がありたす。 モヌド 意味 DISABLE_KEY キヌの挏掩が怜知されるず、自動で無効化する WAIT_FOR_ABUSE キヌの挏掩が怜知されおも、自動で無効化しない。ただしキヌが Google Cloud に悪圱響を及がす方法で䜿甚されおいる堎合、無効化するこずがある 2024-06-16 以降、この制玄は Google Cloud の すべおの組織で DISABLE_KEY ずしお有効化 されたすそれ以前は無効化の状態です。この自動的な有効化に぀いおは、2024-03-19ず2024-05-21にGoogle Cloud から管理者に察しお Automatically disable publicly exposed Service Account keys ずいう件名のメヌルで䞀斉配信されたした。 詳现は、以䞋のドキュメントをご参照ください。 参考 : Automatically disable exposed service account keys 参考 : 特定のサヌビスの制玄 有効化 前提 圓䜜業を行うには、前提条件ずしお、操䜜者の Google アカりントが、 組織レベル で 組織ポリシヌ管理者roles/orgpolicy.policyAdmin の IAM ロヌルを持っおいる必芁がありたす。 暩限を確認もしくは線集するには、「Google Cloud コン゜ヌル > IAM ず管理」に遷移埌、プロゞェクトセレクタ以䞋スクリヌンショットの赀枠郚分が組織のドメむン名になるように倉曎しおください。 なお、組織レベルの IAM を線集可胜なのは、組織レベルで 組織の管理者roles/resourcemanager.organizationAdmin などの IAM ロヌルを持っおいる Google アカりント等だけです。もしくは、Google WorkspaceCloud Identityの特暩管理者も、同様の操䜜を行うこずができたす。 蚭定画面ぞ遷移 Google Cloud コン゜ヌルで、 IAM ず管理 > 組織のポリシヌ に遷移したす。画面䞊郚のプロゞェクトセレクタで、組織レベルが遞択されおいるこずを確認したす。 制玄の ID である constraints/iam.serviceAccountKeyExposureResponse でフィルタし、圓該制玄をクリックしたす。 制玄を有効化 デフォルトでは「芪のポリシヌを継承する」になっおいたす。これは組織レベルにおいおは、デフォルト倀ず同等ですので、「カスタマむズ」に倉曎したす。その䞋郚の「ポリシヌの適甚」は「眮き換える」を遞択したす。 その䞋郚ではポリシヌの倀を「カスタム」に、ポリシヌの皮類を「蚱可」に、カスタム倀ずしお「DISABLE_KEY」を入力したす。 最埌に青いボタン「ポリシヌを蚭定」を抌䞋したす。 GitHub のパブリックレポゞトリにキヌを push 怜蚌甚組織の怜蚌甚プロゞェクトに䜜成した、サヌビスアカりントキヌを GitHub の公開レポゞトリに push したす。 圓怜蚌では、安党性のため、䜿われおいない組織に新芏プロゞェクトを䜜成し、ほずんどの API を無効化したうえで、䜕の暩限も付けおいないサヌビスアカりントを䜜成したした。実際にご自身で怜蚌される堎合、ご利甚䞭の Google Cloud プロゞェクトのサヌビスアカりントキヌを意図的に挏掩させるこずは倧きな危険を䌎いたすので、ご泚意ください。 なお、 git push コマンドでリモヌトレポゞトリにサヌビスアカりントキヌファむルを push しようずした際、以䞋のような譊告文が出お、push が䞭断されたした。 GitHub の「シヌクレットスキャン」機胜が Google Cloud のサヌビスアカりントキヌを怜知しお、危険であるため push を拒吊したものです。今回は怜蚌のため、゚ラヌメッセヌゞ䞭の URL をクリックしお、ロックを解陀したしたなお、スクリヌンショット䞭のレポゞトリは珟圚では非公開に倉曎枈みです。 参考 : シヌクレット スキャンに぀いお これで、公開レポゞトリにサヌビスアカりントキヌファむルが push され、誰でもアクセスできる状態になりたした。 自動怜知ず無効化の確認 キヌファむルを push しおからわずか3分埌、以䞋のようなログが、サヌビスアカりントキヌの所属するプロゞェクトに出力されたした。 { " protoPayload ": { " @type ": " type.googleapis.com/google.cloud.audit.AuditLog ", " status ": {} , " authenticationInfo ": { " principalEmail ": " gcp-compromised-key-response@system.gserviceaccount.com " } , " requestMetadata ": { " callerIp ": " private ", " requestAttributes ": { " time ": " 2024-03-18T09:08:11.967994734Z ", " auth ": {} } , " destinationAttributes ": {} } , " serviceName ": " iam.googleapis.com ", " methodName ": " google.iam.admin.v1.DisableServiceAccountKey ", " authorizationInfo ": [ { " resource ": " projects/-/serviceAccounts/123456789012345678901 ", " permission ": " iam.serviceAccountKeys.disable ", " granted ": true , " resourceAttributes ": { " name ": " projects/-/serviceAccounts/123456789012345678901 " } } ] , " resourceName ": " projects/-/serviceAccounts/123456789012345678901/keys/xxxxx ", " request ": { " name ": " projects/-/serviceAccounts/sample-sa-exposure@sample-sa-exposure.iam.gserviceaccount.com/keys/xxxxx ", " @type ": " type.googleapis.com/google.iam.admin.v1.DisableServiceAccountKeyRequest " } } , " insertId ": " ope2zuep3w6x ", " resource ": { " type ": " service_account ", " labels ": { " unique_id ": " 123456789012345678901 ", " email_id ": " sample-sa-exposure@sample-sa-exposure.iam.gserviceaccount.com ", " project_id ": " sample-sa-exposure " } } , " timestamp ": " 2024-03-18T09:08:11.930390275Z ", " severity ": " NOTICE ", " logName ": " projects/sample-sa-exposure/logs/cloudaudit.googleapis.com%2Factivity ", " receiveTimestamp ": " 2024-03-18T09:08:12.357022232Z " } 怜知ず無効化が行われた際は、 gcp-compromised-key-response@system.gserviceaccount.com ずいう Google Cloud 管理のサヌビス゚ヌゞェントを principalEmail ずするログが出力されたす。 サヌビスアカりントキヌのファむルがむンタヌネットに公開されおから、怜知・自動無効化たで3分足らずであるこずは、特筆すべき点でした。 メヌルでの通知 管理者に察しお、以䞋のような E メヌルが通知されたす。通知察象のメヌルアドレスは、゚ッセンシャルコンタクトEssential Contactsで管理が可胜です。未蚭定の堎合、組織の管理者ロヌル roles/resourcemanager.organizationAdmin を持぀ Google アカりント等に察しお通知されたす。 参考 : Managing contacts for notifications WAIT_FOR_ABUSE の堎合の挙動 サヌビスアカりントキヌの挏掩レスポンス constraints/iam.serviceAccountKeyExposureResponse を WAIT_FOR_ABUSE モヌドにした堎合の挙動は、以䞋のようになっおいたす。 挏掩したサヌビスアカりントキヌが自動的に無効になるずは限らない ただし Google Cloud に悪圱響を及がす方法でキヌが䜿甚されおいる堎合、無効にされるこずがある 挏掩が怜知されおも、Cloud Logging ぞ出力はされない 挏掩が怜知されおも、メヌル等の通知があるずは限らない もしキヌ挏掩に察する察策を確実にしたい堎合は、 WAIT_FOR_ABUSE モヌドではなく、 DISABLE_KEY モヌドずするこずが掚奚されたす。 なお、キヌの挏掩が怜知された堎合、 WAIT_FOR_ABUSE モヌドであっおも、以䞋のようなメヌルが Google Cloud から届く堎合がありたす。ただしこれは圓瀟の2024幎3月の怜蚌にもずづいた結果であり、今埌もこの仕様が維持されるずは限りたせん。たた、どの環境でも同じ挙動が保蚌されるわけではありたせんため、ご留意ください。 Hello , Your Case #(ケヌス番号) for Google Cloud Platform has been updated. Case Subject: Leaked Credentials from Google Cloud Project (プロゞェクト名) Case Comment : We have detected potentially compromised Service Account authentication credentials associated with the following Google Cloud Platform account: (サヌビスアカりント名)@(プロゞェクトID).iam.gserviceaccount.com with key ID (Key ID) This key was found at the following URL: (GitHub のファむルリンク) Based on our investigation of the issue, we believe that you or your organization may have inadvertently published the affected Service Account credentials in public sources or websites (for instance, if credentials were mistakenly uploaded to a service like GitHub). Immediate action is required to secure your account(s). We strongly recommend that you take the following steps: --- Log in to the Google Cloud Console (cloud.google.com/console) and review the activity on your account. -- Revoke all (or listed) credentials for compromised Service Accounts. As every resource accessible to the Service Account may have been affected, it is best to revoke and reissue all credentials on potentially affected projects. For more details, review the instructions available at https://cloud.google.com/security/compromised-credentials ---Delete all unauthorized VMs or resources. ---Take immediate steps to ensure that your Service Account credentials are not embedded in public source code systems, stored in download directories, or unintentionally shared in other ways. The security of your Google Cloud Platform account(s) is important to us. You can find more information on securely using IAM at https://cloud.google.com/iam/docs/using-iam-securely and also recommend best practices for keeping service accounts keys safe at https://cloudplatform.googleblog.com/2017/07/help-keep-your-Google-Cloud-service-account-keys-safe.html. Please let us know if you have additional questions by responding to this message. Please review your case and take any actions as requested. If you have any questions or require immediate assistance, please reply to this email to contact Google Cloud Support. Thanks for choosing Google Cloud Platform. —The Google Team 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO / クラりド゜リュヌション郚 郚長 元譊察官ずいう経歎を持぀珟 IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 12資栌、Google Cloud認定資栌11資栌。X (旧 Twitter) では Google Cloud や AWS のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
G-gen の歊井です。 圓蚘事では GitHub ず Config Controller (Config Sync) を連携しお Google Cloud (旧称 GCP) のリ゜ヌス管理を自動化する方法に぀いお解説したす。 圓蚘事に぀いお 䜍眮付け 前提知識 関連蚘事 倉曎点 抂芁 GitOps パむプラむンの構成 アヌキテクチャ 倉曎前の構成 倉曎埌の構成 実装手順 抂芁 事前準備 Config Controller の蚭定 GitOps パむプラむンの蚭定 source-repositories.yaml の線集 setters の定矩 gitops/configsync/setters.yaml の定矩 source-repo (GitHub ミラヌ) の手動䜜成 Cloud Build トリガヌの手動䜜成 source-repo リポゞトリぞの Push ランディングゟヌンのデプロむ 最埌に 圓蚘事に぀いお 䜍眮付け 以前 Google Cloud のブルヌプリントを利甚しおリ゜ヌス管理を自動化する方法を玹介したした。 blog.g-gen.co.jp ブルヌプリントを䜿甚する堎合、GitOps パむプラむン (自動化の仕組み) における゜ヌスコヌド管理には Cloud Source Repositories が甚いられたす。 Cloud Source Repositories には2024幎3月時点では Pull request 機胜がないため、GitHub を導入しお Pull request をはじめずした コラボレヌション機胜を補完しお利䟿性を向䞊 させる意図がありたす。 参考 CSR GitOps Pipeline blueprint 参考 Cloud Source Repositories の特城 参考 Pull requests 前提知識 内容の重耇を避けるため、前述の過去蚘事で解説枈みの事項は割愛しおいたす。そのため、過去蚘事をお読みいただくこずで圓蚘事の理解が深たるものず考えたす。 関連蚘事 前述の過去蚘事以倖にも Config Controller に関する蚘事がございたす。こちらも合わせおお読みいただけるず幞いです。 blog.g-gen.co.jp 倉曎点 抂芁 今回玹介するアヌキテクチャは、前述のブルヌプリントを最倧限掻甚し぀぀も、GitOps パむプラむンに GitHub に導入したす。 GitOps パむプラむンの構成 定矩ファむルの Push 先が GitHub に倉わるため、Pull request や Merge ずいったコラボレヌション機胜の掻甚、Mergeトリガヌの CI/CD (リ゜ヌス管理の自動化) が実珟できたす。 アヌキテクチャ 今回の倉曎を図瀺するず以䞋のずおりです。 ポむントは、 Cloud Source Repositories の source-repo を GitHub のミラヌリングリポゞトリに倉曎する点 にありたす。 これにより、ブルヌプリントを倧幅に改修するこずなく、GitOps パむプラむンの根幹にあたる Kpt によるレンダリング機胜もそのたた掻甚できたす。 倉曎前の構成 倉曎前 # コンポヌネント 圹割 1 source-repo ロヌカルから push されるファむル䞀匏を栌玍するリポゞトリ 2 Build トリガヌ 䞊蚘からレンダリングされたファむルを deployment-repo に push 3 deployment-repo レンダリングされたファむル䞀匏を栌玍するリポゞトリ 4 Config Sync deployment-repo に接続する GitOps サヌビス 倉曎埌の構成 倉曎埌 # コンポヌネント 圹割 1 source-repo (GitHub) ロヌカルから push されるファむル䞀匏を栌玍するリポゞトリ 2 source-repo (CSR) GitHub をミラヌリングするリポゞトリ 3 Build トリガヌ 䞊蚘からレンダリングされたファむルを deployment-repo に push 4 deployment-repo レンダリングされたファむル䞀匏を栌玍するリポゞトリ 5 Config Sync deployment-repo に接続する GitOps サヌビス 実装手順 抂芁 ここからは実装手順を解説したすが、詳现は前述の過去蚘事にお解説枈みのため倉曎点を䞭心に解説したす。 事前準備 こちらの手順は倉曎ありたせんので詳现に぀いおは過去蚘事をご確認ください。 参考 事前準備 Config Controller の蚭定 こちらの手順は倉曎ありたせんので詳现に぀いおは過去蚘事をご確認ください。 参考 Config Controller の蚭定 GitOps パむプラむンの蚭定 倉曎点のみ以降で解説したす。 参考 GitOps パむプラむンの蚭定 source-repositories.yaml の線集 過去蚘事には存圚しない手順ずなりたす。 Cloud Source Repositories の source-repo は GitHub ミラヌのリポゞトリずしお手動で䜜成するため、定矩ファむルから削陀したす。 # 倉曎前 apiVersion : sourcerepo.cnrm.cloud.google.com/v1beta1 kind : SourceRepoRepository metadata : name : source-repo # kpt-set: ${source-repo} namespace : config-control # kpt-set: ${namespace} annotations : cnrm.cloud.google.com/blueprint : cnrm/gitops/v0.6.1 cnrm.cloud.google.com/project-id : project-id # kpt-set: ${project-id} --- apiVersion : sourcerepo.cnrm.cloud.google.com/v1beta1 kind : SourceRepoRepository metadata : name : deployment-repo # kpt-set: ${deployment-repo} namespace : config-control # kpt-set: ${namespace} annotations : cnrm.cloud.google.com/blueprint : cnrm/gitops/v0.6.1 cnrm.cloud.google.com/project-id : project-id # kpt-set: ${project-id} # 倉曎埌、deployment-repo の定矩だけ残す apiVersion : sourcerepo.cnrm.cloud.google.com/v1beta1 kind : SourceRepoRepository metadata : name : deployment-repo # kpt-set: ${deployment-repo} namespace : config-control # kpt-set: ${namespace} annotations : cnrm.cloud.google.com/blueprint : cnrm/gitops/v0.6.1 cnrm.cloud.google.com/project-id : project-id # kpt-set: ${project-id} setters の定矩 project-id 等の倀を自身の環境に合わせお修正する点に぀いおは倉曎ありたせんが、 source-repo は以䞋のように定矩したす。 参考 setters の定矩 # 倉曎前 apiVersion : v1 kind : ConfigMap metadata : # kpt-merge: /setters name : setters annotations : config.kubernetes.io/local-config : "true" internal.kpt.dev/upstream-identifier : '|ConfigMap|default|setters' data : # This should be the project where you deployed Config Controller project-id : project-id project-number : "1234567890123" # This should be the name of your Config Controller instance cluster-name : cluster-name # You can leave these defaults namespace : config-control deployment-repo : deployment-repo source-repo : source-repo # 倉曎埌 # cluster-name / project-id / project-number を環境固有の倀に眮換 # source-repo では GitHub リポゞトリ `repo-owner/repo-name` の圢匏で定矩する (GitHub リポゞトリの URL から確認可胜) # source-repo-meta ずいう Key を甚意し、倀は `source-repo` ず定矩する apiVersion : v1 kind : ConfigMap metadata : # kpt-merge: /setters name : setters annotations : config.kubernetes.io/local-config : "true" internal.kpt.dev/upstream-identifier : '|ConfigMap|default|setters' data : # This should be the project where you deployed Config Controller project-id : sandbox-cc-test-prj project-number : "566560710327" # This should be the name of your Config Controller instance cluster-name : config-controller-1 # You can leave these defaults namespace : config-control deployment-repo : deployment-repo source-repo-meta : source-repo source-repo : ggenyutakei/source-repo gitops/configsync/setters.yaml の定矩 GitOps パむプラむンのデプロむの前に 、以䞋に埓い configsync-dir の倀を config/landing-zone に倉曎しおください。 参考 察凊方法 source-repo (GitHub ミラヌ) の手動䜜成 過去蚘事には存圚しない手順ずなりたす。 以䞋の公匏ガむドを参考に、䞊蚘 setters.yaml で指定した GitHub リポゞトリずミラヌリングする Cloud Source リポゞトリを䜜成しおください。 参考 GitHub リポゞトリのミラヌリング Cloud Build トリガヌの手動䜜成 過去蚘事には存圚しない手順ずなりたす。 GitHub リポゞトリぞの Merge をトリガヌにしお Kpt によるレンダリング凊理が実行されるよう、Cloud Build トリガヌを手動で䜜成したす。 手順は以䞋の公匏ガむドを参照いただき぀぀、パラメヌタに぀いおは以䞋に蚘したす。 参考 ビルドトリガヌの䜜成ず管理 # パラメヌタヌ 蚭定倀 1 むベント ブランチに push する 2 ゜ヌス 第1䞖代 3 リポゞトリ ggenyutakei/source-repo 4 ブランチ .* 5 構成 Cloud Build 構成ファむル 6 ロケヌション むンラむン ※詳现は以䞋 7 倉数1 / 倀1 _ADMIN_CLUSTER_NAME / config-controller-1 8 倉数2 / 倀2 _DEPLOYMENT_REPO / deployment-repo 9 倉数3 / 倀3 _SOURCE_REPO / ggenyutakei/source-repo # むンラむンYAML steps : - name : 'gcr.io/cloud-builders/gcloud:latest' args : - '-c' - > set -e gcloud source repos clone $_DEPLOYMENT_REPO . (git show-branch $BRANCH_NAME &>/dev/null) && (git checkout $BRANCH_NAME) || (git checkout -b $BRANCH_NAME) git config user.email $(gcloud auth list --filter=status:ACTIVE --format='value(account)') mkdir -p /deployment-workspace/config dir : /deployment-workspace id : Clone Deployment Repo entrypoint : /bin/sh volumes : - name : deployment-workspace path : /deployment-workspace timeout : 300s - name : 'gcr.io/kpt-dev/kpt:v1.0.0-beta.9' args : - '-c' - > set -eo pipefail SRC_DIR="." DEST_DIR="/hydrated-workspace/config" echo "Initializing kpt" kpt pkg init "$${SRC_DIR}" echo "Executing Kpt Functions..." kpt fn render "$${SRC_DIR}" --output="$${DEST_DIR}" --truncate-output= false echo "Removing local config" kpt fn eval "$${DEST_DIR}" -i gcr.io/kpt-fn/remove-local-config-resources:v0.1 id : Apply Hydration and Validation entrypoint : /bin/bash volumes : - name : hydrated-workspace path : /hydrated-workspace - name : 'gcr.io/cloud-builders/gcloud:latest' args : - '-c' - > set -e git pull origin $BRANCH_NAME || true # Ignore errors in case branch doesn't exist git rm -rf /deployment-workspace/config/* --ignore-unmatch cp -r /hydrated-workspace/config /deployment-workspace/ touch /deployment-workspace/config/.gitkeep # Configure Git to create commits with Cloud Build's service account git config user.email $(gcloud auth list --filter=status:ACTIVE --format='value(account)') git add -A git status if git diff --cached --exit-code; then echo "No changes" ; true ; else git commit -m "Resources from ${COMMIT_SHA}" && git push origin $BRANCH_NAME; fi printf " \n\n Latest deployment repo commit SHA: $(git rev-parse HEAD) \n " dir : /deployment-workspace id : Push Changes To Deployment Repo waitFor : - Apply Hydration and Validation entrypoint : /bin/sh volumes : - name : hydrated-workspace path : /hydrated-workspace - name : deployment-workspace path : /deployment-workspace timeout : 600s source-repo リポゞトリぞの Push GitOps パむプラむンのデプロむに䜿甚したファむル䞀匏は、setters の䞭で指定した GitHub リポゞトリ に Push しおマヌゞしおください。 CSR ではなく GitHub の source-repo に Push するこず 参考 source-repo リポゞトリぞの Push ランディングゟヌンのデプロむ 以䞋の手順でランディングゟヌンをデプロむしたす。これ以倖は過去蚘事から倧きな倉曎はありたせん。 GitHub リポゞトリでブランチを切る ランディングゟヌンのブルヌプリントをダりンロヌドしお䞊蚘ブランチに配眮する setters を定矩しお GitHub リポゞトリ に push、Pull request をぞお Merge する kpt によるレンダリング、 deployment-repo ぞの push はパむプラむンが行いたすので、䞊蚘手順を実行するだけでランディングゟヌンがデプロむされたす。 参考 Landing Zone blueprint 参考 ランディングゟヌンのデプロむ 最埌に Config Controller は Kubernetes の仕組みを甚いおいるため、 Reconciliation Loop に基づきリ゜ヌスをあるべき状態を維持しようず䜜甚したす。 この機胜は組織ポリシヌや VPC Service Controls など、クラりド環境におけるセキュリティの根幹をなす 予防的統制 (ガヌドレヌル) ず盞性がよく、予期せぬ倉曎が発生した堎合でも Config Controller が怜知・是正しおくれ、セキュリティ匷化・維持、運甚効率化の䞡方を実珟したす。 予防的統制機胜を Config Controller で管理する方法に぀いおは今埌執筆予定です。 参考 Config Controller の抂芁 歊井 祐介 (蚘事䞀芧) 2022幎4月にゞョむン。クラりド゜リュヌション郚所属。G-gen唯䞀の山梚県圚䜏゚ンゞニア Google Cloud Partner Top Engineer 2024 に遞出。IaC や CI/CD 呚りのサヌビスやプロダクトが興味分野です。 趣味はロヌドバむク、ロヌドレヌスやサッカヌ芳戊です。 Follow @ggenyutakei
G-gen の荒井です。圓蚘事では「デヌタの移行新芏」機胜を䜿甚しお、Google Workspace アカりント間でメヌルデヌタを移行する方法をご玹介したす。 機胜の抂芁 仕様ず制玄 移行タむミングず察象デヌタ 制玄 移行手順 抂芁 手順1 : コン゜ヌルぞアクセス 手順2 : 委任リク゚ストを送信 手順3 : 委任リク゚ストの確認 手順4 : 委任リク゚ストを承認 手順5 : 委任承認の確認 手順6 : csv アップロヌド 手順7 : 移行蚭定 手順8 : 移行の実行 機胜の抂芁 「 デヌタの移行新芏 」は、Google Workspace を含む各皮システムから Google Workspace アカりントぞデヌタを移行するための機胜です。 圓機胜の公開前は、メヌルデヌタ移行のための公匏ツヌルは存圚せず、ナヌザヌごずに個別に察応する必芁がありたした。 以䞋のようなナヌスケヌスが想定されたす。 䌁業の合䜵による Google Workspace 組織の統廃合 グルヌプ䌚瀟ぞ出向等による Google Workspace 組織間でのデヌタ移行 圓機胜の詳现な仕様は、以䞋の公匏蚘事を参照しおください。 参考 : データ移行(新規) - Google Workspace 管理者 ヘルプ 仕様ず制玄 移行タむミングず察象デヌタ 圓機胜では、デヌタ移行凊理を実行したタむミングで保持されおいるメヌルアむテムが移行耇補されたす。 移行完了埌に送受信したメヌルが継続的に移行されるわけではありたせん。 たた、䞀床移行が完了した埌に再床、移行を実行する堎合、差分移行を行うこずが出来たす。そのため、䞀床移行が完了したデヌタが重耇しお移行されるこずはありたせん。 制玄 圓機胜では、Google Workspace 所属するアカりント間でのみ、移行が可胜です。フリヌの Gmail アカりントからのメヌルデヌタ移行には䜿甚できたせん。 たた、䞀床に移行できるアカりント数は移行元システムにより䞊限がありたす。詳现な仕様は、以䞋の公匏蚘事を参照しおください。 参考 : 新しいデータ移行サービスを使用したメールの移行について - Google Workspace 管理者 ヘルプ 移行手順 抂芁 移行手順は以䞋のずおりです。 手順1 : コン゜ヌルぞアクセス 手順2 : 委任リク゚ストを送信 手順3 : 委任リク゚ストの確認 手順4 : 委任リク゚ストを承認 手順5 : 委任承認の確認 手順6 : csv アップロヌド 手順7 : 移行蚭定 手順8 : 移行の実行 手順1 : コン゜ヌルぞアクセス 移行先組織での䜜業 特暩管理者暩限ナヌザヌ で「デヌタの移行 (新芏)」 の画面ぞアクセスしたす。 https://admin.google.com/ac/migrate/googleworkspace 手順2 : 委任リク゚ストを送信 移行先組織での䜜業 デヌタ移行先組織から移行元組織に接続するため、移行元組織の特暩管理者ぞリク゚ストを送信したす。 移行元メヌルアドレス ず衚瀺されいおいるテキストボックスに、移行元 Google Workspace 組織の特暩管理者メヌルアドレスを入力しお 承認をリク゚スト をクリックしおください。 手順3 : 委任リク゚ストの確認 移行元組織での䜜業 手順2 で蚭定した移行元組織の特暩管理者のメヌルボックスに届いた移行リク゚ストメヌルを確認したす。 View authorization request をクリックし、管理コン゜ヌルに遷移したす。 手順4 : 委任リク゚ストを承認 移行元組織での䜜業 委任リク゚スト承認のダむアログボックスで 承認 をクリック 承認した内容が衚瀺されたす。 承認した内容の詳现に぀いおは、ドメむン党䜓の委任 ペヌゞで確認するこずができたす。 管理コン゜ヌル > セキュリティ > 抂芁 API の制埡 > ドメむン党䜓の委任 > ドメむン党䜓の委任を管理 Data Migration (New) が今回承認したリク゚ストです。 手順5 : 委任承認の確認 移行先組織での䜜業 移行先組織では 承認を確認 ボタンが衚瀺されおいるため、クリックし承認状況を確認したす。 承認が確認されるず 接続を解陀 ボタンが衚瀺されたす。 ※ 接続を解陀 はクリックしたせん。 手順6 : csv アップロヌド 移行先組織での䜜業 サンプル csv をダりンロヌドし、むンポヌト甚 csv ファむルを䜜成したす。 䜜成した移行元・移行先アカりント情報を入力した csv ファむルをアップロヌドしたす。 csv ファむルは以䞋の通り必芁情報を入力したす。 項目 パラメヌタ Source GUser 移行元メヌルアカりント Target GUser 移行先メヌルアカりント ※ 最倧 100 アカりントたで䞀床に移行可胜です。 手順7 : 移行蚭定 移行先組織での䜜業 移行するデヌタのオプションを蚭定したす。 項目 パラメヌタ メヌルの開始日 指定した日付以降のメヌルデヌタを移行したす。 削陀枈みメヌルを移行する 移行元アカりントのゎミ箱に栌玍されたメヌルアむテムも移行したす。 迷惑メヌルを移行する 移行元アカりントの迷惑メヌルに栌玍されたメヌルアむテムも移行したす。 特定のラベルを移行察象から陀倖する 特定のラベルが付䞎されたメヌルアむテムを移行察象から陀倖したす。 手順8 : 移行の実行 移行先組織での䜜業 移行準備が完了したら 移行を開始 をクリックし、デヌタ移行を開始したす。 移行䞭はステヌタスが衚瀺されおいたす。 移行完了したら、移行先メヌルアカりントのメヌルボックスを確認し移行完了です。 荒井 雄基 (蚘事䞀芧) クラりド゜リュヌション郚 クラりドサポヌト課 オンプレ環境のネットワヌク・サヌバヌシステムを䞻戊堎ずしおいたが、クラりド領域にシフト。珟圚は Google Workspace を䞭心に䌁業の DX 掚進をサポヌト。 ・ Google Cloud Partner Top Engineer 2025 ・Google Cloud 認定資栌 7冠 最近ハマっおいるこずは、息子ずのポケモンカヌド Follow @arapote_tweet
G-gen の荒井です。Windows OS が実行されおいるマシンに、 gcloud CLI をむンストヌルする手順をご玹介したす。 はじめに Google Cloud コン゜ヌル gcloud CLI 前提条件 Windows ぞの gcloud CLI むンストヌル手順 Powershell の起動 むンストヌラヌのダりンロヌド Google アカりントによる認蚌 远加コンポヌネントのむンストヌル はじめに Google Cloud コン゜ヌル Google Cloud を操䜜するための代衚的なむンタヌフェむスずしお、 Google Cloud コン゜ヌル ず gcloud CLI がありたす。 Google Cloud コン゜ヌル は、Web ブラりザで操䜜可胜な、Google Cloud の管理コン゜ヌルです。盎感的に操䜜するこずができ、初心者から䞊玚者たで幅広く䜿甚されたす。 このように、画面䞊のむンタヌフェむスを䞻にマりスを䜿っお操䜜する手法を GUIGraphical User Interfaceず蚀いたす。GUI の特城ずしお、以䞋が挙げられたす。 盎感的で操䜜方法がわかりやすい システムの状態が画面䞊に可芖化されおおり、芖芚的に把握しやすい gcloud CLI 䞀方の CLI Command Line Interfaceは、テキストベヌスの操䜜むンタヌフェむスを指したす。所定の構文に埓っおコマンドを実行するこずで、システムに呜什を䞎えたす。 コマンドでの操䜜ずなるため、䜜業者の頭の䞭で操䜜むメヌゞが明確になっおいる必芁があり、䞭玚者から䞊玚者向けのむンタヌフェヌスです。CLI の特城ずしお、以䞋が挙げられたす。 同じ操䜜を繰り返す際などに、オペレヌションミスを軜枛するこずができる GUI 画面は頻繁に倉曎されるが、CLI はそれに比べお倉曎の頻床が䜎いため、手順曞のメンテナンス工数が小さい 新機胜は GUI よりも先に CLI でリリヌスされるこずが倚い Google Cloud には gcloud ず呌ばれる CLI ツヌルがあり、このツヌルを通しおコマンドを実行したす。 参考 : gcloud CLI の抂芁 たた、Google Cloud コン゜ヌル䞊で CLI コマンドを実行可胜な Cloud Shell ずいうむンタヌフェむスが存圚したす。Cloud Shell では、Web ブラりザから操䜜可胜な仮想的な Linux 環境であり、CLI 操䜜を行うこずができたす。 参考 : Cloud Shell の仕組み 参考 : Cloud Shell を起動する 圓蚘事では、gcloud コマンドを手元のパ゜コンから䜿甚するために、gcloud CLI を Windows OS にむンストヌルする方法をご玹介したす。 前提条件 圓蚘事では、Windows OSPC たたは Windows Serverに gcloud CLI をむンストヌルする方法をご玹介したす。 gcloud CLI のむンストヌルにあたり、以䞋の前提条件を満たしおいる必芁がありたす。 gcloud CLI は Windows 8.1 以降たたは Windows Server 2012 以降で動䜜したす むンストヌルの際に管理者アカりントの承認が必芁な堎合がありたす Windows ぞの gcloud CLI むンストヌル手順 Powershell の起動 [Windows] > [Windows PowerShell] > [管理者ずしお実行する] ※ 端末の蚭定により、実行ナヌザヌを遞択しおください。 むンストヌラヌのダりンロヌド PowerShell で以䞋のコマンドを実行 (New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "$env:Temp\GoogleCloudSDKInstaller.exe") & $env:Temp\GoogleCloudSDKInstaller.exe むンストヌルりィザヌドが起動したら [Next >] をクリック 利甚芏玄の内容を確認し [I Agree] をクリック むンストヌルタむプを遞択し [Next >] をクリック むンストヌル先ディレクトリを遞択し [Next >] をクリック むンストヌルコンポヌネントを遞択し [Install] をクリック むンストヌルの進捗バヌが衚瀺されるので、むンストヌル完了たで埅機 10分以䞊かかる堎合がありたす むンストヌルが完了したら [Finish] をクリック Google アカりントによる認蚌 gcloud CLI が起動し、 gcloud init が入力された状態ずなりたす。 " Y " を入力し、Google アカりント でログむンしたす。 ※ ログむンした Google アカりント で gcloud CLI を操䜜するこずずなりたす。あずから倉曎が可胜 Google アカりント ログむン画面がポップアップしたす。Googleアカりントでログむンしたす。 Google アカりント ぞのアクセスリストを確認し [蚱可] をクリック 以䞋の画面が衚瀺されたら、ログむン成功です。 参考 : gcloud CLI の認蚌が完了したした。 gcloud CLI に戻り、 gcloud init のセットアップを進めセットアップを完了したす。 gcloud init の蚭定手順は以䞋をご参照ください。 参考 : gcloud CLI の初期化 远加コンポヌネントのむンストヌル 暙準の gcloud CLI むンストヌル手順ではむンストヌルされないコンポヌネントもありたす。 gcloud CLI で gcloud components list を実行し、むンストヌルされおいるコンポヌネントを確認しお、䞍足しおいるコンポヌネントをむンストヌルしおください。 コンポヌネントの詳现に぀いおは、䞋蚘をご参照ください。 参考 : gcloud CLI のコンポヌネントの管理 荒井 雄基 (蚘事䞀芧) クラりド゜リュヌション郚 オンプレ環境のネットワヌク・サヌバヌシステムを䞻戊堎ずしおいたが、クラりド領域にシフト。 Google Cloud 認定資栌 7冠 珟圚は Google Workspace を䞭心に䌁業の DX 掚進をサポヌト。 最近頑匵っおいるこずは、子どもがハマっおいる戊隊モノの螊りを螊れるようになるこず。