TECH PLAY

株式会社G-gen

株式会社G-gen の技術ブログ

734

G-gen の横澤です。本記事では、Google Workspace の標準機能である Google カレンダーと Google ToDo リストの概要、および連携による業務効率向上のための設定方法や利用例を解説します。 Google カレンダー Google カレンダーとは 活用術 1 : 業務時間と勤務場所の設定 活用術 2 : 業務時間分析 Google ToDo リスト Google ToDo リストとは 活用術 1 : タスクの整理 活用術 2 : 定期的なタスクの登録 活用術 3:他サービスとの連携 活用術 4 : タスク管理の Tips Google カレンダーと Google ToDo リストの連携 Google カレンダー Google カレンダーとは Google カレンダー は、Google が提供する オンラインカレンダーサービス です。個人の予定管理に加え、チームメンバーとのスケジュール共有、会議の招待、Google Meet を使用したビデオ会議へのアクセスなど、多岐にわたる機能を備えています。 Google カレンダーには、以下の特徴があります。 クラウドベースでのアクセス 直感的なインターフェースによる容易な予定作成・編集 他のユーザーとのカレンダー共有による円滑な予定調整 予定前のリマインダー通知による意図しない予定の見逃し防止 Gmail、Google Meet など、他の Google サービスとのシームレスな連携 参考 : カレンダーでできること 活用術 1 : 業務時間と勤務場所の設定 Google カレンダーには、単に予定を登録するだけでなく、より効率的にスケジュールを管理するための機能があります。その一つが 「業務時間と勤務場所」 の設定です。 設定手順 Google カレンダーを開き、画面右上の設定アイコン(歯車マーク)から「設定」を選択します。 次に、左側のメニューから「全般」セクション内の「業務時間と勤務場所」をクリックし、「業務時間を有効にする」のチェックボックスをオンにして各曜日の勤務時間を設定します。必要に応じて、日ごとの勤務場所(例 : オフィス、自宅、出張先)も設定できます。 メリット 設定を実施することにより業務時間外に会議が提案された場合、予定を作成するユーザーにその旨が通知されるため、自身の勤務時間外や外出中での会議設定を効果的に回避できます。 次に、どのように働いているか 社員の勤務環境を可視化 することもできます。昨今、オフィス勤務だけでなく自宅でのリモートワークやサテライトオフィス、コワーキングスペースなどハイブリッドな形式で業務をすることも多いかもしれません。そのような環境でチームメンバーや関係者に対し、現在の働き方(例 : オフィス勤務、リモートワーク)を知らせることができます。 Web会議で参加するのか、もしくはオフィスでオフライン形式で会議に参加できるのかをカレンダー上に表記することで、会議や共同作業も簡単にスケジュールを調整できます。 参考 : Google カレンダーで業務時間と業務場所を設定する 活用術 2 : 業務時間分析 自身の業務で何にどれくらい時間がかかっているのかを把握したい場合、Google カレンダーの 「時間の分析情報」 機能が有効です。この機能により、時間の使い方を分析できます。 「時間の分析情報」では、主に、週単位や月単位で会議に費やした時間、頻繁に会議を行う相手や会議が多い曜日・時間帯といった会議の傾向、会議が予定されていない時間などを分析できます。 手順 Google カレンダーの左側パネルにある 「時間の分析情報」 をクリックし、表示されたダッシュボードで時間の内訳や会議の傾向などを確認します。 ラベルの活用 より詳細な分析には、カレンダーの予定に 「ラベル」 を付与することを推奨します。例えば、「プロジェクトA」「資料作成」「顧客対応」といったラベルを作成し、各予定に割り当てることで、それぞれの活動に費やした時間を具体的に把握できます。 参考 : 会議に割いた時間を確認する Google ToDo リスト Google ToDo リストとは Google ToDo リストは、シンプルで直感的な タスク管理ツール です。Gmail や Google カレンダーのサイドパネルからアクセスでき、タスクの作成、ステータス管理、期日設定が可能です。 また、Google カレンダー上の切り替えボタンを押すことで全画面で Todo リストを確認することができます。 特徴 シンプルで直感的な操作性 Gmail のメールからの直接的なタスク作成、Google カレンダーへのタスク期日表示など、Google サービスとの連携 タスクへの期日設定とリマインダー通知機能 活用術 1 : タスクの整理 手順 Google ToDo リストを開き、画面上部(または下部)に表示されている現在のリスト名(例 : マイタスク)をクリックした後、「新しいリストを作成」を選択し、リスト名を入力します。 活用例 リストは、例えば以下のように分類して利用できます。 プロジェクト別(例 : 「プロジェクトX」「新機能開発」「マーケティングキャンペーン」) 業務内容別(例 : 「資料作成」「会議準備」「雑務」) リストを分けることでタスクが整理され、優先すべき作業に集中しやすくなります。 参考 : リストを整理する 活用術 2 : 定期的なタスクの登録 毎週月曜日の定例報告や毎日の日報作成など、定期的に発生するタスクは「繰り返し設定」の使用が効果的です。 手順 タスクを作成または編集する際に日付(期日)を設定し、日付の下に表示される「繰り返し」(時計マークのアイコン)をクリックして、繰り返しの頻度(毎日、毎週、毎月、毎年など)、間隔、終了日などを設定します。 効果 登録作業の削減(一度の設定でタスクが自動的に作成されます) タスク実行漏れの防止(定期的な業務の確実な遂行を支援します) 習慣化の促進(日常的に行いたい学習や運動などの習慣も、繰り返しタスクとして登録することで継続しやすくなります) 参考 : タスクを追加または編集する 活用術 3:他サービスとの連携 Google ToDo リストは、他の Google サービスと連携することで利便性が向上します。 Gmail からのタスク追加 受信したメールを開き、上部にある「ToDo リストに追加」アイコン(チェックマークにプラスが付いたアイコン)をクリックすることで、そのメールに関連するタスクを容易に作成できます。メールへのリンクも自動的にタスクに紐づけられるため、後から詳細を確認する際に便利です。 参考 : タスクを追加または編集する カレンダーでのタスク表示 Google ToDo リストで期日を設定したタスクは、Google カレンダー上にも表示されます(カレンダーの左側パネルで「ToDo リスト」カレンダーのチェックボックスをオンにする)。これにより、予定とタスクを一元的に把握できます。 参考 : タスクを追加または編集する 活用術 4 : タスク管理の Tips Google ToDo リストでは、タスクの下にサブタスクを作成できます。この機能を用いて大きなタスクを作成した後、具体的な行動レベルまで分割しサブタスクとして登録します。 これにより、着手すべき点が明確になり、達成感も得やすくなります。 また、全てのタスクが同じ重要度とは限りません。Google ToDo リストの「スター」機能で重要なタスクに印を付けたり、リスト内でタスクをドラッグアンドドロップして並び替えたりすることで、優先度の高いタスクから着手できます。 さらに、具体的な期日を設定することで、タスクへの意識が高まり、計画的な進行ができます。Google ToDo リストでは、各タスクに期日と時刻を設定できます。 Google カレンダーと Google ToDo リストの連携 Google カレンダーは 「時間軸の管理」 、ToDo リストは 「タスクの実行管理」 を担います。この2つを組み合わせることで、以下のような相乗効果が期待できます。 タスクの視覚的リマインド Google ToDo リストで期日を設定したタスクは、Google カレンダーの終日予定のセクションや指定した日時に表示されます。これは視覚的なリマインダーとして機能し、日々の予定の中でいつそのタスクに取り組むべきかを把握しやすくします。 タスク実行時間の確保 重要なタスクや集中して取り組みたいタスクがある場合、そのための時間をGoogle カレンダーに予定として確保(例 : 「資料作成集中タイム」など)し Todo リストに対してもタスクとして登録することで、該当タスクへの集中を促し、より確実にタスクを遂行できます。 横澤 綜一 (記事一覧) 事業開発部カスタマーサクセス課 英文学科からITの世界へ。Google Workspace 専任サポートから Google Workspace のカスタマーサクセスへロールが代わり日々奮闘中。週5でジムに通う。
アバター
G-gen の松本です。この記事では Google Workspace の AppSheet Core と AppSheet Enterprise Plus の違いについて解説します。 概要 AppSheet とは AppSheet のサブスクリプションプラン AppSheet Core Google Workspace に無料付帯 テンプレートから簡単にアプリ作成 Google Workspace アプリとの連携 管理コンソールでの制御 AppSheet Enterprise Plus 最上位プラン Google グループを利用したユーザーのアクセス制御 多様なデータソースとの連携 OCR 機能 チームへのリソース共有 組織全体のガバナンス強化 外部IDプロバイダ (IdP)との連携による高度な認証 詳細な監査ログと利用状況モニタリング Gemini との統合 概要 AppSheet とは AppSheet とは、Google が提供するノーコード開発プラットフォームです。プログラミングの知識不要で、業務アプリケーションを開発できます。その中でも AppSheet Core プランは、Google Workspace のサービスの一部として提供されています。 AppSheet を使うと、専門的なプログラミング知識がなくても、スプレッドシートなどの既存のデータソースを活用して、チェックリスト・在庫管理・日報・顧客管理などのカスタム業務アプリを簡単に作成できます。 AppSheet Core については、以下の記事も参照してください。 blog.g-gen.co.jp AppSheet のサブスクリプションプラン AppSheet には Free、Starter、Core、Enterprise Plus の計4つのサブスクリプションプランがあります。 AppSheet Free は、個人利用やプロトタイプ開発、テスト、個人間の共有など、特定の用途に限り無料でAppSheetの機能を利用できるプランです。 AppSheet Starter は、AppSheet 無料プランの上位プランであり、無料プランに比べてより多くのユーザーでの利用、基本的な自動化機能を備えています。主に個人事業主や小規模チームでの運用や、基本的な業務効率化アプリケーション開発に適したプランです。 AppSheet Core は、AppSheet Starter の上位プランであり、AppSheet Starter に比べてより高度なアプリ機能、自動化機能、セキュリティ機能を備えています。主に中小規模の組織での運用や、より実用的なビジネスアプリケーション開発に適したプランです。 AppSheet Enterprise Plus は、AppSheet Core の上位プランであり、AppSheet Core に比べてより高度な機能、管理機能、セキュリティ機能を備えています。大規模な組織での運用や、複雑なアプリケーション開発に適したプランです。また Gemini とも統合されており、強力な生成 AI 機能を備えたアプリを開発できます。アプリに生成 AI 機能(画像からの文字読み取りやテキストの分類など)を組み込みたい場合は、AppSheet Enterprise Plus を選びます。 参考 : サブスクリプションの選び方 参考 : AppSheet を無料で使用する(プロトタイプと個人用) AppSheet Core Google Workspace に無料付帯 AppSheet Core ライセンスは、主要な Google Workspace エディションでコアサービスとして登録されており、追加のサブスクリプションの登録不要で利用できます。 参考 : 組織で AppSheet を管理する AppSheet Core が利用可能な Google Workspace エディションは以下の通りです。 Business Starter Business Standard Business Plus Enterprise Starter Enterprise Standard Enterprise Plus Education Standard Education Plus Enterprise Essentials Plus Frontline Starter Frontline Standard Frontline Plus Google Workspace for Nonprofits テンプレートから簡単にアプリ作成 AppSheet では、プログラミングの知識が無くてもドラッグ&ドロップ操作で直感的にアプリを開発できます。また、用途別に様々なテンプレートも用意されているので、それらを利用して開発することもできます。 AppSheet のテンプレート選択画面 Google Workspace アプリとの連携 AppSheet は、Gmail、Google Calendar、Google スプレッドシートなどの Google Workspace コアアプリをデータベースとして連携ができます。既存のデータを活用してアプリを構築できるため、手軽に業務の効率を高められます。 以下は、Googleの各種サービスと連携して実現できるアプリの例です。 Gmail との連携 例として、AppSheet の顧客管理アプリで設定したアクション(例:商談成立、見積もり提出後)に応じて、顧客へのお礼メールやフォローアップメールを Gmail で自動送信できます。 顧客との関係性を強化しつつ、人的ミスによるフォロー漏れを防ぎ、顧客満足度の向上に貢献します。 Google スプレッドシートとの連携 タスク名、担当者、期日、進捗状況などを Google スプレッドシートで管理し、AppSheet で担当者ごとのタスク表示、進捗更新、期日管理などの機能を持つアプリが作成できます。 各メンバーのタスク状況やプロジェクト全体の進捗を一目で把握でき、タスクの遅延防止に繋がります。 Google カレンダーとの連携 会議、セミナー、ワークショップなどのイベント情報を AppSheet で作成・管理し、その予定を Google カレンダーに自動的に登録・同期。参加者への招待、出欠確認なども AppSheet 上で完結できます。 イベントに関する情報を AppSheet で集約し、Google カレンダーでスケジュールとして可視化することで、情報管理の効率化に貢献します。 管理コンソールでの制御 管理者は、以下の操作を有効化または無効化できます。 外部のアプリユーザーとの間での AppSheet のアプリとデータベースの共有 外部アプリデータへの接続 外部の宛先に送られる自動化メール アプリの API を使用した外部統合 Webhook 機能 参考 : AppSheet へのアクセスを管理する AppSheet Enterprise Plus 最上位プラン AppSheet Enterprise Plus は、AppSheet Core の最上位プランです。より高度な機能、管理機能、セキュリティ機能を備えており、大規模な組織での運用や、複雑なアプリケーション開発ができます。 また、Enterprise Plus には Gemini for App Creation 、 Gemini for AppSheet Solutions といった AI 機能も備わっており、生成 AI 補助のもとアプリを開発したり、AI 機能を使ったアプリを開発することができます。 その他にもバージョン管理、Active Directory や OpenID Connect との認証連携、チーム機能など、エンタープライズグレードの AppSheet 利用のための機能が充実しています。 参考 : サブスクリプションの選び方 Google グループを利用したユーザーのアクセス制御 AppSheet ではデフォルトですべてのユーザーでアプリの作成ができますが、Google グループを使用することでアプリの作成を行うユーザーを限定できます。 Google グループで「アプリ作成を許可する」メンバーが所属するグループを作成し、AppSheet に統合することで Google Workspace 内でアプリの開発者/利用者を分けて運用できます。 参考 : Google グループを使用してユーザーのアクセスをコントロールする 多様なデータソースとの連携 複数のクラウドベースのデータソースや大規模なデータベースと接続することで、大量のデータを活用したアプリを開発できます。 AppSheet で Google スプレッドシートをデータソースとして使用する場合、サポートされる行数は最大100,000行です。しかし、AppSheet Enterprise Plus ライセンスでは以下の大規模データソースと接続できるため、より大規模なデータセットを利用できます。 Apigee AppSheet API AWS DynamoDB BigQuery MariaDB MySQL OData オンプレミス データベース Oracle PostgreSQL Salesforce SQL Server 参考 : サブスクリプションの選び方 OCR 機能 光学文字認識 (OCR) 機能を利用し、画像データや手書き文字から文字情報を読み取り、テキストデータとして抽出できます。例えば、複数の名刺や請求書をカメラで撮影し、抽出したデータをフォームに入力することなどができます。 AppSheet の OCR 機能を使用すると画像からフォームに自動的に入力できるため、データ入力にかかる時間を短縮できます。 参考 : 光学式文字認識(OCR) チームへのリソース共有 AppSheet Enterprise Plus では、組織で作成したサンプルアプリの共有ができます。チーム内で共有することで開発時間の短縮や、作成するアプリの品質向上に繋がります。 また、AppSheet Enterprise Plus では MySQL などのクラウドデータベースや、Google スプレッドシートなどへの接続設定を共有できます。チーム全体が同じデータソースを利用することで、データソースの設定時間を削減でき、接続情報を管理できるためセキュリティの向上に繋がります。 参考 : リソースをチームと共有する 組織全体のガバナンス強化 AppSheet Enterprise Plus では、組織全体の AppSheet 利用に関する詳細なルール (ガバナンスポリシー)を管理者が一元的に設定できます。AppSheet Core でも一部の制御は可能ですが、Enterprise Plus ではより細かな設定が可能です。 例として、組織として許可したデータソース (特定のデータベースやクラウドストレージのフォルダなど)以外への接続を禁止し、接続可能なデータソースを制限できます。 これにより、情報漏洩リスクが低減できます。 参考 : ガバナンス ポリシーを定義する 外部IDプロバイダ (IdP)との連携による高度な認証 AppSheet Enterprise Plus では、Okta や Azure AD (Active Directory) など、企業で既に利用している外部のIDプロバイダ(IdP)と連携したシングルサインオン(SSO)環境を構築できます。 AppSheet Core でも Google Workspace アカウントでの認証が基本ですが、Enterprise Plus を利用することで、従業員は普段利用しているIDとパスワードで AppSheet アプリにアクセスでき、 IdP側で設定されている多要素認証を AppSheet 利用時にも適用できます。 これらにより、ユーザーの利便性を損なうことなく、企業全体の認証ポリシーに準拠した強固なアクセス管理が可能です。 参考 : Active Directory を使用してユーザー アクセスを制御する 参考 : Okta を使用してユーザーのアクセスを制御する 参考 : OpenID Connect を使用してユーザーのアクセスを制御する 詳細な監査ログと利用状況モニタリング AppSheet Enterprise Plus では、アプリの利用状況やデータ変更に関する詳細な監査ログを取得し、管理者が確認・分析できます。これにより、いつ、誰が、どのような操作を行ったかを追跡し、セキュリティインシデント発生時の原因究明や不正アクセスの検知に役立ちます。 具体的には、以下のような情報が記録されます。 アプリの起動、同期、データ変更(追加・更新・削除)の履歴 自動化の実行履歴 エラーの発生状況 これらの監査ログは、Google Cloud の BigQuery にエクスポートしてより長期間の保管や高度な分析を行うこともできます。AppSheet Core でも基本的なエラーログなどは確認できますが、Enterprise Plus ではより詳細な確認が可能です。 参考 : Audit History を使用してアプリのアクティビティをモニタリングする 参考 : チーム監査ログを BigQuery にエクスポートする Gemini との統合 AppSheet の Enterprise Plus エディションは、Google の生成 AI モデルである Gemini と統合 されています。 Gemini for App Creation は、AI 補助のもとアプリを開発できる機能です。自然言語でアプリのアイデアやビジネスプロセスの説明をするだけで、推奨されるテーブルと列を提案するなど、アプリ開発を AI が補助します。 Gemini for AppSheet Solutions は、アプリの中で AI を利用できる機能です。Gemini for AppSheet Solutions を使うと、画像から情報を抽出したり、PDF ドキュメントを処理したり、情報を分類したりできます。つまり、生成 AI の協力な機能を備えたアプリをノーコードで開発できます。 なお、前者の Gemini for App Creation は、Enterprise Plus エディションだけでなく、AppSheet Core とその他の有料ライセンスで使用可能です。 一方で後者の Gemini for AppSheet Solutions を使うには、AppSheet の Enterprise Plus エディションが必要です。画像からの文字読み取りや、テキストを分類させたりするなどの生成 AI 機能をアプリに組み込みたい場合は、AppSheet Enterprise Plus エディションのライセンスを購入してください。 参考 : Gemini in AppSheet を使用する 参考 : サブスクリプションの選び方 松本 迅人 (記事一覧) クラウドソリューション部 クラウドサポート課 栃木県出身。6年間製造関係の会社に在籍し、その後IT業界にシフト。 現在は Google Workspace を中心にカスタマーサポートに従事。 趣味はキャンプ、カメラ、エレキベース、バイク
アバター
G-gen の杉村です。Google Cloud のログ収集、保管、閲覧サービスである Cloud Logging のクエリ言語を徹底解説します。 クエリ言語 Logging クエリ言語とは クエリ言語のその他の用途 基本的な使い方 クエリの仕方 例文 ログエクスプローラでの生成 ブール演算子 AND、OR 括弧 NOT 比較演算子 =、!=(equal、not equal) :(has) フィールドの存在確認 正規表現 =~、!~(正規表現) 正規表現の記述 検索のスピード 文字列の検索 グローバル制限(単純な検索) SEARCH 関数 時間の指定 ログエクスプローラでの指定 クエリ言語での指定 コメント 高速な検索 インデックスの利用 時間帯を絞る 部分一致よりもイコール クエリ言語 Logging クエリ言語とは Google Cloud のログ収集、保管、閲覧サービスである Cloud Logging は、Google Cloud コンソールの ログエクスプローラ 画面で、 Logging クエリ言語 (Logging query language)という独自のクエリ言語を使ってログを自在にフィルタし、閲覧することができます。Logging クエリ言語は、ログエクスプローラのほか、gcloud コマンドや Cloud Logging API へのリクエストにも使うことができます。 Logging クエリ言語の構文(文法)は以下のドキュメントに記載されています。当記事では、重要な構文の書き方を解説します。 参考 : Logging のクエリ言語 クエリ言語のその他の用途 Cloud Logging では ログルーター (シンク)を用いて、ログを任意のログバケットや BigQuery に転送、保管できます。ログルーターには、転送対象のログを指定するための含有フィルタや除外フィルタを記述します。 このフィルタの記述にも、Logging のクエリ言語が使われます。 参考 : Cloud Loggingの概念と仕組みをしっかり解説 - ログルーティングとログの保存 また、Cloud Logging のログに基づいてメールなどを発報するためのログベースのアラートやログベースの指標などにおいても、対象のログを指定するために Logging クエリ言語が使われます。 参考 : Cloud Loggingの概念と仕組みをしっかり解説 - ログ監視 このように、Logging クエリ言語は Cloud Logging に関わる多くの場面で使われます。 基本的な使い方 クエリの仕方 Logging クエリ言語は、Google Cloud コンソールの「ロギング」 > 「ログ エクスプローラ」の画面で使用します。 もしクエリを書き込む検索ボックスが表示されていない場合は、「クエリを表示(①)」を押下します。検索ボックス(②)にクエリを記載し、「クエリを実行(③)」を押下することで、検索が実行されます。 クエリ言語の使い方 例文 Logging クエリ言語を使ったクエリの例文を、いくつか紹介します。 Google Kubernetes Engine(GKE)クラスタのログで、重要度が ERROR のログ resource . type = " k8s_cluster " AND severity= " ERROR " インスタンススケジュールによる Compute Engine VM の起動・停止ログ ( protoPayload.methodName= " v1.compute.instances.stop " OR protoPayload.methodName= " v1.compute.instances.start " ) AND protoPayload.authenticationInfo.principalEmail= " service-1234567890@compute-system.iam.gserviceaccount.com " アカウント john.doe@g-gen.co.jp によって実行された BigQuery テーブル my_table へのクエリのログ protoPayload.authenticationInfo.principalEmail= " john.doe@g-gen.co.jp " AND protoPayload.methodName= " jobservice.insert " AND protoPayload.serviceData.jobInsertResponse. resource .jobStatistics.referencedTables.tableId= " my_table " ログエクスプローラでの生成 Logging クエリ言語には、当記事で紹介するような多数の構文がありますが、ほとんど覚える必要がないともいえます。 ログエクスプローラで、検索したいログと類似のログを見つけたあと、対象のフィールドの値(①)をクリックして表示されたプルダウンメニューから「一致エントリを表示」または「一致エントリを非表示」を選択(②)すると、その値を検索するようなクエリが検索ボックス(③)に追加されます。 クエリ言語はコンソールで生成できる このようにして追加されたクエリ言語を、部分的に修正して、目当てのログを探すためのクエリを作成することができます。 Logging クエリ言語の文法を詳細に覚えなくても、基本的な文法と概要を理解していれば、類似のログから検索クエリを生成して、目当てのログへたどり着くことができます。 ブール演算子 AND、OR AND と OR は、Logging クエリ言語を使う上で最も重要な演算子です。 AND と OR は、必ず 大文字 で書く必要があります。小文字で書くと、検索キーワードとして解釈され、後述のグローバル制限(グローバル検索)が行われてしまいます。 protoPayload.methodName= " v1.compute.instances.stop " OR protoPayload.methodName= " v1.compute.instances.start " 上記のクエリでは、メソッド名が "v1.compute.instances.stop" または "v1.compute.instances.start" であるログを抽出しています。上記のようなクエリで、 AND を使うことはありえません。メソッド名が "v1.compute.instances.stop" であり、 かつ "v1.compute.instances.start" であるログはありえないからです。 OR を使うことで、"v1.compute.instances.stop" または "v1.compute.instances.start" に当てはまるログがすべて抽出されます。 なお、 AND は省略することができます。2つの以上のステートメント(個々のクエリの記述のこと)を記載したとき、結合方法は AND になります。以下の2つのクエリは、同じ意味を持ちます。 protoPayload.methodName= " v1.compute.instances.stop " AND resource .labels.instance_id= " 1234567890123456789 " protoPayload.methodName= " v1.compute.instances.stop " resource .labels.instance_id= " 1234567890123456789 " 括弧 OR や AND は括弧でくくることができます。以下のクエリでは、メソッド名が "v1.compute.instances.stop" であり、かつインスタンス ID が "1234567890123456789" または "0987654321098765432" であるログが抽出されます。 protoPayload.methodName= " v1.compute.instances.stop " AND ( resource .labels.instance_id= " 1234567890123456789 " OR resource .labels.instance_id= " 0987654321098765432 " ) NOT NOT は、 AND と OR の意味を反転します。以下のクエリでは、メソッド名が "v1.compute.instances.stop" であり、かつインスタンス ID が "1234567890123456789" ではない ログが抽出されます。 NOT も、必ず大文字で書く必要があります。 protoPayload.methodName= " v1.compute.instances.stop " AND NOT resource .labels.instance_id= " 1234567890123456789 " また、 NOT の代わりに - (マイナス記号)を使うこともできます。以下のクエリは、上記のクエリと同じ意味です。 protoPayload.methodName= " v1.compute.instances.stop " - resource .labels.instance_id= " 1234567890123456789 " 比較演算子 =、!=(equal、not equal) = や != はその見た目のとおり、一致していること、または一致していないことを指します。 以下の2つのクエリは同じ意味を持ちます。 protoPayload.methodName= " v1.compute.instances.stop " AND NOT resource .labels.instance_id= " 1234567890123456789 " protoPayload.methodName= " v1.compute.instances.stop " AND resource .labels.instance_id!= " 1234567890123456789 " = や != の前後には、スペースを入れても入れなくても構いません。 protoPayload.methodName = " v1.compute.instances.stop " AND resource .labels.instance_id != " 1234567890123456789 " :(has) : は has と呼ばれ、指定した文字列を含むログを抽出します。 以下のログでは、 protoPayload.authenticationInfo.principalEmail に "@g-gen.co.jp" という文字列が含まれているログを抽出します。 protoPayload.authenticationInfo.principalEmail : " @g-gen.co.jp " AND protoPayload.methodName= " jobservice.insert " また、 : では括弧を使って複数の条件を指定することができます。 protoPayload.authenticationInfo.principalEmail : ( " @g-gen.co.jp " OR " @example.co.jp " ) AND protoPayload.methodName= " jobservice.insert " また、 : を使ったクエリでは、大文字と小文字は区別されません。以下のクエリは、1つ前のクエリと同じ結果を返します。 protoPayload.authenticationInfo.principalEmail : ( " @G-GEN.CO.JP " OR " @EXAMPLE.CO.JP " ) AND protoPayload.methodName= " jobservice.insert " フィールドの存在確認 :* を使うと、値を問わず、そのフィールドが存在しているログエントリを抽出できます。 protoPayload.serviceName= " iap.googleapis.com " protoPayload.authenticationInfo.principalEmail:* 正規表現 =~、!~(正規表現) =~ は、正規表現を使うための比較演算子です。Logging クエリ言語では、 RE2 と呼ばれる Google が定義する正規表現構文を使います。 以下のクエリでは、メソッド名が "v1.compute.instances." で始まるログを抽出します。 protoPayload.methodName=~ " ^v1\.compute\.instances\..+ " ^ は文字列の先頭を意味します。 . はそのままだと任意の文字列を意味するメタ文字なので、 \ でエスケープします。末尾の .+ は、任意の文字列が1文字以上繰り返されることを意味します。 !~ は、 =~ とは逆に、正規表現に一致しないログを抽出します。 resource .labels.instance_id = " 1234567890123456789 " AND protoPayload.methodName !~ " v1.compute.instances.get " なお、正規表現では大文字と小文字は区別されます。以下の2つのクエリでは、結果が異なります。 protoPayload.methodName=~ " ^v1\.compute\.instances\..+ " protoPayload.methodName=~ " ^V1\.COMPUTE\.INSTANCES\..+ " 正規表現の記述 正規表現はプログラマーにとっては使い慣れたツールですが、正規表現の文法に慣れていない人もいるでしょう。日本語で指示して Gemini アプリ( https://gemini.google.com )などの生成 AI に正規表現を記述させるのも有用です。 ただし、無償版 Google アカウントで利用する Gemini アプリに投入したプロンプトなどは、Google によってモデルの再トレーニングに利用される場合があることに注意してください。Google Workspace アカウントでログインした状態で Gemini アプリを使っている場合、データは保護されます(エンタープライズグレードのデータ保護)。 参考 : Gemini for Google Workspace に関するよくある質問 - Gemini for Google Workspace ではどのようにデータが保護されますか? 検索のスピード 以下の2つのクエリの意味はほとんど同じですが、 : を使ったクエリよりも、 =~ を使った正規表現によるクエリのほうが 高速 です。 protoPayload.authenticationInfo.principalEmail : " @g-gen.co.jp " protoPayload.authenticationInfo.principalEmail =~ " .+@g-gen\.co\.jp " 文字列の検索 グローバル制限(単純な検索) 以下のように単純に文字列をダブルクォーテーションで囲って検索ボックスに入力し、クエリすることで、その文字列を含むログを抽出できます。 " password authentication failed " このような文字列による単純な検索を、グローバル制限(global restriction)またはグローバル検索といいます。グローバル制限は、以下のように AND や OR を使うことができます。 ( " password authentication failed " AND ( " postgres " OR " mysql " ) ) グローバル制限による検索では、暗黙的に : (has)が使われています。グローバル制限による検索では、ログエントリのすべてのフィールドを : で検索するため、結果が返ってくるのが遅くなる可能性があります。 SEARCH 関数 前述のグローバル制限による単純な文字列検索では、結果が返ってくるまで時間がかかる場合があります。Logging クエリ言語の組み込み関数である SEARCH() 関数を使うと、検索対象のフィールドを指定できます。 SEARCH(textPayload, " password authentication failed " ) SEARCH() 関数は、フィールドを指定しないで検索に使うこともできます。このとき、前述の単純な検索との違いは、検索時に文字列が「トークン化」されることです。 例えば、大文字と小文字が区別されなかったり、スペースで空けた複数の文字列は順序が区別されません。以下の2つのクエリは同じ結果を返します。 SEARCH( " hello world " ) SEARCH( " World hello " ) 大文字と小文字や、文字列の順序を区別させたい場合は、文字列をバッククォートで囲みます。以下の2つのクエリは、返ってくる結果が異なります。 SEARCH( " `hello world` " ) SEARCH( " `world hello` " ) SEARCH() 関数では、部分的なテキストは区別されてしまいます。以下のクエリでは、world という単語が途中で切れているので、 hello world という文字列は抽出されません。 SEARCH( " `hello wor` " ) なお、以下の1つ目のクエリのように文字列をダブルクォーテーションで囲わずに検索ボックスに入力してそのまま検索すると、 SEARCH() 関数を使った検索になります。以下の2つのクエリは同じ意味です。 password authentication failed SEARCH( " password authentication failed " ) 時間の指定 ログエクスプローラでの指定 ログエクスプローラでは、ログの検索対象とする時間を指定できます。 できるだけ検索対象の時間帯を絞ることで、クエリの結果が返ってくるまでのスピードを向上させることができます。 ログエクスプローラで時間帯を指定 クエリ言語での指定 クエリ内で時間帯を指定することもできます。Cloud Logging のログエントリには以下のように timestamp フィールドが必ず含まれていますので、このフィールドを使ってログを絞り込みます。 timestamp >= " 2025-02-24T09:40:00+09:00 " AND timestamp <= " 2025-02-24T09:50:00+09:00 " タイムスタンプの末尾を +09:00 とすれば日本のタイムゾーンになります。末尾を Z とすれば UTC です。 コメント -- で始まる行はコメントであり、無視されます。 -- このクエリは、Compute Engine VM に対するすべてのメソッドの実行を抽出します protoPayload.methodName=~ " ^v1\.compute\.instances\..+ " 高速な検索 インデックスの利用 Cloud Logging のログエントリには、 インデックス が存在します。インデックスは、物理的な書籍でいう索引や、ページに貼られた付箋のようなものと理解することができます。フィールドにインデックスが作成されることによって、そのフィールドに対する検索が高速化します。 参考 : ログエントリの迅速な検索 参考 : カスタム インデックスを構成する ログバケットに対して、ユーザーが任意のフィールドにカスタムインデックスを指定することもできるほか、すべてのログバケットで、 デフォルトで 以下のフィールドにインデックスが作成されています。 resource.type resource.labels.* logName severity timestamp insertId operation.id trace httpRequest.status labels.* split.uid これらのフィールドに対して検索をかけると、高速な検索が可能です。 例えば、検索したいログの対象となっているインスタンス ID が分かっている場合は、ID を指定することで検索が高速になります。 resource.labels.* にはデフォルトのインデックスが作成されているからです。 protoPayload.methodName= " v1.compute.instances.stop " AND resource .labels.instance_id= " 1234567890123456789 " また、 logName フィールドは、ログエントリに必ず含まれており、デフォルトのインデックスが作成されていますので、検索対象のログを絞る際に有用です。 protoPayload.serviceName= " cloudsql.googleapis.com " AND logName= " projects/sugimura/logs/cloudaudit.googleapis.com%2Factivity " logName フィールドの値の例は、以下のとおりです。 ログの種類 値 説明 Cloud Audit Logs 管理アクティビティ監査ログ projects/(PROJECT_ID)/logs/cloudaudit.googleapis.com%2Factivity リソースに対する更新系操作 Cloud Audit Logs データアクセス監査ログ projects/(PROJECT_ID)/logs/cloudaudit.googleapis.com%2Fdata_access データに対する更新系・読取系操作 Cloud Audit Logs ポリシー拒否監査ログ projects/(PROJECT_ID)/logs/cloudaudit.googleapis.com%2Fpolicy VPC Service Controls のアクセス拒否 Cloud SQL for PostgreSQL データベースログ (postgres.log) projects/(PROJECT_ID)/logs/cloudsql.googleapis.com%2Fpostgres.log Cloud SQL for PostgreSQL のログ Cloud Run 標準出力 (postgres.log) projects/(PROJECT_ID)/logs/run.googleapis.com%2Fstdout Cloud Run や Cloud Run functions の標準出力 時間帯を絞る ログ検索対象の時間帯を可能な限り絞ることで、検索時間を速くすることができます。 ログエクスプローラ画面の UI を使って時間帯を絞ってもいいですし、クエリ文の中で timestamp フィールドを使って時間帯を絞っても構いません。 部分一致よりもイコール 検索対象の文字列が分かっている場合は、グローバル制限(グローバル検索)よりも : (has)のほうが、またそれよりも =~ (正規表現)の方が高速です。しかし、最も高速なのは = (イコール)です。 -- グローバル検索だとすべてのフィールドが検索対象になる " password authentication failed " -- こちらのほうが高速 textPayload : " password authentication failed for user \ " postgres\ "" -- さらに高速 textPayload =~ " .* password authentication failed for user \ " postgres\ " .* " -- 最も高速 textPayload= " 2025-02-24 00:27:33.651 UTC [12345]: [1-1] db=postgres,user=postgres FATAL: password authentication failed for user \ " postgres\ "" また、フィールドを指定した検索では SEARCH() 関数も有用です。正規表現を用いなくても、検索文字列がトークン化されて効率的な検索が可能です。ただし、単語が途中で切れていたりすると、望む結果が得られないことに注意してください(前述の「SEARCH 関数」の見出しを参照)。 SEARCH(textPayload, " password authentication failed " ) 杉村 勇馬 (記事一覧) 執行役員 CTO / クラウドソリューション部 部長 元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。 Follow @y_sugi_it
アバター
G-gen のバロキです。この記事では Vertex AI を使って、Anthropic 社の Claude モデル を呼び出す方法と、セットアップから最初の推論(inference)までのステップについて解説します。 はじめに Claude とは Vertex AI 上で Claude を使うメリット 利用可能な Claude モデル一覧 事前準備 Notebook インスタンスの作成 Claude のストリーミング応答を利用する curl での呼び出し例 次のステップ はじめに Claude とは Claude は、Anthropic 社によって開発された大規模言語モデル(LLM)のファミリーです。Constitutional AI という設計原則に基づき、「有用で・無害で・正直である」ことを目指して作られました。 Claude 3 系列の中でも最新の Claude 3.7 Sonnet は、ハイブリッド・リースニング(Hybrid Reasoning)を備えており、即時的な応答と段階的な深い思考のバランスを取ることが可能です。 Claude は以下のようなタスクに活用できます。 テキストの要約 コード生成やデバッグ マルチモーダルな画像処理 チャットボットやリアルタイム会話 深い分析や推論の自動化 Vertex AI 上で Claude を使うメリット Google Cloud の Vertex AI は、Claude モデルをネイティブに提供しています。Claude を Vertex AI から呼び出すことには、以下のようなメリットがあります。 サーバーレス であること。インフラの管理が不要です。 API 経由の簡単な呼び出し が可能であること。API へリクエストを送るだけで利用できます。 ストリーミング対応 していること。応答をリアルタイムに表示できます。 従量課金またはスループット指定 が可能であること。用途に応じた柔軟な価格設定が可能です。 このように、Vertex AI を使うと、研究者や開発者が簡単に Claude を使い始められます。 利用可能な Claude モデル一覧 以下は、2025年5月現在、Vertex AI から呼び出し可能な Claude モデルの一覧です。 モデル名                 モデル ID                          特徴                     Claude 3.7 Sonnet    claude-3-7-sonnet@20250219     高度な推論、エージェント的タスクに最適です。     Claude 3.5 Sonnet v2 claude-3-5-sonnet-v2@20241022 複雑なドキュメント理解やコーディングに適しています。     Claude 3.5 Haiku     claude-3-5-haiku@20241022     最速の応答性能を持ち、チャット用途に向いています。       Claude 3 Opus        claude-3-opus@20240229         高度な研究用途や複雑なタスクに適しています。         Claude 3 Haiku       claude-3-haiku@20240307       画像を含むマルチモーダル処理に対応しています。         Claude 3.5 Sonnet    claude-3-5-sonnet@20240620     高性能なコーディング支援とカスタマーサポートに役立ちます。 参考 : Use Anthropic's Claude models 事前準備 Claude を Vertex AI から使うためには、以下の準備が必要です。 課金が有効な Google Cloud プロジェクト aiplatform.googleapis.com API の有効化 パートナーモデル(Claude)の使用権限 Python、Jupyter Notebook の基本的な知識 以下のコマンドで SDK をインストール pip install --upgrade anthropic google-cloud-aiplatform Notebook インスタンスの作成 Vertex AI Workbench にアクセスし、「インスタンスを作成」をクリックします。 「Python 3(最新) + JupyterLab」を選択します。 インスタンスタイプ(例 : e2-standard-4)を選びます。 Notebook 上で以下のコードを実行します。 from anthropic import AnthropicVertex client = AnthropicVertex(project_id= "your-project-id" , region= "us-east5" ) message = client.messages.create( model= "claude-3-7-sonnet@20250219" , max_tokens= 1024 , messages=[ { "role" : "user" , "content" : "Explain the concept of extended thinking." } ], ) print (message.model_dump_json(indent= 2 )) Claude のストリーミング応答を利用する ストリーミング応答を利用することで、より自然で即時的な体験が可能です。 with client.messages.stream( model= "claude-3-7-sonnet@20250219" , max_tokens= 1024 , messages=[ { "role" : "user" , "content" : "Tell me a story about a dragon and a forest." } ], ) as stream: for text in stream.text_stream: print (text, end= "" , flush= True ) curl での呼び出し例 gcloud コマンドで取得したアクセストークンを使い、curl で直接呼び出すことも可能です。 curl -X POST \ -H " Authorization: Bearer $( gcloud auth print-access-token ) " \ -H " Content-Type: application/json " \ https://us-east5-aiplatform.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/us-east5/publishers/anthropic/models/claude-3-7-sonnet@20250219:streamGenerateContent \ -d ' { "instances": [{"messages": [{"role": "user", "content": "Vertex AI を使って何ができますか?"}]}], "parameters": {"maxTokens": 512, "stream": true} } ' 次のステップ Claude は Vertex AI を通じて、インフラ管理の必要がなく、安全かつスケーラブルに利用できます。 さらなる詳細は、以下のドキュメントを参考にしてください。 参考 : Claude on Vertex AI(公式ドキュメント) 参考 : Anthropic API ドキュメント 参考 : Claude 3.7 Sonnet 紹介ページ ハサナル・バロキ (記事一覧) クラウドソリューション部 クラウドサポート課。インドネシア北スマトラ州ビンジャイ市出身。 YKK株式会社での金型設計を経て IT 業界へ転身。AI/システムエンジニアとしての経験を積み、現在は G-gen にてクラウドサポートに従事。 趣味は水泳と RAG チャットボット開発(OpenAI・Gemini・Vector Search 等)。好きな食べ物はラーメンと寿司。
アバター
G-gen の杉村です。BigQuery では、Cloud Storage 上の CSV 形式や JSON 形式のファイルをテーブルに読み込ん(ロード)だり、外部テーブル定義によって直接クエリすることができます。日付を含むファイルをロードしたりクエリしようとした際に発生したエラーについて、対処法を解説します。 前提 事象 1. LOAD の際のエラー 2. 外部テーブルへのクエリの際のエラー 原因 対処法 1. date_format オプションを指定する 2. STRING 型として取り込む 3. スキーマの自動検知を利用する 4. 取り込む前にファイルを前処理する 前提 Cloud Storage バケットに以下の CSV を配置し、BigQuery から LOAD ステートメントを実行して、テーブルに取り込もうとしました。 2025/06/07,2025/06/07 08:30:00,2025/06/07 17:30:00,helloWorld1 2025/06/08,2025/06/08 09:00:00,2025/06/08 17:30:00,helloWorld2 2025/06/09,2025/06/09 10:00:30,2025/06/09 19:00:30,helloWorld3 なおテーブルのスキーマは CSV のフィールドどおりの順番で、以下を想定しています。 列名 型 col_date DATE col_datatime DATETIME col_timestamp TIMESTAMP col_string STRING また別の用途のため、上記のテーブルとは別に、同じファイルに対して外部テーブル定義をして、直接ファイルをクエリできるようにしたいと考えています。 事象 1. LOAD の際のエラー Cloud Storage バケット上の CSV ファイルを BigQuery テーブルに取り込むため、以下の LOAD 文を実行しました。 LOAD DATA INTO `my-project.my_dataset.sample_table` ( col_date DATE , col_datetime DATETIME , col_timestamp TIMESTAMP , col_string STRING ) FROM FILES ( format = ' CSV ' , uris = [ ' gs://my-bucket/datetime_test/test_dateformat.csv ' ] ); すると、以下のエラーが発生しました。 Error while reading data, error message: Unable to parse; line_number: 1 byte_offset_to_start_of_line: 0 column_index: 0 column_name: "col_date" column_type: DATE value: "2025/06/07" File: gs://my-bucket/datetime_test/test_dateformat.csv Error while reading data, error message: Unable to parse; 2. 外部テーブルへのクエリの際のエラー 次に、CREATE EXTERNAL TABLE 文で同じファイルに対して外部テーブル定義を試みました。 CREATE OR REPLACE EXTERNAL TABLE `my-project.my_dataset.sample_external_table` ( col_date DATE , col_datetime DATETIME , col_timestamp TIMESTAMP , col_string STRING ) OPTIONS ( format = ' CSV ' , uris = [ ' gs://my-bucket/datetime_test/test_dateformat.csv ' ] ); 外部テーブル作成は成功しましたが、この外部テーブルに SELECT 文を実行した際に以下のエラーメッセージが表示されました。 Error while reading table: my-project.my_dataset.sample_external_table, error message: Unable to parse; line_number: 1 byte_offset_to_start_of_line: 0 column_index: 0 column_name: "col_date" column_type: DATE value: "2025/06/07" File: gs://my-bucket/datetime_test/test_dateformat.csv Error while reading table: 〜 error message: Unable to parse; 原因 BigQuery の DATE 型や DATETIME 型、TIMESTAMP 型では、文字列をキャストする際に、日付部分が YYYY-mm-dd というハイフン区切りの形式であれば自動的に日付として認識されます。 今回は、CSV ファイル内の文字列の日付部分が、「2025/06/07」とスラッシュ区切りのため上記の形式に一致しておらず、LOAD に失敗したり、外部テーブルとしてのクエリが失敗しました。 対処法 1. date_format オプションを指定する LOAD や CREATE TABLE 文において、 date_format オプション、 datetime_format オプションを使うことで、日付にパースする文字列のフォーマットを指定することができます。 参考 : Load statements in GoogleSQL 以下は、その例です。 LOAD DATA INTO `my-project.my_dataset.sample_table` ( col_date DATE , col_datetime DATETIME , col_timestamp TIMESTAMP , col_string STRING ) FROM FILES ( format = ' CSV ' , uris = [ ' gs://my-bucket/datetime_test/test_dateformat.csv ' ], time_zone = " Asia/Tokyo " , date_format = ' YYYY/MM/DD ' , datetime_format = ' YYYY/MM/DD HH24:MI:SS ' ); なお上記の例では、 time_zone オプションでタイムゾーンを指定することで、タイムゾーンを意識する TIMESTAMP 型の列に、任意のタイムゾーンで値を格納しています。 クエリ SELECT * FROM `my-project.my_dataset.sample_table`; クエリの結果 col_date col_datetime col_timestamp col_string 2025-06-07 2025-06-07T08:30:00 2025-06-07 08:30:00 UTC helloWorld1 2025-06-08 2025-06-08T09:00:00 2025-06-08 08:30:00 UTC helloWorld2 2025-06-09 2025-06-09T10:00:30 2025-06-09 10:00:30 UTC helloWorld3 上記の結果では、 2025/06/07 17:30:00 という日本時間の時刻を格納した文字列が、col_timestamp 列に 2025-06-07 08:30:00 UTC として正しく格納されていることがわかります。 また、CREATE EXTERNAL TABLE でも、同じように date_format オプション、 datetime_format オプションが使えます。 time_zone オプションも解釈され、外部テーブルへのクエリ時に正しくタイムゾーンが設定されます。 参考 : Data definition language (DDL) statements in GoogleSQL - CREATE EXTERNAL TABLE statement CREATE OR REPLACE EXTERNAL TABLE `my-project.my_dataset.sample_external_table` ( col_date DATE , col_datetime DATETIME , col_timestamp TIMESTAMP , col_string STRING ) OPTIONS ( format = ' CSV ' , uris = [ ' gs://my-bucket/datetime_test/test_dateformat.csv ' ], time_zone = " Asia/Tokyo " , date_format = ' YYYY/MM/DD ' , datetime_format = ' YYYY/MM/DD HH24:MI:SS ' ); 他に、時刻のフォーマットを指定する time_format オプションや、タイムスタンプのフォーマットを指定する timestamp_format オプションもあります。 2. STRING 型として取り込む CSV の文字列を、いったん STRING 型の文字列として取り込み、後から ELT(データ変換)やビューで任意の型に変換することができます。 LOAD DATA INTO `my-project.my_dataset.sample_table` ( col_date STRING, col_datetime STRING, col_timestamp STRING, col_string STRING ) FROM FILES ( format = ' CSV ' , uris = [ ' gs://my-bucket/datetime_test/test_dateformat.csv ' ] ); また、外部テーブルの場合は以下のようになります。 CREATE OR REPLACE EXTERNAL TABLE `my-project.my_dataset.sample_external_table` ( col_date STRING, col_datetime STRING, col_timestamp STRING, col_string STRING ) OPTIONS ( format = ' CSV ' , uris = [ ' gs://my-bucket/datetime_test/test_dateformat.csv ' ] ); このようにしてできたテーブルや外部テーブルに対して、以下のように PARSE_* 関数を使ってクエリすることで、文字列を日付型等に変換することができます。 SELECT PARSE_DATE( " %Y/%m/%d " , col_date) AS col_date, PARSE_DATETIME( " %Y/%m/%d %H:%M:%S " , col_datetime) AS col_datetime, PARSE_TIMESTAMP( " %Y/%m/%d %H:%M:%S " , col_timestamp, " Asia/Tokyo " ) AS col_timestamp, col_string, FROM `my-project.my_dataset.sample_table` 参考 : Date functions 参考 : Datetime functions 参考 : Timestamp functions 3. スキーマの自動検知を利用する 以下のようにスキーマ(列名、型)を指定せずに LOAD すると、スキーマが自動判断されてロードされます。スラッシュ区切りの日付文字列も、DATE 型等として判断されます。 LOAD DATA INTO `my-project.my_dataset.sample_table_auto` FROM FILES ( format = ' CSV ' , uris = [ ' gs://my-bucket/datetime_test/test_dateformat.csv ' ] ); 外部テーブル定義の場合は、以下のようになります。 CREATE OR REPLACE EXTERNAL TABLE `my-project.my_dataset.sample_external_table` OPTIONS ( format = ' CSV ' , uris = [ ' gs://my-bucket/datetime_test/test_dateformat.csv ' ] ); この方法だと、列名や型を指定することができません。上記の方法で作成されたテーブルや外部テーブルを SELECT すると、いずれも以下のような結果となりました。 date_field_0 timestamp_field_1 timestamp_field_2 string_field_3 2025-06-07 2025-06-07 08:30:00 UTC 2025-06-07 17:30:00 UTC helloWorld1 2025-06-08 2025-06-08 09:00:00 UTC 2025-06-08 17:30:00 UTC helloWorld2 2025-06-09 2025-06-09 10:00:30 UTC 2025-06-09 19:00:30 UTC helloWorld3 CSV の2列目と3列目のフィールドはいずれも TIMESTAMP 型として解釈され、タイムゾーンは UTC として解釈されました。 この方法では任意の列名や型を指定できない点に留意が必要です。 4. 取り込む前にファイルを前処理する 上記の方法のほか、BigQuery からファイルを読み込む前の前処理として、ファイル自体を加工する(ELT ではなく ETL)という方法も検討できます。 この場合は BigQuery の機能だけでは取り込みを完結できません。ファイルの前処理のためのアーキテクチャを検討する必要があります。 杉村 勇馬 (記事一覧) 執行役員 CTO 元警察官という経歴を持つ IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。 Follow @y_sugi_it
アバター
G-genの福井です。BigQuery Data Transfer Service のイベントドリブン機能の設定手順を紹介します。 イベントドリブン転送の概要 BigQuery Data Transfer Service とは ユースケース アーキテクチャ 制限事項 料金 事前準備 API の有効化 サービスアカウントの作成とロールを付与 設定手順 データの格納先をCloud Storageに作成 データの転送先をBigQueryに作成 BigQuery Data Transfer Serviceで転送構成を作成 動作確認 イベントドリブン転送の概要 BigQuery Data Transfer Service とは BigQuery Data Transfer Service は、Google Cloud 内外のデータソースから BigQuery へのデータロードを自動化する、フルマネージドなサービスです。これまでも、決まったスケジュールで定期的にデータ転送を実行する機能が提供されていました。 2025年6月、BigQuery Data Transfer Service で新しく イベントドリブン転送 (Event-Driven Transfers)がサポートされたことで、Cloud Storage にファイルが配置されたことをトリガーに、 BigQuery へデータを転送できます。 当記事では、このイベントドリブン転送の概要から、実際のコンソール画面を用いた具体的な設定手順、そして動作確認までをステップバイステップで解説します。 参考 : BigQuery Data Transfer Service とは 参考 : イベント ドリブン転送 ユースケース イベントドリブン転送は、データが発生してから分析に利用できるまでのリードタイムを短縮したい場合に特に有効です。具体的なユースケースとしては、以下のようなシナリオが挙げられます。 ユースケース 概要 アプリケーションログの分析 Web サーバーなどから出力されるログファイルを Cloud Storage に集約し、障害検知や利用状況の分析のために BigQuery へ取り込む。 外部システムとのデータ連携 パートナー企業や SaaS からファイル形式で提供される販売データや顧客データを、Cloud Storage に配置されたタイミングで速やかに取り込む。 アーキテクチャ イベントドリブン転送は、Cloud Storage、Pub/Sub、そして BigQuery Data Transfer Service の3つのサービスを連携させて実現します。 全体の処理の流れは以下の通りです。 ユーザーまたはアプリケーションが、監視対象の Cloud Storage バケット にファイルをアップロードします。 ファイルの作成イベントを検知した Cloud Storage は、あらかじめ設定された Pub/Sub トピック に通知メッセージを送信します。 BigQuery Data Transfer Service は、その Pub/Sub トピックを購読 (Subscribe) しており、メッセージを受け取ります。 メッセージをトリガーとして、Data Transfer Service の転送ジョブが実行され、指定されたファイルを BigQuery のテーブル にロードします。 制限事項 イベントドリブン転送を使用するには、いくつかの制限事項があります。 制限事項 詳細 同一サブスクリプションの再利用不可 同じ Pub/Sub サブスクリプションを、複数のイベントドリブン転送構成で再利用することはできません。 ランタイムパラメータの非対応 転送元となる Cloud Storage のURI(データパス)に、実行時の動的なパラメータを埋め込むことはサポートされていません。 参考: ランタイム パラメータ イベントの待機時間 一度転送がトリガーされると、BigQuery Data Transfer Serviceは次のトリガーまで最大10分間待機することがあります。 参考 : イベント ドリブン転送 - 制限事項 料金 イベントドリブン転送の使用にあたり、BigQuery Data Transfer Service 自体には追加の料金はかかりません。ただし、連携する以下の各サービスにおいて、それぞれの利用量に応じた料金が発生します。 サービス 課金対象 備考 BigQuery Data Transfer Service - サービス自体の利用は無料です。 Cloud Storage ・ストレージ料金 ・オペレーション料金 ファイルの保管と読み書きに対して発生します。 参考: Cloud Storage の料金 Pub/Sub ・メッセージング料金 Cloud Storageからの通知メッセージ量に応じて発生します。 毎月最初の10GBまでは無料枠が適用されます。 参考: Pub/Sub の料金 BigQuery ・ストレージ料金 ・分析料金 ロードされたデータの保管と、そのデータに対するクエリ実行時に発生します。 参考: BigQuery の料金 事前準備 API の有効化 はじめに、以下の API を Google Cloud プロジェクトで有効化します。 サービス名 API 名 Pub/Sub pubsub.googleapis.com BigQuery bigquery.googleapis.com BigQuery Data Transfer Service bigquerydatatransfer.googleapis.com   Google Cloud コンソールの API とサービスの画面で、[+ API とサービスを有効にする] を選択します。 API とサービスを有効にするを選択 API とサービスを検索に pubsub.googleapis.com を入力し、検索します。 API 名で検索 検索結果が複数表示されるため、以下を選択します。 pubsub.googleapis.com の場合 pubsub.googleapis.com の選択 bigquery.googleapis.com の場合 bigquery.googleapis.com の選択 bigquerydatatransfer.googleapis.com の場合 bigquerydatatransfer.googleapis.com の選択 [有効にする] を選択します。 API を有効にするを選択 サービスアカウントの作成とロールを付与 BigQuery Data Transfer Service を実行するためのサービス アカウントを作成します。 Google Cloud コンソールの IAM と管理の画面で、[サービス アカウント] > [サービス アカウントを作成] を選択します。 サービス アカウントを作成を選択 サービス アカウント名に sv-event-driven-bq-data-transfer を入力し、[作成して続行] を選択します。 サービス アカウント名を入力すると、サービス アカウントIDは自動で設定されます。 サービス アカウントの作成 ロールに Storage オブジェクト閲覧者 (roles/storage.objectViewer)を入力し、[続行] を選択します。 サービス アカウントに権限付与 [完了] を選択します。 サービス アカウントの設定完了 設定手順 データの格納先をCloud Storageに作成 Google Cloud コンソールの Cloud Storage 画面で、[バケット] > [作成] を選択します。 バケットを作成を選択 バケット名に g-gen-blog-event_driven_bq_data_transfer 、ロケーション タイプに Region と asia-northeast1 (東京) を入力し、[作成] を選択します。 バケット名は、世界中で重複しない名前にする必要がありますので、ご自身の環境に合わせて適宜変更してください。 バケットの作成 データの転送先をBigQueryに作成 Cloud Storage から転送されたデータを格納するための、BigQuery のデータセットとテーブルを作成します。 今回は、以下のような簡単なスキーマを持つテーブルを例として作成します。 カラム名 データ型 name STRING value INTEGER   データセットの作成 Google Cloud コンソールの BigQuery 画面で、[スタジオ] > [エクスプローラ] のプロジェクト ID 横の [⋮] > [データセットを作成] を選択します。 データセットを作成を選択 データセット ID に event_driven_bq_data_transfer 、ロケーション タイプに リージョン と asia-northeast1 (東京) を入力し、[データセットを作成] を選択します。 データセットを作成 テーブルの作成 作成したデータセットの横にある [⋮] から [テーブルを作成] を選択します。 テーブルを作成を選択 テーブルに from_gcs 、スキーマの [フィールドを追加] リンクを選択し、以下の項目を追加します。追加が完了した後に [テーブルを作成] を選択します。 フィールド名 種類 name STRING value INTEGER テーブルを作成 BigQuery Data Transfer Serviceで転送構成を作成 Google Cloud コンソールの BigQuery 画面で、[データ転送] > [転送を作成] を選択します。 転送を作成を選択 ソースに Google Cloud Storage 、 表示名に event-driven-from-gcs 、スケジュール オプションの繰り返しの頻度に イベント ドリブン 、Pub/Sub サブスクリプションから [サブスクリプションの作成] を選択します。 転送の作成情報を入力(1/3) サブスクリプションを作成画面の [作成] ボタンを選択します。 サブスクリプションを作成 データセットに event_driven_bq_data_transfer 、Destination table に from_gcs 、Cloud Storage URI の [バケットの選択] を選択します。 転送の作成情報を入力(2/3) 前の手順で作成したバケット g-gen-blog-event_driven_bq_data_transfer を選択し、ファイル名に sample-file-*.csv を入力し、[選択] を選択します。 ここで指定したファイル名に一致したファイルが、データ転送の対象となります。 Cloud Storage URI の選択 サービス アカウントに前の手順で作成したサービスアカウント sv-event-driven-bq-data-transf@⋯ を選択し、 [保存] を選択します。 取り込み対象ファイルのフォーマット(File format)やファイル内の区切り文字(Field delimiter)など、取り込み対象のデータ形式に合わせて設定値は適宜変更してください。 転送の作成情報を入力(3/3) 動作確認 全ての設定が完了したので、実際にファイルをアップロードして、データが自動的に BigQuery へ転送されることを確認します。 サンプルCSVファイルの作成 ローカルのPCに、 sample-file-1.csv という名前で以下の内容のファイルを作成します。 BigQuery Data Transfer Service の転送作成時に、 Header rows to skip の値を 0 に設定したため、ヘッダー行は設けません。 "name-1",1 "name-2",2 "name-3",3 CSVファイルを Cloud Storage へアップロード 作成した sample-file-1.csv を、Cloud Storage バケットにアップロードします。 CSV ファイルを Cloud Storage へアップロード BigQueryでのデータ確認 ファイルがアップロードされると、イベントがトリガーされ、最大 10 分間待機した後に転送が実行されます。 今回の確認では、Cloud Storage にファイルが作成された時間( 8:56:42 )から転送が開始( 9:01:44 )されるまでに、約5分かかっています。 転送の実行履歴 BigQuery 内の登録データ 福井 達也 (記事一覧) カスタマーサクセス課 エンジニア 2024年2月 G-gen JOIN 元はアプリケーションエンジニア(インフラはAWS)として、PM/PL・上流工程を担当。G-genのGoogle Cloudへの熱量、Google Cloudの魅力を味わいながら日々精進
アバター
G-gen の中川です。本記事では、Google Workspace ユーザーが他のドメインの Google Workspace グループアドレスを送信元としてメールを送信するための、設定手順を解説します。 はじめに 事前準備 Google グループの作成 別組織のユーザーの Google アカウントの設定 別組織のユーザーの Gmail の設定 グループメンバーによる確認 メール送信時の差出人設定 はじめに 別組織のユーザーが Google Workspace グループアドレスを送信元としてメールを送信したいという要件があります。例えば、外部の協力会社のユーザーが、自分たちのドメインとは異なるドメインの Google Workspace グループのメールアドレスを送信元としてメールを送りたいというケースがあります。 本記事では、そのような要件を実現するための手順と注意点について解説します。 なお、同じ組織のユーザーでグループアドレスを送信元として追加する方法は、以下の記事を参照してください。 blog.g-gen.co.jp また当記事の情報は、2025年5月時点における当社の検証に基づくものであり、公式ドキュメントには記載されておりませんため、仕様が変更になる可能性がある点にはご留意ください。 事前準備 当記事では、メインの Google Workspace ドメインを @example.co.jp 、別組織側のドメインを @different-domain.com として解説します。 なお、当記事では両ドメインとも Google Workspace のメールアドレスで検証を行いますが、当記事の手順により、個人向けの Google アカウント ( @gmail.com ) でも Google Workspace グループアドレスを送信元として追加できます。 まず、別組織 ( @different-domain.com ) の Google Workspace の管理コンソールで、以下の設定が有効になっている必要があります。 2 段階認証プロセス メールドメインの外部でホストされている「送信元」アドレスを設定した場合に、ユーザーに外部の SMTP サーバーを経由したメールの送信を許可 詳細は以下の公式ドキュメントを参照してください。 参考 : 2 段階認証プロセスを導入する 参考 : ユーザーごとの送信ゲートウェイの許可 Google グループの作成 送信元としたい Google グループ ( group@example.co.jp ) を作成します。 具体的な方法は上記で紹介した以下の記事の「設定1 : Google グループ作成」をご参照ください。 参考 : Google Workspace で問い合わせ対応システムを作成する方法 #2 (Google グループ設定) - G-gen Tech Blog - 設定1 : Google グループ作成 既にグループを作成済みの場合は、アクセスタイプの「投稿できるユーザー」が「外部」になっているかを確認します。 別組織のユーザーの Google アカウントの設定 送信を行う別組織のユーザー ( user@different-domain.com ) の Google アカウントの設定をします。 2 段階認証プロセス が有効になっていない場合は 2 段階認証プロセスを設定します。アプリ パスワードの作成には、2 段階認証が有効になっている必要があります。 参考 : 2 段階認証プロセスを有効にする 次に アプリ パスワード を作成します。 任意の名前を「アプリ名」(送信用グループアドレス)に入力し「作成」をクリックします。 生成されたアプリ パスワードを控えてください。このパスワードは、Gmail の SMTP 設定で使用します。 参考 : アプリ パスワードでログインする 別組織のユーザーの Gmail の設定 別組織のユーザー ( user@different-domain.com ) の Gmail にアクセスします。 右上の歯車アイコンをクリックし、「すべての設定を表示」を選択します。 上部のタブから「アカウント」または「アカウントとインポート」を選択します。次に、「他のメールアドレスを追加」をクリックします。 表示されたウィンドウに、以下の情報を入力します。 設定項目 設定値 名前 任意のグループ名 (送信用グループアドレス) メール グループアドレス ( group@example.com ) エイリアスとして扱います。 有効 「次のステップ」をクリックします。 「SMTP サーバー経由で送信」を選択し、以下の情報を入力します。 設定項目 設定値 SMTP サーバー smtp.gmail.com ユーザー名 別組織のユーザーのメールアドレス ( user@different-domain.com ) パスワード 作成したアプリ パスワード ポート 587 TLS を使用したセキュリティで保護された接続(推奨) 選択 「アカウントを追加」をクリックします。 グループメンバーによる確認 グループのメンバー宛に確認メールが送信されます。 グループのメンバーは、受信した確認メール内のリンクをクリックしてリクエストを承認します。 確認メールが見当たらない場合は、Google グループの「スレッド」をご確認ください。 メール送信時の差出人設定 上記の手順が完了すると、Gmail でメールを作成する際に、「差出人」の項目で追加したグループのメールアドレスを選択できます。これにより、受信者にはグループアドレスからのメールとして表示されます。 中川 涼介 (記事一覧) クラウドソリューション部 クラウドサポート課 2024年11月、G-genに入社。Google Cloudを日々勉強中。 最近は怪談の動画にハマってます。
アバター
G-genの杉村です。Google の AI を活用したリサーチ・ライティングアシスタントである NotebookLM の各エディション(無償版、Pro 版、Enterprise 版)の違いについて詳しく解説します。 NotebookLM とは NotebookLM のエディション エディションの比較 どのエディションを選ぶべきか その他の注意点 ノートブックの共有可否 アクセス URL NotebookLM とは NotebookLM は、ユーザーがアップロードしたドキュメントやデータ(ソース)に基づいて、AI が質問応答、要約、アイデア生成などを行うリサーチ・ライティングアシスタントです。従来の検索エンジンや Gemini アプリとは異なり、NotebookLM はユーザーが提供した情報源のみに基づいて回答を生成するため、情報の信頼性をコントロールしやすい点が特徴です。 NotebookLM には無償版、Pro 版、Enterprise 版の3エディションがあります。当記事ではそれらの違いを解説します。 参考 : https://notebooklm.google.com/ 参考 : NotebookLM の詳細 - NotebookLM ヘルプ 参考 : NotebookLM Plusを使ってみた - G-gen Tech Blog NotebookLM NotebookLM のエディション NotebookLM には、2024年6月現在、以下の3つのエディションがあります。 名称 説明 NotebookLM(無償版) 基本的な機能を無料で使える個人ユーザー向けエディション。Google アカウント(Gmail アカウント)を作成すれば利用できる。 NotebookLM in Pro 利用上限が緩和された有償エディション。Google Workspace に付帯。個人でも Google AI Pro サブスクリプションを購入することで利用可能。旧称 NotebookLM Plus NotebookLM Enterprise 企業向けにセキュリティ、管理機能、サポートを強化した有償エディション。Google Cloud 上で提供される。 これらのエディションは、利用できる機能、扱えるデータ量、料金、セキュリティ機能などに違いがあります。以下で各エディションの詳細と比較を解説します。 なお、NotebookLM in Pro は以前(2025年5月頃)まで NotebookLM Plus と呼ばれていました。個人向けサブスクリプションのプラン名が Google AI Pro に変更されたのに伴い、NotebookLM Plus は NotebookLM in Pro へと改名 されました。 エディションの比較 各エディションの主な違いを以下にまとめます。以下の表は、2025年6月現在の英語版公式ドキュメントの情報に基づいています。 参考 : Learn about Pro capabilities in NotebookLM 参考 : Upgrade NotebookLM to the Pro plan 参考 : What is NotebookLM Enterprise? 比較観点 NotebookLM (無償版) NotebookLM in Pro NotebookLM Enterprise 料金 無料 Google Workspace のほとんどのエディションに付帯。 もしくは個人向けサブスクリプションである Google AI Pro に付帯 1ユーザーあたりの月額有償ライセンス (年間コミットあり) 主な対象ユーザー 個人 ・企業や組織 ・制限なしで NotebookLM を使いたい個人 企業や組織 最大ノートブック数 100 個 500 個 500 個 ノートブックあたりソース数 50 個 / ユーザー 300 個 / ユーザー 300 個 / ユーザー 処理回数制限 チャットクエリ : 50回 音声概要生成 : 3回 チャットクエリ : 500回 音声概要生成 : 20回 チャットクエリ : 500回 音声概要生成 : 20回 サポートするファイル形式 Web サイト、PDF、テキストファイル、Markdown、Google ドキュメント、Google スライド、YouTube、音声ファイル、画像ファイル、Microsoft Word ファイル (docx) 等 無償版と同様 無償版と同じファイル形式に加えて Microsoft PowerPoint (pptx)、Excel ファイル (xlsx) データ利用 モデルのトレーニングには使用されない。フィードバックを提供することを選択した場合、人間の審査担当者が内容を確認し、サービス改善に利用する場合がある。 どのような場合でもモデルのトレーニングには使用されない。人間のレビュワーにも閲覧されない。 どのような場合でもモデルのトレーニングには使用されない。人間のレビュワーにも閲覧されない。顧客データは顧客 Google Cloud プロジェクト内で管理される。 アクセス管理 個人アカウント Google Workspace アカウント (Google AI Pro サブスクリプションの場合個人アカウント) Google Workspace アカウントもしくは Entra ID など外部 IdP アカウント セキュリティ 標準的なアクセス制御 Google Workspace 管理画面で組織部門ごとに利用許可・禁止 ・IAM によるアクセス制御 ・VPC Service Controls によるきめ細かいアクセス制御 ノートブックの共有 個人 Google アカウントまたはインターネット全体に共有可能 同じ組織の Google アカウントまたはグループに共有可能(個人アカウントで Google AI Pro サブスクリプションを契約している場合は、個人 Google アカウントに対してのみ共有可能。またインターネット全体に共有可能) 同じ Google Cloud プロジェクトの NotebookLM Enterprise ユーザーにのみ共有可能 どのエディションを選ぶべきか 上の表で見たように、各エディションで利用回数やノートブック数、データソース数の上限や、セキュリティ機能、共有可能な範囲に違いがあります。 概ねの判断として、 個人ユーザー であれば NotebookLM(無償版)または NotebookLM in Pro(Google AI Pro サブスクリプション経由で購入)を選び、 企業等のユーザー であれば、統制が効く NotebookLM in Pro または NotebookLM Enterprise を選択します。 企業等の組織が、NotebookLM in Pro と NotebookLM Enterprise のどちらかを選ぶかについては、実施したい 統制の度合い と コスト を考えます。 機能面だけを見ると、NotebookLM in Pro の機能でも十分なケースが多いといえます。しかし NotebookLM Enterprise は Google Cloud と統合されており、IAM による詳細なアクセス制御や、VPC Service Controls を用いた IP アドレスベースの制御など、追加の統制機能が提供されています。 また NotebookLM Enterprise は、 Gemini Enterprise (旧称 Google Agentspace。横断検索およびエージェント機能を提供するサービス)と統合されたライセンスが購入可能です。生成 AI をフル活用した業務改善を行う際は、NotebookLM Enterprise は有力な選択肢となります。 参考 : Gemini Enterpriseを徹底解説! - G-gen Tech Blog 一方で、NotebookLM in Pro はほとんどすべての Google Workspace エディションに追加コストなしで付帯しているため、安価に NotebookLM の機能を使用したい場合に選択肢となります。 参考 : Google Workspace Business エディションの AI 機能と料金改定 その他の注意点 ノートブックの共有可否 個人アカウントで NotebookLM(無償版)もしくは NotebookLM in Pro を使っている場合は、個人アカウントに対してのみ、ノートブックの共有が可能です。Google Workspace の組織に所属するアカウントに対しては、 ノートブックを共有できません 。 Google Workspace アカウントを使っているユーザーは、 同じ組織 (Google Workspace ドメイン)で NotebookLM in Pro を使っているユーザに対してのみ、ノートブックの共有が可能です。 NotebookLM Enterprise のユーザーは、同じ Google Cloud プロジェクトに紐づく NotebookLM Enterprise のユーザーに対してのみ、ノートブックの共有が可能です。また、共有先のユーザーは同じ Workforce Identity Pool(IdP 間連携の設定)に所属している必要があります。 無償版、in Pro、Enterprise のノートブックは相互に共有することはできません。 参考 : Create a notebook in NotebookLM - NotebookLM Help 参考 : Share notebooks - NotebookLM Enterprise また、ノートブックをインターネットに公開できるのは、2025年10月初旬現在、無償版 NotebookLM と、個人アカウントで Google AI Pro サブスクリプションを購入している場合の NotebookLM in Pro のみです。 アクセス URL 無償版と in Pro の NotebookLM は、いずれも https://notebooklm.google.com/ からアクセスします。この URL にアクセスすると、無償版の Google アカウントでログインしている個人ユーザーであれば NotebookLM(無償版)が開き、Google Workspace ユーザーや Google AI Pro サブスクリプションのユーザーであれば、NotebookLM in Pro が開きます。 一方で、NotebookLM Enterprise はアクセス URL が異なります。NotebookLM Enterprise へのアクセス方法は2つあります。 Gemini Enterprise の画面から遷移する 専用のアクセス URL へアクセスする 1つ目の Gemini Enterprise の画面から遷移する方法は、Gemini Enterprise の左側のメニューから NotebookLM をクリックするだけです。 Gemini Enterprise の画面から遷移 2つ目の方法である NotebookLM Enterprise のアクセス専用 URL は、管理者によって Google Cloud コンソールから発行できます。Google Cloud コンソールで、検索テキストボックスに「NotebookLM」と入力するとサジェストされる「NotebookLM for Enterprise」画面に遷移すると、URL を発行できます。 URL がうまく発行できないときのトラブルシューティングについては、以下の記事末尾の「トラブルシューティング・参考情報」の見出しを参照してください。 参考 : Gemini Enterpriseを徹底解説! - G-gen Tech Blog - NotebookLM Enterprise アクセス用 URL が発行できない 杉村 勇馬 (記事一覧) 執行役員 CTO 元警察官という経歴を持つ IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。 Follow @y_sugi_it
アバター
G-gen の川村です。この記事では NotebookLM の マインドマップ 機能の活用方法を解説します。 NotebookLM とは マインドマップ機能とは 事前準備 ソースの追加 マインドマップの使い方 マインドマップ生成 操作方法 共有 活用シーン 1. 複雑な情報や大量の資料の全体像把握 2. 投影資料活用 3. 情報整理・可視化 4. 会議のネクストアクション整理 5. アイデア発想とブレインストーミングの促進 注意点 NotebookLM とは NotebookLM とは、Google ドキュメント、PDF、音声、YouTube 動画などをソースとして指定し、その情報を基に要約・FAQ・メモを生成できる Google 提供の AI ノートサービスです。 一般的な生成 AI チャットアプリと異なり、回答の出典をユーザーが明示的に制御できるため、業務利用において高い信頼性が確保されます。 無償版で利用できる NotebookLM、有償版の NotebookLM in Pro(旧 NotebookLM Plus)、より企業向けの機能を強化した NotebookLM Enterprise があり、それぞれの機能の違いや活用ユースケースについては以下ブログをご参照ください。 blog.g-gen.co.jp マインドマップ機能とは NotebookLM の マインドマップ機能 は簡単なクリック操作で、資料を「マインドマップ」形式に自動で整理し可視化する機能です。 本来の「マインドマップ」とは、中心となるテーマから関連するキーワードやアイデアを放射状に広げて整理する図のことで、思考や情報の構造を視覚的に捉えるための手法です。 従来、作成に多くの時間と手間を要しましたが、AI を活用することでこのプロセスを自動化し即座に整理できます。 参考 : Use Mind Maps in NotebookLM - NotebookLM ヘルプ マインドマップは、以下のようなシーンで役立ちます。 概要理解 : 大量の情報を要点ごとに整理し、学習や資料分析に活用 アイデア拡大 : 関連語や連想が促され、新しい発想を促進 記憶定着 : 視覚的に構造化され、記憶の定着に効果的 思考整理 : 複雑な情報も関係性ごとに可視化 事前準備 ソースの追加 NotebookLM に対象となるソースを追加します。 [ソース] からデータソースを追加するだけで準備完了です。(メインパネルに [マインドマップ] ボタンが表示されます) 参照 : Add or discover new sources for your notebook - Computer - NotebookLM ヘルプ マインドマップの使い方 マインドマップ生成 メインパネルの [マインドマップ] ボタンをクリックするとマインドマップが生成されます。 生成されたマインドマップをクリックすると、全画面に表示されます。 ソースで指定した資料の主要トピックと概要、またその関連性を視覚的にマインドマップ形式で自動整理、可視化されていることが確認できます。 今回は例として、金融庁が公開している PDF ファイルをソースとして指定しています。 参考 : https://www.fsa.go.jp/policy/nisa2/about/nisa2024/guidebook_202307.pdf 操作方法 マインドマップは静的な図としての利用だけでなく、動的な操作や機能が特徴です。 ズームとスクロール : マインドマップを拡大・縮小し、俯瞰的もしくは部分的に情報整理します。 ブランチの展開/折りたたみ : ノード(トピック)横のブランチで詳細なトピックの表示・非表示を切り替えられます。 ノードを選択して質問 : ノード(トピック)をクリックし、 NotebookLM に質問や出典元へ即座にアクセスできます。 ダウンロード、その他 : 開いている画面で画像(PNG形式)としてダウンロードや、マインドマップの最小化、終了ができます。 共有 NotebookLM で作成したマインドマップは、他ユーザーと共有できます。 参照 : Create a notebook in NotebookLM - NotebookLM ヘルプ 方法1 : ノートブックごと共有する マインドマップを作成したノートブック右上の「共有」からユーザーやグループに共有し、共有先の相手も同じマインドマップを Studio パネル(NotebookLM の右画面)から利用できます。ただしグループの追加は、無償版 NotebookLM では利用できません。 方法2 : マインドマップをダウンロードして共有する マインドマップウィンドウの右上にある「↓」よりダウンロードし、そのファイルをメールやチャットなどで送信し共有できます。 活用シーン 1. 複雑な情報や大量の資料の全体像把握 膨大な資料(学術論文や専門書)や学習教材などをマインドマップ化することで、情報間の階層構造や関連性が視覚的に示されるため、テキストよりも図解で全体像を掴みたい場合に有効です。 複雑な情報群の全体構造を、大項目から小項目まで直感的に理解できます。 また、出典元を確認したり復習したい項目がある場合は、ノードをクリックします。 その後、NotebookLM の回答からソースをクリックすることで、元の情報を確認できます。 2. 投影資料活用 セミナーやブログなどのコンテンツ配信の参考資料として活用できます。 例えば研修や教育の場でも、複数のトピックを順序立てて説明したり、視覚的に関係性を整理しながら解説することで受け取り手の理解を促進します。 3. 情報整理・可視化 ①管理コンソールの組織一覧をひと目で把握 Google Workspace の組織構造を一目で把握したい場合にも役立ちます。 以下手順でユーザー一覧のデータを整形し、マインドマップとして組織に展開できます。 Google Workspace 管理コンソールからユーザー情報をダウンロードし、Google ドライブでスプレッドシートに変換 必要な列 ( ユーザー名、組織、部署、役職列 ) のみ残して部署列でソートし、CSV 形式でダウンロード データを TXT ファイルへ変換後、 NotebookLM のソースに追加し [マインドマップ] ボタンをクリック ②顧客フィードバックとサービス改善点の発見 顧客サポート記録やアンケート結果をマインドマップで整理すると、未整理の内容も AI で自動で分析・カテゴライズ し、「ポジティブ」と「改善要望」のようにノードを分けて表示します。 頻出する要望やクレームの種類、特定の機能への評価などが可視化され、具体的なサービス改善点の発見に役立ちます。 4. 会議のネクストアクション整理 会議の音声ファイルや議事録をアップロードしマインドマップ機能を利用すると、会議内容(主な議題、決定事項、担当者、期限など)が視覚的に整理されます。 これにより、関連課題の抜け漏れやネクストアクションの明確化が期待でき、課題整理やアイデア創出に役立ちます。 5. アイデア発想とブレインストーミングの促進 マインドマップは自由な連想を促し、新たなアイデアや視点を見つけたり複数のアイデアを組み合わせたりすることができます。 例えば、自身の経歴や実績、関心事などを記述した文章をソースとしてマインドマップを作成します。 これにより、「職務経験」で培ったスキルと「個人的な興味」が将来の「目標」達成にどう結びつくかなど、要素間の意外な繋がりや相乗効果を発見できる可能性があります。 これは、新たな視点の発見やモチベーション向上にもつながるでしょう。 注意点 以下の注意点に留意してください。ただし、今後のアップデートにより変更される可能性があります。 NotebookLM モバイルアプリは現在この機能をサポートしていません。 現時点ではマインドマップの修正は行えません。 川村真理 (記事一覧) クラウドソリューション部 クラウドサポート課 美容業界からITへ転身。Google Workspace 専任サポートから Google Cloud にも興味が湧き日々奮闘中。海外旅行が大好きで11カ国突破、これからも更新予定
アバター
G-gen の min です。Looker Studio レポートに表示するデータを、閲覧者のメールアドレスに基づいて動的に制限する方法を解説します。 概要 設定方法 検証 データソースへのアクセスを許可した場合 データソースへのアクセスを許可しない場合 概要 Looker Studio で作成したレポートを複数のユーザーで共有する際に、同じレポートでありながら、閲覧するユーザーのメールアドレスに応じて表示されるデータを出し分けたいという要件があります。例えば、営業担当者ごとに自身の売上データのみを表示する、といったケースです。 Looker Studio では、データソースに「 メールアドレスでフィルタ 」を設定することで、このような行レベルのデータセキュリティを実現できます。この機能を利用すると、レポート閲覧時に自身のデータソースへのアクセス許可を求めるダイアログが表示されます。閲覧者がアクセスを許可すると、データソースはそのメールアドレスに関連付けられたデータのみを返します。 参考 : メールアドレスでフィルタする 設定方法 以下に、データソースにメールアドレスフィルタを設定する手順を説明します。 メニューから [リソース] > [追加済みのデータソースの管理] を選択します。 対象のデータソースから [アクション] > [編集] をクリックします。 データソースエディタ画面の上部にある [メールアドレスでフィルタ] をクリックします。 「閲覧者のメールアドレスでデータをフィルタリングする」というダイアログが表示されます。[閲覧者のメールアドレスでデータをフィルタ] というチェックボックスをオンにします。 ※このとき、以下のようなガイドが表示され、データソースへのアクセス許可を求められます。許可します。 [メールアドレス項目] のプルダウンメニューから、データセット内で閲覧者のメールアドレスが格納されているフィールド(例: 担当者Emailアドレス フィールド)を選択します。このフィールドのデータ型はテキストである必要があります。 右上の [完了] をクリックします。 上記の設定により、このデータソースを使用するすべてのレポートで、メールアドレスによるフィルタが有効です。 検証 メールアドレスによるフィルタが設定されたレポートを、異なるメールアドレスを持つユーザーが閲覧した際の動作を検証します。 前提として、基になるデータセットには、レポートにアクセスする各ユーザーの完全なメールアドレスが含まれている必要があります。 ここでは、以下の2つのユーザーアカウントで検証します。 ユーザー A : user-a@example.com ユーザー B : user-b@example.com データソースには、各ユーザーのメールアドレスと関連するデータ「各担当者の売上成績サンプル」が含まれています。 レポートを閲覧しようとすると、まず以下のようなダイアログが表示され、データソースへのアクセス許可を求められます。 データソースへのアクセスを許可した場合 ユーザーが [許可] をクリックしてメールアドレスへのアクセスに同意すると、レポートにはそのユーザーのメールアドレスに関連付けられたデータのみが表示されます。 例えば、ユーザー A(user-a@example.com)がレポートを閲覧すると、データソースは user-a@example.com に紐づくデータのみを返すため、ユーザーAに関連する情報だけが表示されます。 同様に、ユーザー B(user-b@example.com)が同じレポートを閲覧すると、ユーザー B に関連する情報だけが表示されます。 このようにして、単一のレポートでユーザーごとに表示データを切り替えられます。 なお、一度同意した場合でも、ユーザーは後からその同意を取り消せます。同意の取り消しは、 Looker Studio ログイン後の、右上の設定アイコンから行えます。 [同意を取り消す] > [すべて取り消す] を選択します。 参考 : メールへのアクセス権を取り消す データソースへのアクセスを許可しない場合 ユーザーがデータソースへのアクセス許可を求めるダイアログで [許可しない] をクリックした場合、またはダイアログを閉じた場合、データソースはメールアドレスによるフィルタリングを行えません。 その結果、データソースに基づくレポートのコンポーネント(グラフや表など)には、「このコンポーネントはデータを読み込むにあたりお客様の同意を必要としています。」といったメッセージが表示され、実際のデータは表示されません。 佐々木 愛美 (min) (記事一覧) クラウドソリューション部 データアナリティクス課。2024年7月 G-gen にジョイン。G-gen 最南端、沖縄県在住。最近覚えた島言葉は、「マヤー(猫)」。
アバター
G-gen の三浦です。当記事では、 Chrome Enterprise Premium を利用して Web ブラウザのセキュリティを強化する方法を紹介します。 概要 Chrome Enterprise Premium とは Core と Premium 検証手順 URL フィルタリングの検証 設定手順 動作確認 DLP の検証 設定手順 動作確認 概要 Chrome Enterprise Premium とは Chrome Enterprise Premium (旧称 BeyondCorp Enterprise)は、Google が提供する Chrome ブラウザのセキュリティを強化するサービスです。 組織のポリシーに応じて、 ゲーム などのカテゴリに対する URL フィルタリング や、 データ損失防止(DLP) 機能を設定し、機密情報のアップロードなどを制御できます。 詳細やその他の機能については、以下の記事および公式ドキュメントをご参照ください。 参考 : Chrome Enterprise Premium でブラウザの セキュリティ を強化 blog.g-gen.co.jp Core と Premium Chrome Enterprise は、 Core(無償) と Premium(有償) の2つのプランに分かれています。 Core では、Chrome ブラウザの基本的な管理機能(ポリシー管理、拡張機能の管理など)を利用できます。 一方、 Premium は DLP による情報漏えい対策や、ブラウザ経由のマルウェア対策など、より高度なセキュリティ機能を使用できます。 両プランの詳細な機能差分については、以下の公式ドキュメントをご参照ください。 参考 : Chrome Enterprise Premium でブラウザの セキュリティ を強化 検証手順 検証手順は次のとおりです。 項番 内容 説明 1 URL フィルタリングの設定 カテゴリ「写真・動画共有」へのアクセスをブロックするルールを設定します。 2 URL フィルタリングの動作確認 YouTube へアクセスし、ブロックされることを確認します。 3 DLP の設定 「社外秘」という文字列を含むファイルのアップロードをブロックするルールを設定します。 4 DLP の動作確認 条件を満たすファイルを Google Cloud の Cloud Storage バケットにアップロードし、ブロックされることを確認します。 URL フィルタリングの検証 設定手順 Google Workspace の管理コンソール( https://admin.google.com )にログインします。 参考 : 管理コンソールにログインする [Chrome ブラウザ] > [レポート] > [セキュリティ インサイト] に移動し、[有効にする] を選択します。 有効にするを選択 参考 : 組織内部のリスクとデータ損失のモニタリング 内容を確認し、[有効にする] を選択します。 有効にするを選択 [セキュリティ] > [アクセスとデータ管理] > [データの保護] に移動し、[ルールを管理] を選択します。 ルールを管理を選択 [ルールを追加] > [新しいルール] を選択します。 新しいルールを選択 以下を設定し、[続行] を選択します。 名前:任意のルール名 範囲:ルールの適用範囲を選択( 組織全体 か 特定の組織部門 、 Google グループ から選択) ルール作成1 以下を設定し、[続行] を選択します。 Chrome : アクセスした URL ルール作成2 [条件を追加] > [URL のカテゴリ] > [カテゴリを選択] から対象のカテゴリを選択します。 ルール作成3 ルール作成4 内容を確認し、[続行] を選択します。 ※ コンテキストの条件 から、コンテキストアウェアアクセスで指定した条件(例 : 会社所有の端末からのアクセス)を満たした場合のみ、ルールを適用させることができます。使用例として、特定の端末のみ、カテゴリ クラウド ストレージ に該当する URL へのアクセスを許可すること等ができます。 ルール作成5 以下のとおりに設定し、[続行] を選択します。 操作 Chrome: ブロック アラート 重大度: 高 アラートセンターに送信する: 有効化 し、送信者を指定 ルール作成6 ルール作成7 設定内容を確認し、[作成] を選択します。 ルール作成8 動作確認 Chrome ブラウザで YouTube( https://www.youtube.com )にアクセスし、ページが表示されないことを確認します。 ブロック確認(URLフィルタリング) [レポート] > [監査と調査] > [Chrome のログイベント] から以下条件で検索することで、ブロック時のログを確認できます。 イベントの結果 次に一致 ブロック中 ブロック時のログ確認1 ブロック時のログ確認2 DLP の検証 設定手順 [セキュリティ] > [アクセスとデータ管理] > [データの保護] に移動し、[ルールを管理] を選択します。 ルールを管理を選択 [ルールを追加] > [新しいルール] を選択します。 新しいルールを選択 以下を設定し、[続行] を選択します。 名前:任意のルール名 範囲:ルールの適用範囲を選択( 組織全体 か 特定の組織部門 、 Google グループ から選択) ルール作成1 以下を設定し、[続行] を選択します。 Chrome : アップロードされたファイル ルール作成2 検出条件として、 社外秘 という文字列を含むファイルにルールが適用されるように設定し、[続行] を選択します。 ルール作成3 以下のとおりに設定し、[続行] を選択します。 操作 Chrome: ブロック アラート 重大度: 高 アラートセンターに送信する: 有効化 し、送信者を指定 ルール作成4 ルール作成5 設定内容を確認し、[作成] を選択します。 ルール作成6 動作確認 テスト用のファイルを準備します。 テストファイル Cloud Storage のバケットへファイルをアップロードします。 Cloud Storageへのアップロード 警告が表示され、アップロードに失敗することを確認します。 アップロード動作確認1 アップロード動作確認2 URL フィルタリングと同様に [レポート] > [監査と調査] > [Chrome のログイベント] から以下条件で検索することで、ブロック時のログを確認できます。 イベントの結果 次に一致 ブロック中 ブロック時のログ確認1 ブロック時のログ確認2 三浦 健斗 (記事一覧) クラウドソリューション部 2023年10月よりG-genにジョイン。元オンプレ中心のネットワークエンジニア。ネットワーク・セキュリティ・唐揚げ・辛いものが好き。
アバター
G-gen の佐々木です。当記事では AlloyDB for PostgreSQL の停止・起動および再起動オペレーションについて解説します。 前提知識 AlloyDB for PostgreSQL とは AlloyDB の料金の基本 インスタンスの停止・起動 停止・起動の仕様 Activation policy 停止・起動の影響 読み取りプールインスタンスやセカンダリクラスタがある場合の注意点 インスタンスの停止オペレーション インスタンスの起動オペレーション インスタンスの再起動 再起動の仕様 インスタンスの再起動オペレーション 各オペレーションの記録 前提知識 AlloyDB for PostgreSQL とは AlloyDB for PostgreSQL (以下、AlloyDB) は、Google Cloud の高性能な PostgreSQL 互換のフルマネージドサービスです。 AlloyDB は Cloud SQL 同様に、リレーショナル データベースを提供するサービスですが、パフォーマンス、可用性、スケーラビリティの面で優れています。 また独自のストレージ機構により、標準の PostgreSQL と比較してオンライン分析処理(OLAP)のパフォーマンスが非常に高いという特性があります。 AlloyDB の詳細については以下の記事をご一読ください。 blog.g-gen.co.jp AlloyDB の料金の基本 AlloyDB は従量課金制であり、以下の軸で料金が発生します。 コンピューティングリソース(CPU/メモリ) ストレージ(バックアップ含む) ネットワーク(リージョン間の egress のみ) このうち、主にコンピューティングリソースの利用料金がインスタンスの停止・起動による影響を受けます。 参考 : AlloyDB for PostgreSQL pricing インスタンスの停止・起動 停止・起動の仕様 AlloyDB クラスタのプライマリインスタンスや読み取りプールインスタンスは、停止・起動・再起動が可能です。 停止したインスタンスに対しては、コンピューティング料金が発生しません。このため、開発環境インスタンス等の料金の節約に繋がります。ただし、停止してもストレージ料金は引き続き発生します。 参考 : Start, stop, or restart instances Activation policy AlloyDB は、Activation policy という設定値を用いてデータベース インスタンスの状態を操作します。 Activation policy の設定値として以下の2種類があります。 設定値 説明 ALWAYS インスタンスが稼働している状態を指す。 NEVER インスタンスが停止し、データベース接続を受け入れていない状態を指す。 この状態ではコンピューティングリソース料金が発生しない。 停止・起動の影響 インスタンスの停止・起動を行うと、以下のような影響があります。 インスタンスを停止すると、インスタンスのコンピューティング料金が発生しない(ストレージ料金は引き続き発生)。 インスタンスを停止すると、自動アップデートが停止される(自動バックアップは引き続き行われる)。 停止しているインスタンスを起動すると、データベースの最新のマイナーバージョンが適用される。このバージョン適用はメンテナンスの拒否期間を無視して行われる。 また、インスタンスでパブリック IP アドレスを有効化している場合、停止・起動オペレーションによってパブリック IP アドレスが変わることはありません。この場合、インスタンスの停止中も静的 IP アドレスの料金が発生します。 インスタンスのプライベート IP アドレスについても停止・起動によって変化することはありません。 参考 : External IP address pricing 読み取りプールインスタンスやセカンダリクラスタがある場合の注意点 インスタンスの停止・起動オペレーションは、AlloyDB の プライマリインスタンス 、 読み取りプールインスタンス のどちらでも行うことができます。 プライマリインスタンスを停止する前に、必ず読み取りプールインスタンスを停止する必要があります。読み取りプールインスタンスが起動している状態でプライマリインスタンスの停止オペレーションを行うと、以下のようなエラーが発生します。 ERROR: (gcloud.alloydb.instances.update) FAILED_PRECONDITION: Invalid resource state for "projects/<プロジェクト番号>locations/asia-northeast1/clusters/<クラスタ ID>/instances/<インスタンス ID>": activation policy for primary instance can only be updated to NEVER only when all read instances are stopped, found read instance test-reader in READY state 停止とは逆に、起動オペレーションでは必ずプライマリインスタンスから起動する必要があります。プライマリインスタンスが停止している状態で読み取りプールインスタンスの起動オペレーションを行うと、以下のようなエラーが発生します。 ERROR: (gcloud.alloydb.instances.update) FAILED_PRECONDITION: Invalid resource state for "projects/<プロジェクト番号>/locations/asia-northeast1/<クラスタ ID>/test/instances/<インスタンス ID>": The parent cluster contains a PRIMARY instance "projects/<プロジェクト番号>/locations/asia-northeast1/clusters/<クラスタ ID>/instances/<インスタンス ID>", but it is not in a READY state (got state: STOPPED) また、クラスタに セカンダリクラスタ (クロスリージョンレプリケーション クラスタ)がある場合は、プライマリインスタンスを停止することができません。停止のためにはセカンダリクラスタを昇格もしくは削除する必要があります。 セカンダリクラスタがある状態でプライマリインスタンスの停止オペレーションを行うと、以下のようなエラーが発生します。 ERROR: (gcloud.alloydb.instances.update) FAILED_PRECONDITION: Invalid resource state for "projects/<プロジェクト番号>/locations/asia-northeast1/clusters/<クラスタ ID>/instances/<インスタンス ID>": activation policy for primary instance can only be updated to NEVER only when there is no CRR enabled なお、セカンダリクラスタのインスタンスを停止することはできません。 インスタンスの停止オペレーション インスタンスの停止・起動オペレーションは、コンソールや gcloud CLI 等から行うことができます。 停止オペレーションは以下のコマンドで実行することができます。クラスタの更新オペレーションで Activation policy を NEVER に設定することがポイントです。 # AlloyDB インスタンスを停止する $ gcloud alloydb instances update < 停止対象インスタンスの ID > \ --region =< クラスタのリージョン > \ --cluster =< クラスタの ID > \ --activation-policy = NEVER 読み取りプールインスタンスを停止する場合は、 <停止対象インスタンスの ID> に読み取りプールインスタンスの ID を指定します。 インスタンスの停止時間の参考として、作成したばかりの最小サイズのインスタンスで停止に5分ほどかかりました。 インスタンスの起動オペレーション インスタンスの起動オペレーションは以下のコマンドで実行することができます。起動の場合は Activation policy を ALWAYS に設定することがポイントです。 # AlloyDB インスタンスを起動する $ gcloud alloydb instances update < 起動対象インスタンスの ID > \ --region =< クラスタのリージョン > \ --cluster =< クラスタの ID > \ --activation-policy = ALWAYS インスタンスの起動時間の参考として、作成したばかりの最小サイズのインスタンスで起動に8分ほどかかりました。 インスタンスの再起動 再起動の仕様 インスタンスの再起動を行うと、再起動が完了して準備が整うまでインスタンスの接続がすべて中断されます。 インスタンスの再起動によるプライベート IP アドレスおよびパブリック IP アドレスの変化はありません。 セカンダリインスタンスやリードプールインスタンスの個別ノードは、停止・起動はできず、起動中のインスタンス・ノードの再起動のみが可能です。 インスタンスの再起動オペレーション インスタンスの再起動も、コンソールや gcloud CLI 等から行うことができます。 再起動オペレーションは以下のコマンドで実行することができます。停止・起動オペレーションと異なり、専用の restart コマンドがあります。 # AlloyDB インスタンスを再起動する $ gcloud alloydb instances restart < 再起動対象インスタンスの ID > \ --region =< クラスタのリージョン > \ --cluster =< クラスタの ID > \ [ --async ] 再起動中に AlloyDB Studio からクエリを試したところ、再起動中であってもクエリを実行することができました。 再起動中にクエリを実行した場合、結果が返ってくる場合もある しかし、クエリの成功は保証されていないため、基本的には再起動であってもデータベースを使用しない時間帯に行うことが推奨されます。 インスタンスの再起動時間の参考として、作成したばかりの最小サイズのインスタンスで再起動までに13分ほどかかりました。 各オペレーションの記録 オペレーションの実行記録はコンソールから確認することができますが、停止・起動オペレーションは「インスタンスの更新」としてまとめられてしまうようです。 停止・起動オペレーションは「インスタンスの更新」にまとめられている 佐々木 駿太 (記事一覧) G-gen最北端、北海道在住のクラウドソリューション部エンジニア 2022年6月にG-genにジョイン。Google Cloud Partner Top Engineer 2025 Fellowに選出。好きなGoogle CloudプロダクトはCloud Run。 趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。 Follow @sasashun0805
アバター
G-gen の佐々木です。当記事では Pub/Sub の Single Message Transforms(SMTs) 機能によるメッセージの変換処理について解説します。 前提知識 : Pub/Sub とは Single Message Transforms(SMTs)とは SMTs の基本 SMTs のユースケース UDF による定義 SMTs の注意事項 当記事の構成 宛先 BigQuery テーブルの作成 SMTs を設定した Pub/Sub トピックの作成 SMTs を設定した Pub/Sub サブスクリプションの作成 users テーブルに書き込むサブスクリプション scores テーブルに書き込むサブスクリプション メッセージの送信 前提知識 : Pub/Sub とは Pub/Sub は、Google Cloud のフルマネージドなメッセージングサービスです。 Pub/Sub を始めとしたメッセージングサービスの詳細やユースケースについては、以下の記事をご一読ください。 blog.g-gen.co.jp Single Message Transforms(SMTs)とは SMTs の基本 Single Message Transforms (以下、 SMTs )は、Pub/Sub を使用したストリーミング パイプラインにおける単純なデータ変換を実現する機能です。 SMTs では Pub/Sub 自体にデータの変換処理を実装することで、Pub/Sub の前後で(Dataflow や Cloud Run functions などを使用して)データ変換処理を行うような、パイプラインの複雑化を回避することができます。 SMTs によるデータ変換処理は、Pub/Sub の トピック と サブスクリプション のそれぞれに対して設定することができます。 SMTs の設定箇所 変換処理のタイミング ユースケース トピック メッセージがトピックに永続化される前に変換が行われる。 ・サブスクリプションが複数ある場合に、共通の変換処理を行う。 ・後続の処理に渡すメッセージのデータ量を削減する。 ・無効なメッセージを検証してパブリッシュを抑制する。 サブスクリプション メッセージがサブスクリプションに配信される前に変換が行われる。 ・サブスクリプション特有の変換処理を行う。 ・無効なメッセージをデッドレタートピックに書き込んでアーカイブする。 SMTs はトピックとサブスクリプションに設定することができる SMTs は対象ごとに最大5個まで設定することができ、上に設定したものから順番に実行されます。 SMTs を複数設定すると上から順に実行される(順番は変更できる) 参考 : Single Message Transforms (SMTs) overview 参考 : Choose topic or subscription SMTs SMTs のユースケース SMTs のユースケースを以下に示します。 文字列操作、日付の書式変換、数値計算など、単純なデータ変換 異なるシステム間で互換性を担保するためのデータ形式の変換 クレジットカード番号や個人情報(PII)などのデータのマスキング・編集 不要なメッセージの破棄(フィルタリング) メッセージのフィルタリングについては Pub/Sub 組み込みのフィルタリング機能で実現することもできますが、SMTs ではより複雑な条件でフィルタリングを行うことができます。 参考 : Filter messages from a subscription UDF による定義 SMTs は、JavaScript による User-Defined Function(UDF) を使用して実装します。 SMTs で使用する UDF は、単一のメッセージを message 引数として受け取り、処理の結果を返します。 function <関数名 > ( message , metadata ) { // ここに処理内容を記述 return message ; // 戻り値は `null` も可能 } メッセージのペイロードは message.data 、メッセージ属性の KeyValue ペアは message.attributes で取得できます。UDF の戻り値を null とした場合、処理対象のメッセージは破棄されます。 なお、UDF でエラーが発生した場合は、トピックの SMTs であればパブリッシャーにエラーを返し、サブスクリプションの SMTs であればメッセージを否定応答(nack)します。 SMTs における UDF の詳細については以下のドキュメントを参照してください。 参考 : User Defined Functions (UDFs) overview SMTs の注意事項 SMTs を使用する際の注意事項を以下に示します。 SMTs はトピックおよびサブスクリプションのそれぞれに対して 最大5つ まで設定可能 SMTs は単一のメッセージに対して動作するものであり、複数のメッセージを集約するような処理はできない 順序付けが有効になっているメッセージ に対する SMTs の処理がエラーとなった場合、後続のメッセージは配信されない。この場合、 デッドレタートピック を使用してエラーが発生したメッセージをバッグログから削除する必要がある また、UDF の実行には以下の制限があります。 UDF あたりのコード量は最大20KB メッセージごとの UDF の最大実行時間(タイムアウト)は500ミリ秒 外部 API の呼び出しは不可 外部ライブラリのインポートは不可 これらの制限に抵触するような処理を実行したい場合は、Dataflow や Cloud Run functions を用いた実装を検討するとよいでしょう。 当記事の構成 当記事では BigQuery サブスクリプション を使用し、トピックとサブスクリプションに SMTs を設定して、変換後のメッセージを BigQuery テーブルに書き込む処理を試してみます。 トピックとサブスクリプションの両方で SMTs によるメッセージ変換を行い、2つのテーブル(users, scores)に異なるデータを挿入してみます。 トピックとサブスクリプションで SMTs を使用するサンプル構成 まず、トピックの SMTs では、メッセージのペイロード内の id フィールドの値を、int 型から string 型に変換します。 そして、トピックで変換したメッセージを各サブスクリプションの SMTs で処理します。 BigQuery サブスクリプションを2つ用意して、一方では score フィールドを削除して users テーブルに書き込み、もう一方では name フィールドを削除して scores テーブルに書き込みます。 BigQuery サブスクリプションの詳細については、以下の記事をご一読ください。 blog.g-gen.co.jp 宛先 BigQuery テーブルの作成 まず、BigQuery サブスクリプションの宛先となるテーブルを2つ作成します。 1つ目の users テーブルは以下のスキーマで作成します。 フィールド名 種類 id STRING name STRING users テーブルのスキーマ 2つ目の scores テーブルは以下のスキーマで作成します。 フィールド名 種類 id STRING score INTEGER scores テーブルのスキーマ SMTs を設定した Pub/Sub トピックの作成 パブリッシャーからメッセージを受け取るトピックを作成します。 トピック作成画面の「変換」項目で、トピックで実行される SMTs を設定することができます。 関数名に convertIdToString と入力し、以下の UDF を記述します。 // convertIdToString 関数 function convertIdToString ( message , metadata ) { const data = JSON . parse ( message . data ) ; data [ 'id' ] = String ( data [ "id" ]) ; message . data = JSON . stringify ( data ) ; return message ; } この UDF により、メッセージペイロード(data)の id フィールドが int 型から string 型に変換され、 id フィールド変換後のメッセージ全体が後続のサブスクリプションに送信されます。 SMTs によるメッセージ変換を行うトピックを作成する SMTs を設定した Pub/Sub サブスクリプションの作成 users テーブルに書き込むサブスクリプション users テーブルに id と name のデータを書き込む BigQuery サブスクリプションを作成します。 まず、サブスクリプション作成画面の「配信タイプ」項目で「BigQuery への書き込み」にチェックを入れ、 users テーブルを指定します。 そして、メッセージペイロードのフィールド名をテーブルの列名と対応づけるため、「スキーマ構成」項目で「テーブル スキーマを使用する」にチェックを入れます。 BigQuery の users テーブルへの書き込み設定 「変換」項目で、サブスクリプションで実行される SMTs を設定することができます。 関数名に deleteScore と入力し、以下の UDF を記述します。 // deleteScore 関数 function deleteScore ( message , metadata ) { const data = JSON . parse ( message . data ) ; delete data [ 'score' ] ; message . data = JSON . stringify ( data ) ; return message ; } この UDF により、メッセージペイロードの score フィールドが削除され、削除後のメッセージが BigQuery の users テーブルに書き込まれます。 users テーブルに書き込むサブスクリプションの SMTs を設定する scores テーブルに書き込むサブスクリプション 先ほどと同様に、今度は scores テーブルに書き込むサブスクリプションを作成します。 BigQuery の scores テーブルへの書き込み設定 「変換」項目にて、関数名に deleteName と入力し、以下の UDF を記述します。 // deleteName 関数 function deleteName ( message , metadata ) { const data = JSON . parse ( message . data ) ; delete data [ 'name' ] ; message . data = JSON . stringify ( data ) ; return message ; } この UDF により、メッセージペイロードの name フィールドが削除され、削除後のメッセージが BigQuery の scores テーブルに書き込まれます。 scores テーブルに書き込むサブスクリプションの SMTs を設定する メッセージの送信 SMTs を設定したトピック、サブスクリプションの準備が完了したので、動作確認を行います。 トピックの詳細画面から「メッセージ」タブを開き、「メッセージをパブリッシュ」を押下します。 「メッセージ本文」に以下のメッセージを記述し、「公開」を押下してメッセージをパブリッシュします。 { " id ": 1001 , " name ":" sasashun ", " score ": 100 } このメッセージの id フィールドの値は int 型であり、対応する BigQuery テーブルの id 列は STRING 型であるため、トピックの SMTs で型の変換を行います。 その後、 users テーブルに書き込むサブスクリプションでは scores フィールドを、 scores テーブルに書き込むサブスクリプションでは name フィールドを、それぞれ SMTs を使用して削除します。 テストメッセージのパブリッシュ メッセージのパブリッシュ後、BigQuery の各テーブルを確認してみます。 users テーブルには、最初にトピックで id フィールドの値を int 型から string 型に変換し、次にサブスクリプションで score フィールドが削除された結果のデータが挿入されています。 users テーブルの SELECT クエリ結果 scores テーブルには、最初にトピックで id フィールドの値を int 型から string 型に変換し、次にサブスクリプションで name フィールドが削除された結果のデータが挿入されています。 scores テーブルの SELECT クエリ結果 佐々木 駿太 (記事一覧) G-gen最北端、北海道在住のクラウドソリューション部エンジニア 2022年6月にG-genにジョイン。Google Cloud Partner Top Engineer 2025 Fellowに選出。好きなGoogle CloudプロダクトはCloud Run。 趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。 Follow @sasashun0805
アバター
G-gen の杉村です。当社 G-gen では、Google の生成 AI サービスを積極的に業務で利用しています。本記事では、Gemini API や Gemini for Google Workspace を G-gen の従業員がどのように利用しているか、具体的な事例を交えて紹介します。 はじめに 本記事について G-gen の業務環境と Gemini Gemini の進化 データの保護 Gemini アプリ Gemini アプリとは 生成や解説、要約 Gems を利用した特定タスクの効率化 ブログ記事・ドキュメントの草案作成 レビュー・アイデア出し ソースコード生成 Deep Research による調査レポート NotebookLM NotebookLM とは 個人ドキュメントの整理・要約 ポッドキャスト風音声の生成 FAQ 作成 Google Meet Google Meet と Gemini 発言内容の文字起こし 会議の要約とアクションアイテム抽出 Google ドキュメント Google ドキュメントと Gemini 文章の生成・修正 ドキュメントの要約 Gmail Gmail と Gemini メールの下書き作成 文章の推敲 予定の作成 和英・英和翻訳 Google スライド Google スライドと Gemini 画像生成 テキストコンテンツの草案作成 スピーカーノートの作成 Google スプレッドシート Google スプレッドシートと Gemini テンプレートの作成や関数の生成 データ整理と分析のアイデア出し Gemini Code Assist Gemini Code Assist とは コード生成・補完 コードの説明・レビュー コードレポジトリとの連携 Generative AI on Vertex AI Vertex AI と Gemini 議事録作成を効率化 技術サポート窓口やブログ記事のナレッジ活用 Slack チャットボット 最新技術アップデートの要約 はじめに 本記事について 本記事では、G-gen 社内における具体的な Gemini の活用事例を紹介します。生成 AI の業務利用を意図している方や、Gemini の導入やさらなる活用を検討している企業の方の参考情報となることを目的としています。 G-gen の業務環境と Gemini 株式会社 G-gen は、Google Cloud・Google Workspace 専業のクラウドインテグレーターです。Google Cloud を使った開発やインフラ構築、顧客環境のセキュリティ強化、コスト削減など、さまざまな業務を行っています。また、Google Cloud・Google Workspace の請求代行サービスをご利用の場合、割引料金が適用されます。 G-gen は、社内に物理的なサーバーを一切保有せず、全従業員がリモートで勤務しています。そのため、日常業務のほぼすべてが Google Workspace 上で行われています。 このような当社環境において、Google Workspace に統合された AI 機能である Gemini for Google Workspace は、従業員の生産性向上に役立っています。Gemini for Google Workspace は、ほとんどの商用 Google Workspace エディション(Business Standard、Business Plus、Enterprise Standard、Enterprise Plus など)に 追加料金なし で含まれており、特別なセットアップなしで利用を開始できます。 参考 : Google Workspace の料金 参考 : Gemini for Google Workspace 以前は、Google Workspace で生成 AI 機能を利用するには、Gemini アドオンライセンスが必要でした。しかし2025年1月16日以降、アドオンライセンスが不要になり、 ほとんどすべてのエディションにデフォルトで Gemini が組み込まれ ました。 参考 : Google Workspace Business エディションの AI 機能と料金改定 Gemini の進化 2025年4月、 Gemini 2.5 Pro の登場により、日本語の長文読解や生成、要約の精度が大幅に向上し、より多くの業務シーンで Gemini が利用されるようになりました。 参考 : Gemini 2.5: Our most intelligent AI model 早い段階で Gemini を試した方の中には、日本語の文章の生成や読解に不満を覚えた方もいるかもしれません。しかし Gemini 2.5 では精度が大幅に向上しており、業務レベルで利用可能になったといえます。G-gen でも、これまでよりも Gemini の活用の幅が広がっています。 また、Gemini for Google Workspace の各機能は、リリース当初は日本語に対応していない場合がありましたが、2025年5月現在ではほとんどの機能が日本語に対応しています(一部は Alpha 版)。 データの保護 Gemini for Google Workspace や、Gemini アプリ、Google Cloud の Gemini API などでは、入力されたプロンプトや出力されたコンテンツ、アップロードされたデータなどは、 適切に保護 されます。 これらの情報が、Google によってモデルのトレーニングに利用されたり、外部に流出することはありません。 参考 : Gemini for Google Workspace に関するよくある質問 - Google Workspace with Gemini ではどのようにデータが保護されますか? 参考 : Gemini in Gmail、Google Chat、Google ドキュメント、Google ドライブ、Google スプレッドシート、Google スライド、Google Meet、Google Vids でのデータ保護の仕組み 参考 : 生成 AI とデータ ガバナンス Gemini アプリ Gemini アプリとは Google Workspace 統合機能に加え、スタンドアロンの Gemini アプリ (旧 Bard)も広く利用されています。Gemini アプリは、Web ブラウザやモバイルアプリでアクセスできる対話型 AI サービスです。自由な形式での質問応答、文章生成、アイデア出し、アプリ開発などに利用できます。 参考 : Gemini アプリ 参考 : Gemini でのアプリの利用と管理 Gemini アプリでウェブアプリを開発(Canvas 機能) 特に G-gen では、ブラウザからアクセスして利用する Gemini ウェブアプリが多用されています。Google Workspace の場合、管理コンソールから従業員の Gemini の利用状況が確認できます。G-gen 社内では、Gemini for Google Workspace の各機能の中で Gemini アプリが最も利用頻度が高く、半数以上の従業員が日常的に利用しています。 参考 : 組織での Gemini の使用状況を確認する 生成や解説、要約 Gemini アプリに自然言語で指示をすると、文章の生成や解説、要約などが可能です。また、画像を生成させることもできます。知らない単語の意味を掴むためにも有用です。 Gemini アプリへの質問 和英翻訳や英和翻訳も可能です。英語の技術情報を解釈したり、海外の相手にメールを送る時などにも利用できます。特に、英語でのビジネスメールに慣れていない日本語話者にとっては、失礼がなく自然に見える文章の生成に役立ちます。 Gemini による翻訳 また Google スライドや Google ドキュメントなど、Google ドライブ上のファイルを指定して、それらに基づいた生成を行うこともできます。 スピーカーノートを Gemini アプリに生成させる Gems を利用した特定タスクの効率化 Gemini アプリの Gems 機能を利用して、特定のペルソナやタスクに特化した指示(カスタム指示)をあらかじめ作成しておき、繰り返し行う作業を効率化できます。Gems は、特定の役割(例 : 翻訳アシスタント、コードレビュアー、ブログ記事のレビュアー)や目的に合わせた指示を保存しておき、ワンクリックで Gemini をそのモードで起動できる機能です。 blog.g-gen.co.jp Gemini アプリの Gems 機能 Gems の編集画面 以下は、Gems の利用例です。 和英・英和翻訳 Gem 日本語の技術文書やメールの下書きを、自然な英語表現に翻訳するための Gem を作成し、海外パートナーとのコミュニケーションに利用しています。「英語が入力されれば日本語に、日本語が入力されれば英語に翻訳。必ず複数案を提示する」のようなプロンプトをあらかじめ登録しておくことで、このシステム指示を毎回入力する必要性がなくなります。 技術アップデート解釈 Gem Google Cloud や Google Workspace の新機能リリースノートを読み込ませ、「このアップデートの重要な点は何か」「G-gen の顧客にどのような影響があるか」といった観点で要約・解釈させる Gem を利用し、最新情報のキャッチアップを効率化できます。 ブログ下書きレビュー Gem 社内の執筆ガイドラインに沿っているか、技術ブログの下書きをレビューさせます。Gemini アプリは長大なプロンプトを読み込ませることができるので、体裁ルールを指示するほか、模範的な記事の全文を1個、システム指示プロンプトに組み込んでおくことで、精度の高いレビューや訂正が可能です。 議事録整備 Gem Google Meet では、Web 会議で発言された言葉を Google ドキュメントに文字起こしできます。この内容を整理して、議事録を作成する Gem を作成できます。「えーと」「あー」といったフィラーを削除したり、規定の形式に整理できます。 ブログ記事・ドキュメントの草案作成 G-gen Tech Blog の記事執筆や、新しい技術に関する調査レポート作成の初期段階で、Gemini アプリにテーマと構成案を伝え、草案を作成させることがあります。生成された内容を基に、エンジニアが専門的な知見や G-gen としての視点を加えて、記事を仕上げます。 前述の「ブログ下書きレビュー Gem」と同様に、体裁ルールや模範的な記事原稿をプロンプトに入れることで、精度が高い生成が可能です。なお模範的な記事をプロンプトに組み入れることは、一種の Few-shot prompting(プロンプトに少数の例を含めることで、精度を向上させるプロンプトエンジニアリング手法)といえます。 参考 : 少数ショットの例を含める レビュー・アイデア出し 作成した文章やソースコード、設計案などを Gemini に提示し、改善点や別のアイデアがないか、壁打ち相手として利用します。客観的な視点からのフィードバックを得ることで、品質向上につなげます。 ソースコード生成 Python、Bash、SQL、Terraform などのソースコードを、自然言語の指示に基づいて Gemini が生成します。特定の作業で一時的に必要になる gcloud コマンドラインなども、生成させてすぐ利用することが可能です。 また Gemini アプリの Canvas 機能を使うと、生成 AI と対話しながら生成物を修正したり、JavaScript のソースコードの実行をブラウザ上でプレビューすることができます。Canvas の詳細は、Gemini の公式 note アカウントの以下の記事を参照してください。 参考 : Gemini の新機能 「Canvas」入門: アイデアをカタチにする活用法をわかりやすく徹底解説! - Gemini - Google の AI Canvas でウェブアプリを開発 Deep Research による調査レポート Gemini アプリの Deep Research は、複雑なトピックを掘り下げて理解することを支援する強力な機能です。Gemini がユーザーに代わって数十のウェブサイトを検索して、その内容を AI が分析し、長大なレポートを作成します。 Deep Research は、市場調査、顧客の現状調査、競合調査、技術情報の調査などに利用できます。 最近のアップデートでは、 インフォグラフィック の生成などが可能になりました。指示したトピックに関する図表を含む HTML が生成され、多くのデータや複雑な概念を視覚的に分かりやすく提示することできます。 Gemini の Deep Research で作成したインフォグラフィック NotebookLM NotebookLM とは NotebookLM は、アップロードしたドキュメントに基づいて質問応答や要約、アイデア生成ができる AI ノートブックです。G-gen では、個人のナレッジ整理や情報収集に利用されています。 参考 : NotebookLM NotebookLM Google Workspace のほとんどのエディションには、無償版の NotebookLM と比較して各種制限が緩和されたり、組織的な機能が追加された NotebookLM in Pro が付帯しています。 参考 : NotebookLM Plusを使ってみた - G-gen Tech Blog 個人ドキュメントの整理・要約 複数のドキュメントや Web サイト、PDF 資料などを NotebookLM にアップロードし、特定のテーマに関する情報を横断的に検索したり、全体像を要約させたりします。これにより、散在していた知識を効率的に整理できます。 NotebookLM を使うと情報ソースを固定化して生成を行うことができるため、ハルシネーション(AI が事実と異なる内容を生成すること)も低減できます。 また マインドマップ 機能を使うと、ドキュメントがマインドマップ形式で整理されます。議事録や技術ドキュメントを構造化して理解するのに役立ちます。 NotebookLM のマインドマップ ポッドキャスト風音声の生成 NotebookLM では、日本語でポッドキャスト風音声を生成させることができます。アップロードしたデータソースについて、2人の話者がラジオやポッドキャストで対談しているような音声を、数分で生成できます。 「高校生でもわかりやすいように解説」などの指示を与えることで、語彙や論調をコントロールし、例えば英語の論文をアップロードして解説させることで、内容の把握に役立ちます。 参考 : 音声概要 - NotebookLM ヘルプ FAQ 作成 特定の製品マニュアルや社内規定などをアップロードし、それに関する想定問答集(FAQ)を生成させるといった利用方法もあります。 Google Meet Google Meet と Gemini Google Meet は、オンラインでのビデオ会議やウェビナー開催に利用されるツールです。 Google Meet において Gemini は、自動的な議事録作成や、Web 会議体験の向上に役立ちます。また、バーチャル背景の生成や、カメラ映像の画質向上、同じ部屋から複数人が Meet に参加しているときのハウリング防止など、ウェブ会議の質を向上させるための複数の AI 機能が利用可能です。 参考 : Google Meet の「自動メモ生成」 参考 : Enhance your video & audio with Gemini in Google Meet 参考 : Meet でアダプティブ オーディオを使用する 参考 : Create background images with Gemini in Google Meet 発言内容の文字起こし Google Meet では、日本語で行われた会議を文字起こしすることができます。 文字起こしした内容は Google ドキュメントに書き出されます。そのままだと、いわゆるフィラー(「えーと」「あのー」など)も文字起こしされてしまいますが、この内容を先述の Gemini アプリの Gems などで整形することで、体裁を保った議事録を簡単に作成することができます。 参考 : Geminiアプリのカスタマイズ機能「Gems」を徹底解説 - G-gen Tech Blog - カスタム Gem の例 会議の要約とアクションアイテム抽出 Gemini は会議の会話内容を分析し、要約を自動生成したり、決定事項や担当者などのアクションアイテムを抽出したりできます。これにより、会議に参加できなかったメンバーが内容を素早く把握したり、議事録作成の手間を削減したりするのに役立ちます。 Google ドキュメント Google ドキュメントと Gemini Google ドキュメント は、議事録、企画案、メモ、ブログ記事の下書きなど、G-gen の業務における中心的なドキュメント作成ツールです。 Google ドキュメントにおいて、Gemini はドキュメント作成の様々なフェーズで利用されています。 参考 : Gemini in Google ドキュメントを活用する 文章の生成・修正 画面右側の Gemini サイドパネル を利用して、文章のアイデア出し、構成案の作成、表現の洗練などを行います。このサイドパネルは、ドキュメントを開いたまま Gemini の機能(要約、ブレインストーミング、文章作成支援など)を呼び出せるインターフェースです。 例えば、新しいサービスの概要説明文を作成する際に、箇条書きで要点を入力して Gemini に指示するだけで、自然な文章を生成させることができます。 Gemini サイドパネル また、既存の文章を選択し、「より簡潔に」「より詳細に」「より丁寧に」といった指示を与えることで、文章のトーンを調整することも可能です。ドキュメント上で該当のテキストをマウスで選択し、表示される鉛筆マークをクリックして表示されるメニューから、修正方法を選択します。 Gemini による文章の校正 修正後の文言に対してさらに指示を与えて好みの文章に整えた後、またドキュメントに挿入できます。 ドキュメントの要約 長文のドキュメントを読む時間を短縮するため、Gemini サイドパネルの 要約 (概要生成)機能が利用されています。特に、他のメンバーが作成したドキュメントの内容を素早く把握したい場合や、過去の議事録から重要な決定事項を確認したい場合に有効です。 Gemini によるドキュメントの概要説明 長大な 英語の契約書や利用規約 などを 日本語で要約 させることも可能です。テキスト形式であれば、PDF も対象にできます。 英語の規約や契約書を日本語で要約 Gmail Gmail と Gemini Gmail は、Google Workspace に組み込まれたメール機能です。G-gen では、顧客やパートナーとの主要なコミュニケーション手段として利用されています。ここでも、Gemini はメール作成の効率化と品質向上に貢献しています。 参考 : Gemini in Gmail を活用する メールの下書き作成 メール作成画面で Gemini アイコンをクリックして Gemini サイドパネルを開き、簡単な指示(例:「〇〇社 △△様へ、□□の件に関する打ち合わせのお礼と、決定事項の確認メールを作成」)を与えるだけで、メールの草案を生成できます。これにより、定型的なメール作成にかかる時間を大幅に削減できます。 文章の推敲 作成したメール本文を選択し、Gemini に表現の改善や誤字脱字のチェックを依頼します。特に、重要な顧客へのメール送信前には、より丁寧で正確な表現にするために Gemini を利用する場面が多く見られます。 予定の作成 先方からのメールに書いてあるミーティング予定の日付を抽出して、Google カレンダーの予定を作成することができます。 Gmail からカレンダーを作成 和英・英和翻訳 海外の相手とメールのやりとりをする際、英語を日本語に、あるいは自分の書いた日本語を英語に翻訳することができます。英語のネイティブ話者から読んでも失礼にならず、自然な英語になるように推敲させることも可能です。 Gmail における和英・英和翻訳 Google スライド Google スライドと Gemini Google スライド は、プレゼンテーション資料作成に利用されます。Google スライドにおいて Gemini は、コンテンツ作成の補助や、画像など視覚要素の生成に役立ちます。 画像生成 Gemini の画像生成機能を利用して、スライドに適したオリジナルの画像を生成します。例えば、LT(ライトニングトーク)のタイトルスライドや、特定のコンセプトを視覚的に表現したい場合に、「〇〇をイメージした抽象的な背景画像」「△△をしているキャラクター」といった指示で画像を生成し、資料の品質を高めます。 画像の生成 テキストコンテンツの草案作成 スライドの各ページで伝えたい内容の要点を Gemini に指示し、説明文や箇条書きの草案を作成させます。これにより、資料作成の初期段階での時間短縮につながります。 Google ドキュメントなどと同じように、箇条書きの要点を伝えるだけでスライドの文章を生成させたり、元となる Google ドキュメントを指定することで、文章を作成させることもできます。 参考 : Gemini in Google スライドを活用する スピーカーノートの作成 スピーカーノート(トークスクリプト。話すときの台本)の生成にも、Gemini が利用できます。Google スライドの Gemini サイドパネルに生成させることもできますし、Gemini アプリで Google スライドを指定して、ノートを作成させることもできます。 スピーカーノートを Gemini アプリに生成させる Google スプレッドシート Google スプレッドシートと Gemini Google スプレッドシート は、表計算やデータ管理に広く利用されるツールです。G-gen では、見積もりの作成、WBS、社員名簿など、さまざまな情報の整理にスプレッドシートを使っています。 Google スプレッドシートにおいて Gemini は、表の構成案作成、テンプレート生成、データ整理のアイデア出しなどを通じて、作業の効率化を支援します。 参考 : Gemini in Google スプレッドシートを活用する テンプレートの作成や関数の生成 Gemini に目的を伝えることで、特定の用途に合わせたスプレッドシートのテンプレートを作成させることができます。例えば、「プロジェクト計画用のガントチャート」「イベントの予算管理表」といった指示で、基本的な表の構造や項目を含んだテンプレートを生成し、シート作成の手間を省きます。 また、Gemini サイドパネルで、自然言語の指示に基づいて関数を生成できます。Gemini サイドパネルを使えば、複雑な関数も容易に生成可能です。 データ整理と分析のアイデア出し 既存のデータやこれから扱いたいデータについて、どのように整理・分析すればよいか Gemini に相談できます。「この売上データをどのように分析すれば傾向が掴めるか?」「顧客リストをセグメント分けするアイデアは?」といった質問を通じて、データ活用のヒントを得ることができます。 また、表の近くに「このデータを分析」ボタンが表示され、クリックするだけでデータから得られる示唆を生成したり、チャート(図表)を生成したりできます。 「このデータを分析」ボタン 出力された分析結果 Gemini Code Assist Gemini Code Assist とは Gemini Code Assist は、コーディングを補助したり、自然言語による対話に基づいてソースコードを生成したりするソリューションです。開発業務においては、Gemini Code Assist がコーディングの高速化と品質向上に貢献しています。 参考 : Gemini Code Assist Standard and Enterprise 参考 : Gemini Code Assistを使ってChromebookで開発環境を整えてみた - G-gen Tech Blog Gemini Code Assist には無償版が存在するほか、有償版は、Google Cloud の請求先アカウントに紐づける形で、Google Cloud コンソールから 簡単にライセンスを購入 できます。オフラインオーダー(書面での申し込み等)は不要です。料金は、Google Cloud 料金と一緒に請求されます。 コード生成・補完 IDE(統合開発環境)内で、コメントや既存コードに基づいて、必要なコードスニペットを生成・補完させます。定型的なコードや、あまり慣れていない言語・ライブラリを使用する際の開発効率が大幅に向上します。 コメントでプロンプトを与えてコードを生成 コードの説明・レビュー 既存のコードブロックを選択し、その処理内容を自然言語で説明させたり、潜在的なバグや改善点を指摘させたりします。コードレビューの補助や、他者が作成したコードの理解促進に役立ちます。 チャットで Gemini に指示を与えてコードを説明 コードレポジトリとの連携 Gemini Code Assist と GitHub、GitLab などのレポジトリを連携させることで、既存のソースコード群を踏まえたコーディングスタイルや、独自ライブラリ、非公開 API などを踏まえたコード生成が可能です。 参考 : Gemini Code Assist のコード カスタマイズを構成する Generative AI on Vertex AI Vertex AI と Gemini ここまで紹介したのは、Google が提供する AI ソリューションの活用事例でした。これらのソリューションには Gemini が組み込まれており、ユーザーは開発を一切行うことなく、AI サービスを利用できます。 しかし、Google Cloud の AI 開発プラットフォームである Vertex AI を使うと、Gemini を API 経由で呼び出して、ユーザー独自のアプリを開発することもできます。 参考 : Overview of Generative AI on Vertex AI 参考 : Gemini カテゴリーの記事 - G-gen Tech Blog 議事録作成を効率化 以下の記事では、G-gen のエンジニアが独自のチャットボットを開発し、Google Meet の自動文字起こし機能と組み合わせて、議事録作成を効率化した事例が紹介されています。 blog.g-gen.co.jp 同様の機能は Gemini アプリでも実現できますが、独自アプリを開発し、API 経由で Google の AI モデルを利用することで、音声の読み上げなど追加の機能を実装しています。 技術サポート窓口やブログ記事のナレッジ活用 G-gen では、Google Cloud・Google Workspace 請求代行サービスに付帯して、無償の技術サポート窓口を提供しています。また、エンジニアは案件で得た知見を G-gen Tech Blog の記事として一般に公開しています。 エンジニアが技術的な問題に直面したり、営業担当者が顧客から質問を受けた時は、過去に対応したサポートケースやブログ記事の検索を行いますが、文字列一致では検索にコツが必要でした。 これを解消するため、G-gen では社内検索システム「G-gen Tech Search」を開発しました。Gemini を使って過去のサポートケースやブログ記事を構造化し、BigQuery テーブルに格納します。さらに、AI Applications(旧称 Vertex AI Agent Builder)の1機能である Vertex AI Search を使い、簡易的な検索 UI を作成することで、文字列一致の検索ではなく、セマンティック検索(意味論検索)で過去のナレッジにアクセスできるようにしました。 社内向け検索ツール 社内向け検索ツールのアーキテクチャ Slack チャットボット 社内で日常のコミュニケーションに利用しているチャットツール Slack から、bot を呼び出して前述の G-gen Tech Search での検索ができるようにしました。Slack で質問を投げると、bot が過去ケースやブログ記事を検索し、要約した回答と関連リンクを返答します。 Slack bot 経由での利用 また、過去ケースや記事検索に留まらないより汎用的な AI ボットとして、キャラクター性を持たせた Slack bot に気軽に相談できるようにもなっています。過去情報に基づいた一問一答的な質問は G-gen Tech Search bot に投げ、それに留まらないより一般的な質問はキャラクター bot に、という使い分けです。G-gen Tech Search bot のバックエンドは Vertex AI Search、キャラクター bot のバックエンドは Gemini API となっています。 キャラクター性を持たせた bot 最新技術アップデートの要約 Google Cloud では、毎日のように機能アップデートが公開されています。アップデート情報はリリースノートページで公開されているほか、BigQuery のパブリックデータセット(誰でもアクセス可能なデータセット)として構造化データ化されて公開されています。 参考 : Google Cloud release notes G-gen は Google Cloud 専業のインテグレーターとして、これらの情報にいち早くキャッチアップする必要があります。 G-gen では、アップデート情報が公開されたらすぐ生成 AI によりこれらの情報を要約させ、Slack に投稿されるようになっています。また G-gen Tech Blog の関連記事もセマンティック検索でリストアップされます。これにより、過去の記事をできるだけ最新化することに役立ちます。 Slack にアップデートの要約情報や関連記事が自動投稿される この仕組みは、バックエンドに Cloud Run(フルマネージドのコンテナサービス)を使っており、Cloud Run 上のプログラムから Vertex AI 経由で Gemini API を呼び出したり、Vertex AI Search を呼び出したりすることで実現されています。 杉村 勇馬 (記事一覧) 執行役員 CTO / クラウドソリューション部 部長 元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。 Follow @y_sugi_it
アバター
G-gen の杉村です。当記事では、Google Cloud のセキュリティサービスである Security Command Center の機能の1つ、Event Threat Detection の カスタムモジュール について解説します。また、あわせてミュートルールの作成方法についても触れます。 概要 Event Threat Detection とは カスタムモジュールとは 料金 カスタムモジュールの定義 テンプレート モジュールのレベル カスタムモジュールの実装 特定の API 呼び出しの検知 モジュールの定義 動作確認 検知事項の詳細 ミュートルールの作成 ミュートすべき検知事項 フォルダの CreateProject 検知の抑止 概要 Event Threat Detection とは Event Threat Detection は、Google Cloud の Cloud Logging に記録されるログを分析し、脅威を検出するサービスです。Event Threat Detection は Security Command Center の プレミアムティア および エンタープライズティア で利用可能な機能です。 参考 : Security Command Centerを徹底解説。Google Cloud(GCP)の脆弱性を自動検知 - G-gen Tech Blog - Event Threat Detection 参考 : Event Threat Detection の概要 Event Threat Detection は、マルウェア、クリプトマイニング、不正な権限昇格、データ抜き取りの試みなど、さまざまな脅威を検出するための 組み込みモジュール (プリセットの検知事項)を提供しています。これらのモジュールは Google の脅威インテリジェンスに基づいて継続的に更新されます。 カスタムモジュールとは 全ての組織のセキュリティ要件が組み込みモジュールだけで満たされるわけではありません。組織固有のポリシーや、特殊な利用パターンに対する脅威を検出したい場合、標準の脅威検出ルールでは不十分な場合があります。 そこで役立つのが、Event Threat Detection の カスタムモジュール 機能です。カスタムモジュール(Custom modules)は、ユーザーが独自の脅威検出ロジックを定義し、Event Threat Detection に組み込むことができる機能です。 これにより、組織固有のセキュリティポリシー違反や、組み込みモジュールでカバーしきれないニッチな脅威シナリオに対応できます。カスタムモジュールは、Cloud Logging に集約されるさまざまなログソース、例として Cloud Audit Logs(監査ログ)、Cloud DNS ログ、VPC フローログなどを分析対象とすることができます。 参考 : Event Threat Detection 用カスタム モジュールの概要 カスタムモジュールを作成することで、以下のようなメリットがあります。 組織固有の脅威やコンプライアンス違反を検出できる 検知事項は Security Command Center と統合される カスタムモジュールを使用しなくても、Cloud Logging のログアラート機能を用いることで、特定の監査ログが出力された際にメールや Slack 等へ発報することができます。しかし、カスタムモジュールを使うと、検知事項は Event Threat Detection の検知事項としてリストアップされるため、他の脆弱性や脅威と共通の管理ができます。無効化やミュート、ミュートルールなどを用いたり、Pub/Sub 経由で SIEM へ所定のフォーマットで通知するなどの設定が可能なため、セキュリティ運用を統一化できます。 参考 : Security Command Centerを徹底解説。Google Cloud(GCP)の脆弱性を自動検知 - G-gen Tech Blog - 運用 料金 Event Threat Detection のカスタムモジュール機能の利用は、Security Command Center プレミアムティアやエンタープライズティアの料金に含まれており、 追加料金はありません 。 参考 : Security Command Center の料金 カスタムモジュールの定義 テンプレート Event Threat Detection カスタムモジュールは、Security Command Center のコンソール画面、もしくは gcloud コマンドと JSON 形式の定義ファイルを使って定義します。 テンプレートが Google によってあらかじめ用意されており、これらを編集してカスタムモジュールを作成します。以下は、用意されているテンプレートの例です。 テンプレート名 説明 予期しない Cloud API 呼び出し 指定したメソッド、プリンシパル、リソースで API リクエストが行われたら検知 想定外のロールの付与 指定されたロールがユーザーに付与されたら検知 禁止されている権限があるカスタムロール 指定された IAM 権限を含むカスタムロールが作成または更新されたら検知 ブレークグラス アカウントの使用 指定したブレークグラスアカウント(緊急アクセス用アカウント)が使用されたら検知。 想定外の Compute Engine インスタンス タイプ 指定していないインスタンスタイプや CPU、GPU、RAM 構成の VM が起動されたら検知 構成可能な不正ドメイン 指定されたドメイン名への接続を検知 構成可能な不正 IP 指定された IP アドレスへの接続を検知 参考 : Event Threat Detection 用カスタム モジュールの概要 ‐ カスタム モジュールとテンプレート モジュールのレベル Event Threat Detection カスタムモジュールは、組織、フォルダ、またはプロジェクトのレベルで作成できます。 親リソースで作成したモジュールは、子リソースへ継承されます。組織全体で検知を有効化したい場合は、組織の最上位ノードでカスタムモジュールを作成します。 カスタムモジュールの実装 特定の API 呼び出しの検知 当記事では、例としてテンプレート「 予期しない Cloud API 呼び出し 」を使った実装を紹介します。組織内にプロジェクトが作成された場合に、検知されるようにします。会社や組織によっては、情報システム部や CCoE にあたる部署が Google Cloud プロジェクトの払い出しを統合管理しており、ユーザーが独自にプロジェクトを作成することを禁止していますが、ユーザーが意図せずプロジェクト作成権限を持ってしまい、このルールに違反したような場合に検知することを想定しています。 当記事では、テンプレート「予期しない Cloud API 呼び出し」を使い、メソッド CreateProject を検知することで実現します。なお当記事では設定しませんが、同様の方法でメソッド名を DeleteProject とすることで、プロジェクトが削除された場合の検知も設定できます。 モジュールの定義 当記事では、Google Cloud コンソールを用いてモジュールを定義します。当記事に掲載されているスクリーンショットは、Security Command Center のエンタープライズティアのものです。プレミアムティアでは画面の体裁が異なる場合がありますので、ご注意ください。 まず、Google Cloud コンソールにログインし、Security Command Center 画面へ遷移します。操作する Google アカウントには、モジュールを作成する組織・フォルダまたはプロジェクトのレベルでセキュリティセンター管理者( roles/securitycenter.admin )ロールなどが必要です。 画面左上部のプロジェクトセレクタで、モジュールを作りたいリソース(組織、フォルダ、プロジェクト)が選択されていることを確認したら、左部ペインの「設定」ブロックにある「SCC の設定」をクリックします。 「SCC の設定」をクリック 「Event Threat Detection」のカードの中の「設定を管理」をクリックします。 「Event Threat Detection」の「設定を管理」をクリック 「モジュール」タブをクリックします。この画面では、規定の組み込みモジュールのほか、カスタムモジュールが一覧表示されています。「モジュールを作成」をクリックします。 「モジュールを作成」をクリック テンプレートを選択します。今回は「API 呼び出し」をクリックし、表示された「選択」ボタンをクリックします。 「API 呼び出し」の「選択」ボタンをクリック 次の画面で、モジュールの設定を定義します。 モジュール設定(1) モジュール名は、検知一覧で検出カテゴリとして表示されます。先頭は英小文字である必要があり、記号はアンダースコアのみが使用できます。検知事項一覧では、アンダースコアがスペースに置き換わり、google_cloud といった単語は Google Cloud と表示されます。モジュール名を例のように google_cloud_project_created とすると、検知一覧では Unexpected cloud API call: Google Cloud project created と表記されます。 「プリンシパルに関するアラート」では、どのプリンシパルによって行われた API リクエストを検知するかを定義します。定義は、RE2 正規表現で記述します。正規表現に慣れていない方は、Gemini アプリ( https://gemini.google.com/ )などを利用してもよいでしょう。ここでは、 .* として、すべてのプリンシパルによるプロジェクト作成を検知します。 「メソッドに関するアラート」では、検知対象の API メソッドを定義します。ここでは CreateProject を指定します。 「リソースに関するアラート」では、検知対象のリソースを定義します。ここでは正規表現で .* として、プロジェクトがどのような ID で作成されても検知されるようにします。 「次へ」を押下して、次の設定に移ります。 モジュール設定(2) 「重大度」「説明」「次のステップ」を定義します。 重大度は、検知事項のフィルタリングなどに用いる重大度の設定です。「説明」「次のステップ」は、検知事項の詳細画面に表示されます。セキュリティ運用者が適切な対処を取れるよう、わかりやすい説明や対処方法を入力しておきます。 動作確認 プロジェクトを実際に作成して、検知されるかどうかを確認します。組織に detect-me-0001 という ID のプロジェクトを作成しました。作成後、Security Command Center コンソール画面の「検出結果」画面へ遷移します。 カスタムモジュールによる検知事項だけを表示するには、「検出結果」画面の左下部分のフィルタで、「ソースの表示名」ブロックのフィルタで「Event Threat Detection Custom Modules」だけにチェックマークを入れます。ソース名が省略されている場合は、マウスオーバーすることで確認できます。 「Event Threat Detection Custom Modules」にチェック なお、以下のスクリーンショットのように検知事項の一覧表のカラム名部分が縦に引き伸ばされてしまい表が見づらい場合、「Affected runtime resources > Count」「Attack exposure > Score」「有害な組み合わせ > 有害な組み合わせスコア」などのチェックを外せば、カラムが省略され、テーブルが正しく見えるようになります(2025年5月現在、エンタープライズティア)。 表の見出し(カラム名)のエリアを小さくする 今回は、以下の4つの検知事項が確認されました。リソースの表示名が「detect-me-0001」となっているのが、今回検知したかったプロジェクトです。 検知事項 検知事項の詳細 検知された項目名をクリックすると、詳細が表示されます。カスタムモジュールで定義された重大度、説明、次のステップなどが表示されています。 検知事項の詳細 また、JSON タブを選択すると、検知事項の詳細を JSON 形式で確認できます。この中に含まれている sourceProperties.properties という要素には、カスタムモジュールにより検査される値が含まれています。この値が正規表現に当てはまると、検知が行われます。 sourceProperties.properties ミュートルールの作成 ミュートすべき検知事項 先の検証結果では、目的のプロジェクト以外にも3つの検知が行われていました。リソースの表示名が「sugimura_fld」となっているのは、新規作成した「detect-me-0001」プロジェクトを格納するフォルダ名です。 これは、プロジェクトの作成操作を行って CreateProject メソッドが実行される際、「プロジェクト ID をリソース名とする監査ログ」と「フォルダ ID をリソース名とする監査ログ」の2つが必ず出力されてしまう仕様に起因します。1つのプロジェクトの作成に対して2つのログが出力されてしまうため、検知事項も2つ生成されてしまいます。このとき、後者のログはノイズとなり得ますので、抑止することが望ましいです。 また、リソースの表示名が「sys-82688xxx」「apps-script」となっている検知事項は、Google Apps Script(GAS)スクリプトを作成した際に自動作成されるプロジェクト、およびそれを格納するフォルダの検知です。検証の前後で、組織内の誰かが GAS スクリプトを作成したために検知されたものです。これらのプロジェクトの作成時も、先と同じ理由で2つの検知事項が生成されてしまいます。これらの GAS による自動作成プロジェクトの検知も、ノイズとなり得ます。 これらのノイズを抑止するため、 ミュートルール を利用することができます。ミュートルールを作成することで、所定のルールに基づいて、自動的に検知事項をミュートできます。 フォルダの CreateProject 検知の抑止 検知事項の詳細画面を開き、「ミュートオプション」メニューから「これに類似する検出結果をミュート」を選択します。 「これに類似する検出結果をミュート」 ミュートルール ID を命名し、説明を追加します。重要なのは、 検出クエリ です。ミュート対象とする検知結果の条件を Cloud Logging クエリ言語で記述することができるほか、「フィルタを追加」ボタンから GUI で選択できます。 GUI でフィルタルールを定義 今回は、検知結果のリソースタイプがフォルダである場合に検知結果をミュートするよう定義します。検出クエリは以下のようになります。 category= " Unexpected Cloud API Call: google_cloud_project_created " AND resource . type = " google.cloud.resourcemanager.Folder " また、別のミュートルールを新規作成し、GAS による自動作成プロジェクトも検知対象外とします。GAS のプロジェクトは、Google の管理するサービスアカウント appsdev-apps-dev-script-auth@system.gserviceaccount.com によって作成されるため、このサービスアカウントによって作成された場合はミュート対象とします。なお、先ほどと同じミュートルールの中に、以下の access.principal_email 条件を OR でつなげて記載しても構いません。 category= " Unexpected Cloud API Call: google_cloud_project_created " AND access .principal_email= " appsdev-apps-dev-script-auth@system.gserviceaccount.com " 動作確認のため、プロジェクト「detect-me-0002」を作成します。以下のように、新たに検知されたリソース表示名がフォルダの検知事項は表示されなくなりました。なおフィルタでミュートステータスが MUTED のものを表示させることで、ミュート済みの検知事項を再表示することができます。 新しく表示された検知事項は1つのみ ミュートルール作成前に検知された検知事項は新たにルールを作ってもミュートされないため、手動でミュートします。検知事項を選択し、「ミュートのオーバーライドを適用」をクリックすることで、検知事項を手動でミュートできます。 杉村 勇馬 (記事一覧) 執行役員 CTO / クラウドソリューション部 部長 元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。 Follow @y_sugi_it
アバター
G-gen の杉村です。2025年5月のイチオシ Google Cloud(旧称 GCP)アップデートをまとめてご紹介します。記載は全て、記事公開当時のものですのでご留意ください。 はじめに Vertex AI Search が値下げ Gemini 1.5 Pro/Flash の廃止日に注意 Gemini API(Vertex AI)でグローバルエンドポイントが利用可能に Gemini API(Vertex AI)で Elasticsearch を使ったグラウンディング Cloud Composer 1(Airflow 2)から Composer 3 への移行が可能に Cloud CDN でキャッシュタグによるキャッシュ無効化が Preview→GA Google Vids で Veo 2 を使った動画生成が可能に Gemini アプリで音声概要が日本語対応 SCC の Compute Engine 関連検知事項ダッシュボード(Preview) BigQueryの実行グラフ画面にクエリが表示(Preview) Googleスプレッドシートで Gemini を使った様々な操作が可能に BigQuery で GROUP BY ALL、GROUP BY STRUCT、GROUP BY ARRAY BigQuery universal catalog でメタデータのバルクエクスポート Snowflake から BigQuery へのデータ転送(Preview) BigQuery でリージョンをまたいだデータの LOAD や EXPORT AppSheet で Gemini in AppSheet Solutions が公開 IAM ロールと権限(permission)のリファレンスドキュメントが刷新 BigQuery で「継続的クエリ」が Preview → GA Vertex AI API 経由での Gemini に新機能が多数追加 Gemini アプリの Canvas 機能がアップデート Microsoft SharePoint Online からの移行ツールが Open Beta Gemini Code Assist のバックエンドモデルが Gemini 2.5 に 組織のポリシーのカスタム制約が BigQuery で利用可能に BigQuery の Optional job creation mode が GA Gemini Code Assist に Context Drawer が登場 Google ドライブで Gemini による動画の要約が可能に AlloyDB インスタンスが停止・起動可能に Cloud Storage とBigQuery 間の Event-Driven Transfers が利用可能に(GA) Google スライドで「画像の背景削除」が日本語版にも対応 Associate Cloud Engineer の資格対策書籍が出版 はじめに 当記事では、毎月の Google Cloud(旧称 GCP)や Google Workspace(旧称 GSuite)のアップデートのうち、特に重要なものをまとめます。 また当記事は、Google Cloud に関するある程度の知識を前提に記載されています。前提知識を得るには、ぜひ以下の記事もご参照ください。 blog.g-gen.co.jp リンク先の公式ガイドは、英語版で表示しないと最新情報が反映されていない場合がありますためご注意ください。 Vertex AI Search が値下げ AI Applications pricing (2025-05-01) Vertex AI Search が2025年5月1日から値下げ。 無料利用枠の導入 請求先アカウントごとに毎月10,000クエリまでが無料に Standard Edition の値下げ 料金が 1,000 クエリあたり $2 から $1.50 に引き下げ Enterprise Edition への Core Generative Answers(AI モード)搭載 追加費用なしで、検索結果に加えて AI 生成による回答とフォローアップを利用可能に LLM アドオンの機能強化と価格設定 従来、LLM アドオンは $4/1000 クエリの「基本」と $10/1000クエリの「Advanced」があった。従来は Advanced 版にのみ含まれていたフォローアップの提案、複雑なクエリ処理、マルチモーダル機能などの高度な機能が、基本版で利用可能に。基本版の料金に変更はなし。Advanced 版は廃止。 Gemini 1.5 Pro/Flash の廃止日に注意 Model versions and lifecycle (2025-05-01) Gemini 1.5 Pro/Flash の廃止日に注意。廃止されたモデルへの API リクエストは 404 になる。 「*-001」等は 2025年5月24日に廃止 gemini-1.5-pro-001 gemini-1.5-flash-001 textembedding-gecko@003 textembedding-gecko-multilingual@001 「*-002」は 2025年9月24日に廃止 gemini-1.5-pro-002 gemini-1.5-flash-002 新規プロジェクトや過去に利用がないプロジェクトでは既に使用不可になっている。 Gemini API(Vertex AI)でグローバルエンドポイントが利用可能に Global endpoint (2025-05-02) Gemini API(on Vertex AI)でグローバルエンドポイントが利用可能に(GA)。 自動的に空いているリージョンの API を使ってくれるので、Google 側のリソース枯渇を示す resource exhausted(429)のリスクを減らせる。ただしバッチ推論やコンテキストキャッシングなど一部の機能は利用不可。また、データの所在地に関連する規制要件等にも注意が必要。 Gemini API(Vertex AI)で Elasticsearch を使ったグラウンディング Grounding with Elasticsearch (2025-05-05) Gemini API(on Vertex AI)で Elasticsearch を使ったグラウンディングが可能に(GA)。Google 検索や Vertex AI Search データソースへのグラウンディングとも併用可能。 なお同時に Vertex AI Search データソースへのグラウンディングも Preview → GA された。 Cloud Composer 1(Airflow 2)から Composer 3 への移行が可能に Migrate to Cloud Composer 3 from Cloud Composer 1 (Airflow 2) (2025-05-05) Cloud Composer 1(Airflow 2)から Composer 3 へ、スナップショットを使って移行できるように。まずは限定したリージョンで対応、のちに全リージョンへロールアウトされる。 Cloud CDN でキャッシュタグによるキャッシュ無効化が Preview→GA Invalidation by cache tags (2025-05-05) Cloud CDN でキャッシュタグによるキャッシュの無効化(Invalidation)が Preview→GA。 レスポンスの Cache-Tag の値に応じて、狙い撃ちしてキャッシュを invalidation できる。 Google Vids で Veo 2 を使った動画生成が可能に Generate custom video clips in Google Vids with Veo 2 (2025-05-06) Google Vids で、Veo 2 による AI 動画生成が可能に。AI が8秒間の動画クリップを生成。追加費用なしで利用できる。ただし、1日に20回までの上限あり。 Google Vids とは、Google Workspace に付帯の動画編集ツール。Veo 2 とは、Google の動画生成 AI モデル。 Gemini アプリで音声概要が日本語対応 Google Workspace Updates Weekly Recap - May 9, 2025 (2025-05-09) Geminiアプリで、ドキュメントやスライド、生成した Deep Research レポートなどに対して NotebookLM と同じような音声概要(ポッドキャスト風音声)を生成できる機能が、日本語にも対応予定。これまでは英語のみだった。 SCC の Compute Engine 関連検知事項ダッシュボード(Preview) Monitor security risks with Security Command Center (2025-05-09) Google Cloud コンソールで、Security Command Center の Compute Engine に関わる検知事項を表示するダッシュボードが登場(Preview)。Compute Engine 画面から遷移できる。 BigQueryの実行グラフ画面にクエリが表示(Preview) Monitor security risks with Security Command Center (2025-05-09) BigQuery の実行グラフ画面に、クエリが表示されるように。ステップに関連する箇所がハイライト表示され、詳細も付記される。クエリチューニング時の深い理解に役立つ。 Googleスプレッドシートで Gemini を使った様々な操作が可能に Use Gemini in Google Sheets to quickly add dropdowns, pivot tables, filters, and more (2025-05-13) Googleスプレッドシートで Gemini を使い「ドロップダウン」「条件付き書式」「ピボットテーブル」「フィルタリング」「並べ替え」などの編集ができるようになる。 操作手順を知らなくても自然言語の指示で編集が可能に。 BigQuery で GROUP BY ALL、GROUP BY STRUCT、GROUP BY ARRAY BigQuery release notes - May 13, 2025 (2025-05-13) BigQuery で GROUP BY ALL、GROUP BY STRUCT、GROUP BY ARRAY が使えるように。SQL の簡素化に繋がる。 BigQuery universal catalog でメタデータのバルクエクスポート Export metadata (2025-05-13) BigQuery universal catalog(旧 Dataplex Catalog)でメタデータのバルクエクスポート(Cloud Storage へ)が可能に。 BigQuery のメタデータをエクスポートして、サードパーティで利用・処理・分析したり、プログラマブルに処理したりできる。 Snowflake から BigQuery へのデータ転送(Preview) Schedule a Snowflake transfer (2025-05-14) BigQuery Data Transfer Service で Snowflake から BigQuery へのデータ転送が Preview 公開。 Snowflake の AWS ホスト版のみ対応。マネージドな仕組みで自動・定期的な転送が可能。 Amazon S3 バケットを経由するため AWS アカウントと IAM User Credentials が必要。 BigQuery でリージョンをまたいだデータの LOAD や EXPORT BigQuery release notes - May 14, 2025 (2025-05-14) BigQuery でリージョンをまたいだデータの LOAD や EXPORT(to Cloud Storage、Pub/Sub等)が可能に。 bq load、LOAD DATA、bq extract、EXPORT DATA などで可能。リージョン間データ転送料金に注意。 AppSheet で Gemini in AppSheet Solutions が公開 Extract and categorize data in AppSheet with the power of Gemini (2025-05-14) ノーコード開発ツール AppSheet で Gemini in AppSheet Solutions が公開。以下のような、AI を使ったアプリ開発が可能になる。 写真から文字の抽出 PDF の解析 情報の分類 ...など Enterprise Plus エディションで利用可能。 IAM ロールと権限(permission)のリファレンスドキュメントが刷新 IAM roles and permissions index (2025-05-15) Google Cloud の IAM ロールと権限(permission)のリファレンスドキュメントが刷新され、見やすく&読み込みが高速に。 ロールと権限のリファレンスが統一され、どちらでも検索できる。かつサービスごとのページに再構成された。IAM 権限を運用する人や、開発・構築時に権限を調べるときに、かなり楽になった。 BigQuery で「継続的クエリ」が Preview → GA Introduction to continuous queries (2025-05-19) BigQuery で「継続的クエリ」が Preview → GA。 テーブルに追加されたレコードに対して数秒〜数十秒の遅延でニアリアルタイムに SQL による加工ができる。BigQuery ML で AI による推論も可能。以下の記事も参照。 blog.g-gen.co.jp Vertex AI API 経由での Gemini に新機能が多数追加 Vertex AI release notes ‐ May 20, 2025 (2025-05-20) Google I/O(5/20〜21)で、Gemini に関する対数の発表あり。 Gemini 2.5 Flash の Live API(リアルタイムで音声インプット・アウトプット) Gemini 2.5 Pro の Deep Think(強化推論モード。複雑な数学やコーディング) Thought summaries(思考経緯をサマリ) 新モデル Veo 3・Imagen 4・Lyria 2(それぞれ動画、画像、音楽生成) 新バージョン gemini-2.5-flash-preview-5-20 Gemini アプリの Canvas 機能がアップデート More ways to create with Canvas (2025-05-20) Personalize learning with Quizzes, available through Canvas in the Gemini app (2025-05-20) Gemini アプリの Canvas で追加の機能が登場。 Web ページ作成 インフォグラフィックス クイズの作成 音声概要 Microsoft SharePoint Online からの移行ツールが Open Beta Available in Open Beta: Migrate files from Microsoft SharePoint Online to Google Drive (2025-05-21) Google Workspace で Microsoft SharePoint Online から Google ドライブへの移行ツールが Open Beta 公開。 ドキュメントライブラリ、フォルダ、ファイル、権限などを移行できる。追加・更新されたファイルの差分転送も可能。 Gemini Code Assist のバックエンドモデルが Gemini 2.5 に Gemini Code Assist release notes ‐ May 22, 2025 (2025-05-22) Gemini Code Assist が Gemini 2.5 を使うようになった。 コード生成・修正、チャットのバックエンドモデルが最新化。Google I/O で発表されていた内容がリリースノートに載った形。 組織のポリシーのカスタム制約が BigQuery で利用可能に Manage BigQuery resources using custom constraints (2025-05-22) 組織のポリシーのカスタム制約が BigQuery で利用可能に。ユーザー独自の制約を定義できる。 統制のため使用リージョンや命名規則など一定のルールを強制的に課したいときに使える。 BigQuery の Optional job creation mode が GA Optional job creation mode (2025-05-27) BigQuery の Short query optimized mode が名称変更し Optional job creation mode として GA。 クエリ実行時に有効化すると適用可能な場合に同期的にジョブを実行し、レイテンシが改善。探索的なクエリやダッシュボードに使う想定。 blog.g-gen.co.jp Gemini Code Assist に Context Drawer が登場 Manage files and folders in the Context Drawer (2025-05-28) AI コーディング補助サービス Gemini Code Assist で、Context Drawer が登場。 ファイルやフォルダをドラッグ&ドロップすると明示的にコンテキストに含めてくれる。VS Code 版、IntelliJ 版で利用可能。 Google ドライブで Gemini による動画の要約が可能に Understand your videos much faster using Gemini in Google Drive (2025-05-28) Google ドライブで、Gemini を使って動画を要約できるように。 サイドパネルで「動画の要約」「ネクストアクションのリストアップ」「ハイライトを教えて」などが可能。長い動画や会議の録画をぜんぶ見直さなくてもよくなる。本日より、順次ロールアウト(最長1ヶ月程度)。 AlloyDB インスタンスが停止・起動可能に Start, stop, or restart instances (2025-05-29) AlloyDB でプライマリインスタンスやリードプールインスタンスを停止・起動・再起動できるように。 停止中のインスタンスはコンピュート料金が課金されない。また、停止/再起動してもパブリック IP アドレスは変更されない 。 Cloud Storage とBigQuery 間の Event-Driven Transfers が利用可能に(GA) Event-Driven Transfers (2025-05-29) BigQuery Data Transfer Service で、Cloud Storage と BigQuery 間の Event-Driven Transfers が利用可能に(GA)。 バケットにデータが到着すると自動で転送を実行。最短10分間隔。コスト効率よく、小さい遅延でデータを BigQuery にロードできる。 Google スライドで「画像の背景削除」が日本語版にも対応 Google Workspace Updates Weekly Recap - May 30, 2025 (2025-05-30) Google スライドで「画像の背景削除」が日本語版にも対応。 背景透過画像をボタン1つで作成できてかなり便利。これまでアカウント設定を英語にしていないと利用できなかった。他に Google Vids や Google Drawing でも同様の機能が利用可能。 透過前 透過後 Associate Cloud Engineer の資格対策書籍が出版 合格対策 Google Cloud認定資格Associate Cloud Engineer テキスト&演習問題 - Amazon (2025-05-30) G-gen のエンジニアによる Associate Cloud Engineer の資格対策書籍「合格対策 Google Cloud認定資格Associate Cloud Engineer テキスト&演習問題」が出版決定。 合格対策 Google Cloud認定資格Associate Cloud Engineer テキスト&演習問題 作者: 杉村 勇馬 , 佐々木 駿太 , 藤岡 里美 リックテレコム Amazon 杉村 勇馬 (記事一覧) 執行役員 CTO / クラウドソリューション部 部長 元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。 Follow @y_sugi_it
アバター
G-gen の荒井です。Google Cloud 認定資格はテストセンターで受験する他、オンラインで自宅からでも受験することが可能です。当記事ではオンライン受験前の準備や、受験時のポイントを紹介します。 はじめに Google Cloud 認定資格 オンライン受験のメリット・デメリット 試験の予約 CertMetrics での予約 試験言語 試験種別 予約日時 環境の準備 家族へ試験日時の連絡 端末の準備 Web カメラの準備 マイクの準備 セキュリティブラウザのインストール 受験する部屋の片付け 身分証の用意 OS アップデート 受験当日の準備 受験する部屋の片付け スマートフォンの通知設定 ファイアウォール設定 アンチウイルスソフト設定 アプリケーション(プログラム)の終了 試験当日 トラブル事例、注意点 インターネット接続が途切れた チェックイン中のカメラ・マイクトラブル PC トラブル セッションの切断 スマートフォンの通知(バイブ音) 花粉症のティッシュ 考え中は目を閉じる はじめに Google Cloud 認定資格 当記事では、Google Cloud 認定資格をオンラインで受験する場合の準備や、受験時のポイントを紹介します。 Google Cloud 認定資格の詳細については、以下の当社記事を参考にしてください。 blog.g-gen.co.jp オンライン受験のメリット・デメリット オンライン受験にはメリットとデメリットがあります。それぞれ確認して、オンライン受験がご自身にとってメリットがあるかどうか確認してください。 メリット 場所を選ばずに受験できる 試験日時の選択肢が広い 移動時間や交通費が削減できる 慣れた環境でリラックスして受験できる 予約変更・キャンセルが比較的容易にできる デメリット 部屋の片付けなど、場所を用意する必要がある 自身でPCなどの設備を用意する必要がある ネットワークトラブルなどのリスクがある テスト開始まで試験官との確認時間が長く、すぐに開始ができない メリットの中で特に大きいのが「 場所を選ばずに受験できる 」点です。テストセンターは首都圏などには多くありますが地方都市では限られていますし、テストセンターがない都道府県もあります。そのためオンライン受験は地方都市在住の受験者にとって、心強い選択肢です。 大きいデメリットとして「 部屋の片付けなど、場所を用意する必要がある 」が挙げられます。オンライン試験の受験前には、デスク周りや部屋を、試験に適した状態にするよう試験官から要求されます。また試験中、受験者の顔や部屋の様子は Web カメラで監視されます。デスク周りの物品や部屋のレイアウトを、適した状態に変更する労力が必要になります。 試験の予約 CertMetrics での予約 CertMetrics にログインして、試験予約を行います。予約時は以下について注意してください。 試験言語 試験予約時、試験の言語を選択することが可能です。任意の言語を選択してください。認定資格の種類によっては日本語が選択できない試験もあります。詳細は以下の記事を参照してください。 blog.g-gen.co.jp 試験種別 試験予約画面では、オンライン試験だけでなくオンサイト試験の予約も可能です。試験種別を間違えないよう、予約時はしっかり確認をしてください。 予約日時 オンライン受験は前述した通り柔軟に日時設定が可能であり、深夜でも受験することができます。予約の際は、AM・PM の時間指定を間違えないように気をつけます。 環境の準備 家族へ試験日時の連絡 自宅でオンライン受験する場合、受験中に家族が部屋に入ってくるなどのトラブルも発生しかねません。家族には予め試験日程を伝えたり、部屋の外に貼り紙などをして試験日時を家族に伝えてください。また試験中にインターホンなど鳴らないよう、通販の荷物到着日や訪問者の予定を確認してください。 試験中に上記のような事態が発生した場合、試験が停止してしまう場合があります。 端末の準備 オンライン受験を行うには、PC が必要です。PC は、Windows、Macintosh、Chromebook(機種指定あり) のいずれかでなければなりません。 PC は会社所有ではなく、個人所有など業務に関係のない端末の使用が指定されています。会社所有端末ではシステム設定やネットワーク設定についてポリシー管理されているケースがあるため、オンライン試験に必要な設定ができない場合があります。 参考 : Online Testing Requirements: What You Need to Know PC の筐体について指定はありませんが、Web カメラ付きのノートパソコンが推奨されます。 詳細は後述しますが、受験時に部屋の中を Web カメラで撮影するステップがあります。その際 Web カメラを移動させたり色々な方向に向ける必要があります。デスクトップ PC で有線の Web カメラを使用していると、ケーブルの長さの制限により、試験官が指定した場所の撮影ができず進行に支障が出ることがあります。 Web カメラの準備 Web カメラを用意します。Web カメラが内臓されているノートパソコンの場合、そのまま使用して問題ありません。また実際に起動できるか、事前にWeb カメラのテストも行ってください。 普段使用しないため Web カメラの機能をオフにしている場合、システム設定だけでなく、筐体横などにある物理スイッチの確認も行いましょう。デスクトップ PC での受験を考えている方は、外付け Web カメラのケーブルが十分に引き出せるか確認します。試験開始時に Web カメラを持って部屋の中を投影する必要があります。 参考 : オンライン監督付き (OLP) 試験にはどのようなカメラとカメラ設定が必要ですか? 参考 : Online Proctored Dual Camera Requirement マイクの準備 マイクを用意します。PC がノートパソコンの場合、内臓されているケースが多いです。実際にマイクが使えるか事前にテストを行っておきましょう。デスクトップ PC での受験を考えている方は、外付けマイクの用意をします。 セキュリティブラウザのインストール 試験を受ける際は、LockDown Browser というセキュリティブラウザを使用する必要があります。CertMetrics から Webassessor にログインし、LockDown Browser をインストールします。 参考 : How do I install LockDown Browser? – Respondus Support 受験する部屋の片付け 受験を行う部屋の片付けは最重要ポイントであり、要件が厳しく指定されています。片付けるポイントは、以下のとおりです。 受験時に着席する場所から、手の届く範囲に不要なものがないこと デスク周りのペンやバッグに注意 ディスプレイなどは見えないよう覆います ホワイトボードは消すか覆います 壁やデスクにある付箋などのメモを取り除きます 生活の都合上どうしても片付けが難しい場合、不要なものが少ない風呂場などで受験するケースも見られます。どうしても受験環境が構築できない場合、テストセンターでの受験を検討します。 参考 : オンライン試験の事前チェックの準備方法 身分証の用意 受験開始時に身分証の提示を要求されるため、身分証も用意します。運転免許証でも問題ありませんが、試験官は日本人でない場合が多いため、英語の記載があるパスポートが推奨されます。 参考 : テストセンターにはどのような身分証明書を持参する必要がありますか? OS アップデート 受験当日に、再起動を伴う OS アップデートなどが発生した場合、予約時間に試験を開始できない場合があります。アップデートは受験日までにすべて済ませておきましょう。 受験当日の準備 受験する部屋の片付け 受験当日は、最後の片付けを行います。不要なものがある場合、試験が開始できません。改めて以下のポイントを確認し片付けを行います。 受験時に着席する場所から、手の届く範囲に不要なものがないこと ペン立てがある場合、ペンを抜いておきます デスクの下などにバッグがある場合、移動します 何も入っていなくても、コップは移動します ディスプレイなどは見えないよう覆います ホワイトボードは消すか覆います 壁やデスクにある付箋などのメモを取り除きます 手の届かない場所であれば(背面側の壁など)、書籍などがあっても問題ありません 以下は、筆者が受験した際の環境です。参考にしてください。 こちらは、普段のデスクです。 こちらが、受験時のデスクです。ディスプレイやガジェットは紙で覆って見えなくしています。 コップは中身がなくても指摘されます。試験エリア外に除外します。 ペンも全て抜いて、試験エリア外に除外します。 バッグはデスクの内側にあった際、指摘がありました。可能な限り、試験エリア外に除外します。 スマートフォンの通知設定 試験中はスマートフォンの使用は禁止ですが、チェックイン(当日の試験開始プロセス)の際にスマートフォンが必要となります。チェックイン後にスマートフォンをテストエリアから除外できればよいのですが、そうでない場合試験エリア内で手の届かない場所にスマートフォンを置いておく必要があります。 スマートフォンの通知音(バイブレーション含む)が頻繁に鳴ると試験が中断されてしまう場合があるため、やむを得ず試験エリアにスマートフォンを置いておく場合、通知が鳴らない設定にしておきましょう。 ファイアウォール設定 PC でファイアウォールが有効になっている場合、試験前に無効にします。ファイアウォールが有効になっている場合、意図しない通信制限が発生し、試験要件を満たせず受験できない場合があります。 参考 : ファイアウォールを無効にする-Mac-Windows アンチウイルスソフト設定 OS のファイアウォール以外にも、アンチウイルスソフトでファイアウォールが有効になっている場合があります。試験前にアンチウイルスソフトのファイアウォールも無効にします。 アプリケーション(プログラム)の終了 試験用 PC を起動したら、すべてのアプリケーションを終了します。LockDown Browser 起動時、他のアプリケーションを終了を促すプロンプトが表示されます。ここからアプリを終了すると、強制終了となってしまうため、事前に終了しておきます。 主に気をつけるべきアプリケーションは以下のとおりです。 ブラウザ以外で開いているアプリケーション 常駐アプリケーション(以下例) アンチウイルス メッセンジャーツール クラウドストレージのデスクトップアプリ 試験当日 試験時間になったら、Webassessor の「アセスメント」より試験開始ボタンをクリックし試験に臨みます。ウィザードが開始されるので、ウィザードに沿って受験環境を確認します。 チェックイン(試験開始プロセス。受験環境の確認などを行う)は以下の項目を1つずつ確認するため、20分〜40分程度かかります。要点を書き出しますので、事前に確認をしてスムーズにチェックインできるように準備をします。 デバイス状態の確認 PC の電源が接続されているか プログラムがすべて終了されているか テスト環境の確認 帽子、ヘッドホン、上着のフードは着用していないか 時計、ブレスレッド、ストラップ、ネックレスは着用していないか テストエリアは適切な明るさが確保されており、背景は明るすぎないか(逆光になっていないか) LockDown Browser の起動 規約の確認 生体認証の説明と確認 メガネやマスクは外す テスト環境は暗くないか 認証・機器のテスト 生体認証(顔認証) インターネット接続テスト マイクテスト(テスト録音) カメラテスト(テスト撮影) 上記テストは、生体認証以外であれば事前に確認することができます。環境に不安がある場合、下記の「System Check」より事前に確認します。 参考 : System Check - Kryterion 参考 : How to Launch an Online Proctored (OLP) Exam チェックイン スマートフォンで QRを読み込むか、URL を入力しチェックイン画面にアクセスしチェックイン作業を行う 自身の顔を撮影 身分証を撮影 部屋の四方を撮影 正面 正面右 正面左 左の壁 右の壁 背面の壁 テストエリア( PC 配置場所) 待機時間 待機時間はミニゲームと待機人数が表示されます。 オペレーターとチャット 待機時間が終了するとオペレーターとチャットが開始され、最終確認を行います。オペレーターからのチャットは機械翻訳されたような日本語で送られてきます。もし英語で送られてきた場合「日本語でお願いします」と入力すると日本語に変換されチャットが送られてきます。 試験中は休憩ができないことの確認 試験前にトイレに行くか否かの確認 部屋の全体を Web カメラで投影 規約の確認 試験開始 チェックイン時間は、試験時間に含まれません。 トラブル事例、注意点 インターネット接続が途切れた 試験中、インターネット接続が不安定になった事例があります。その際は、試験が一時停止されたことを示すメッセージが表示されました。 その後、インターネット接続環境が回復すると、メッセージが消えて試験が再開されました。落ち着いて画面のメッセージを確認してください。 チェックイン中のカメラ・マイクトラブル ファイアウォールの停止忘れにより、チェックイン中にカメラやマイクが動作しなかった事がありました。ファイアウォールの停止は、一度チェックインのプロセスから離脱しなければなりませんが、既にチェックインで数十分かかってしまっていたため、試験プロセスが中止になってしまわないか、不安もありました。 しかし、チェックインを中断したところ、試験時間が再設定された旨のメールが届いており、そこから無事、チェックインを再開できました。 試験官とのチャットにたどり着くまでは、運営側とのコミニュケーション手段はメールになります。落ち着いてメールを確認してください。 PC トラブル チェックイン中にPCトラブルで強制シャットダウン(ブルースクリーン)が発生し、試験が開始できなかったことがありました。数回発生し時間経過してしまったため、Webassessor の「アセスメント」から試験開始ができなくなってしまいました。 メールを確認すると「Kryterion サポートから問い合わせを行ってください」という旨の連絡がありました。 https://support.kryterion.com/lang/ja/ にアクセスし、右下のピンクのアイコンからサポート担当者に問い合わせを開始し試験の再開ができました。 万が一事情によりメールが届かない場合、Kryterion のチャットサポートから問い合わせを行うことが出来ます。問い合わせの際は以下情報を用意しておくと、問い合わせがスムーズにできます。 メールアドレス 氏名 試験名称 セッションの切断 なんらかの事情で、チェックイン中にセッションが切断されてしまったことがありました。セキュリティブラウザ自体はそのまま起動しており、ポップアップ画面で「[✕] ボタンでブラウザを閉じてください。」とのメッセージが表示されましたためセキュリティブラウザを [✕] で閉じようとしましたが反応しませんでした。 Windows 端末のため、ブラウザを強制終了すべく [Ctrl + Alt + Delete] からタスクマネージャーを表示しようと思いましたが、これも反応しませんでした。 最終的に、画面内に「試験終了」というボタンがあったためそれをクリックすることでセキュリティブラウザが閉じました。ブラウザ自体が反応しない場合 PC のハードスイッチで強制終了しか手段がありませんが、セキュリティブラウザを閉じる際は「試験終了」から終了します。 スマートフォンの通知(バイブ音) 試験中、スマートフォンの通知が多く発生し、バイブが断続的に鳴り続けてしまったことがありました。 その際、試験画面に「テストエリアに不要なものがあります。クリアにしてください。」といったメッセージが表示されました。スマートフォンの操作を行ってしまうと、カンニングの疑いがかかると考え、近くにあった柔らかい布の上にスマートフォンを置いてバイブ音を軽減しました。 試験画面のメッセージはしばらくしたら消え、試験を再開することが出来ました。スマートフォンの通知には気をつけましょう。 花粉症のティッシュ 春先に試験を受けた際、花粉症で鼻水が止まらないことがありました。試験官にチェックインのチャットで相談したところ、ティッシュ数枚であれば承認を得た後持ち込みが可能でした。 ただしティッシュは箱や袋から出して、不正がないよう1枚ずつカメラに投影してチェックする必要がありました。テストエリアへの不要な物品の持ち込みは禁止ですが、やむを得ず必要となるものがある場合、試験官に相談してください。 考え中は目を閉じる 試験官とのチャットで案内もありますが、テスト中はカンニングを疑われないよう、目線を上下左右に逸らすことは避けます。目の疲労を感じた場合は、目を閉じて休憩してください。 その他オンライン受験に関する情報は下記ページに集約されています。事前に確認してからオンライン試験に臨んでください。 参考 : オンライン監督ガイダンス 荒井 雄基 (記事一覧) クラウドソリューション部 クラウドサポート課 オンプレ環境のネットワーク・サーバーシステムを主戦場としていたが、クラウド領域にシフト。現在は Google Workspace を中心に企業の DX 推進をサポート。 ・ Google Cloud Partner Top Engineer 2025 ・Google Cloud 認定資格 7冠 最近ハマっていることは、息子とのポケモンカード Follow @arapote_tweet
アバター
G-gen の福井です。当記事では、Cloud Run 上で動作する Python アプリケーションのパフォーマンス分析に焦点を当て、Google Cloud の Cloud Trace を用いてリクエスト処理のボトルネックを特定・可視化する手順を紹介します。 はじめに Cloud Trace とは トレースとスパン トレースコンテキスト サンプリング 事前準備 Cloud Trace API の有効化 サービスアカウントの作成とロールを付与 アプリケーションへのトレース実装 ディレクトリ構成 必要なライブラリのインストール OpenTelemetry の設定と使用 Cloud Run へのデプロイ Dockerfile の準備 Cloud Run にデプロイ 動作確認 Cloud Trace で処理時間を確認 トレースリストの表示 トレースリストの見方 パフォーマンスのボトルネックを特定 トレース詳細の表示 トレース詳細の見方 はじめに Cloud Trace とは Cloud Trace は、Google Cloud が提供する 分散トレーシングシステム です。アプリケーションに対するリクエストが、システム内の複数のサービスやコンポーネントをどのように経由していくかを追跡し、各処理ステップでのレイテンシ(遅延時間)を収集・可視化します。特にマイクロサービスアーキテクチャのように、一つのリクエストが複数のサービスにまたがる場合に、パフォーマンスのボトルネックを特定するのに役立ちます。 参考: Cloud Trace の概要 Cloud Trace を理解する上で重要な、以下の基本概念について説明します。 トレースとスパン トレース (Trace)は、特定のリクエストがアプリケーション内で一連の処理を完了するまでの全体の流れを示すものです。このトレースは、一つ以上の「スパン」から構成されます。 スパン (Span)は、トレース内で行われる個々の作業単位を表します。例えば、特定の関数呼び出し、外部 API へのリクエスト、データベースクエリなどが一つのスパンに対応します。各スパンは、開始時刻、終了時刻、名前、一意の ID、そして親子関係を示す情報(どのスパンから呼び出されたか)などを持ちます。トレース全体を包含する最初のスパンを ルートスパン と呼びます。 参考: トレースとスパン トレースコンテキスト 分散システムにおいて、リクエストがサービス境界を越えて伝播する際に、トレース情報をどのように引き継ぐかが重要です。 トレースコンテキスト (Trace Context) は、このトレース ID や現在のスパン ID などの情報をサービス間で伝播させるための標準化された方法です。一般的には、HTTP ヘッダー(例: traceparent )などを用いて情報を伝達します。これにより、複数のサービスにまたがる処理を単一のトレースとして正しく紐付けることができます。 参考: トレース コンテキスト サンプリング 常にすべてのリクエストのトレースデータを収集すると、特に高トラフィックなシステムでは、データ量やパフォーマンスへのオーバーヘッド、コストが大きくなる可能性があります。そのため、 サンプリング (Sampling)という手法を用います。これは、一定の割合のリクエストのみをトレース対象とする仕組みです。 Cloud Trace は、計装ライブラリ(今回使用する OpenTelemetry など)と連携し、設定されたサンプリングレートに基づいてトレースデータを収集します。どのようなサンプリング戦略(常にサンプリングする、一定割合でサンプリングする、など)を取るかは、アプリケーション側で設定します。 参考: トレース サンプリング 事前準備 Cloud Trace API の有効化 アプリケーションがトレースデータを Google Cloud に送信するためには、プロジェクトで Cloud Trace API を有効にする必要があります。 gcloud services enable cloudtrace.googleapis.com 参考: Cloud Trace の設定 サービスアカウントの作成とロールを付与 以下の gcloud コマンドを順次実行します。 なお、以下のコマンド内で使用されている環境変数 PROJECT_ID の your-project-id の部分は、ご自身の Google Cloud プロジェクト ID に置き換えてください。 # 環境変数の設定 PROJECT_ID =your-project-id SA_NAME =sv-cloud-trace-demo-app # サービスアカウント作成 gcloud iam service-accounts create $SA_NAME \ --description =" Cloud TraceでCloud Runの処理時間を計測するサービスアカウント " \ --display-name =" Cloud TraceでCloud Runの処理時間を計測するサービスアカウント " # サービスアカウントへ権限付与 gcloud projects add-iam-policy-binding $PROJECT_ID \ --member =" serviceAccount: $SA_NAME @ $PROJECT_ID .iam.gserviceaccount.com " \ --role =" roles/cloudtrace.agent " gcloud projects add-iam-policy-binding $PROJECT_ID \ --member =" serviceAccount: $SA_NAME @ $PROJECT_ID .iam.gserviceaccount.com " \ --role =" roles/logging.logWriter " アプリケーションへのトレース実装 Python アプリケーションにトレースデータを収集・送信するコードを追加します。ここでは、テレメトリデータ(トレース、メトリクス、ログ)を生成・収集するためのオープンソースのオブザーバビリティフレームワークである OpenTelemetry を使用します。 ディレクトリ構成 今回開発する Python アプリケーションのディレクトリ構成は以下のとおりです。 cloud-trace-demo-app |-- main.py |-- requirements.txt |-- Dockerfile 必要なライブラリのインストール OpenTelemetry 関連の Python ライブラリをアプリケーションの依存関係に追加します。 requirements.txt # Webフレームワーク flask>=2.0 # OpenTelemetry Core opentelemetry-api==1.32.1 opentelemetry-sdk==1.32.1 # Cloud Trace Exporter opentelemetry-exporter-gcp-trace==1.9.0 # Automatic Instrumentation opentelemetry-instrumentation-flask==0.53b1 opentelemetry-instrumentation-requests==0.53b1 # Logging opentelemetry-instrumentation-logging==0.53b1 google-cloud-logging==3.12.1 OpenTelemetry の設定と使用 アプリケーションコードに OpenTelemetry の設定と、トレース(スパン)生成のための実装を追加します。 以下は、Flask アプリケーションに、OpenTelemetry の初期化、自動計装の適用、および手動でのスパン作成を組み込んでいます。 main.py import logging import time import google.cloud.logging import requests from flask import Flask from opentelemetry import trace from opentelemetry.exporter.cloud_trace import CloudTraceSpanExporter # OpenTelemetry 自動計装ライブラリ from opentelemetry.instrumentation.flask import FlaskInstrumentor from opentelemetry.instrumentation.logging import LoggingInstrumentor from opentelemetry.instrumentation.requests import RequestsInstrumentor # OpenTelemetry SDK コンポーネント from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor # -------------------------------------------------------------------------------- # --- OpenTelemetry SDK の初期化と設定 # -------------------------------------------------------------------------------- # リソースの定義: トレースに紐付けるサービス名などを設定 resource = Resource(attributes={ "service.name" : "my-python-cloudrun-service" }) # TracerProviderの作成: リソース情報を紐付け provider = TracerProvider(resource=resource) # CloudTraceSpanExporterの作成: トレースデータを Google Cloud Trace に送信 trace_exporter = CloudTraceSpanExporter(resource_regex= "^service\.name$" ) # BatchSpanProcessorの作成: スパンをまとめて効率的にエクスポート trace_processor = BatchSpanProcessor(trace_exporter) provider.add_span_processor(trace_processor) # グローバルなTracerProviderとして設定: アプリケーション全体で使用可能に trace.set_tracer_provider(provider) # -------------------------------------------------------------------------------- # --- Python標準loggingとOpenTelemetry Logging計装の設定 # -------------------------------------------------------------------------------- # LoggingInstrumentorの有効化: ログレコードにトレースID/スパンIDを自動付加 # set_logging_format=True で、ログ形式にトレース情報が追加される LoggingInstrumentor().instrument(set_logging_format= True ) # Google Cloud Logging クライアントの初期化と設定 client = google.cloud.logging.Client() client.setup_logging(log_level=logging.INFO) logger = logging.getLogger(__name__) # -------------------------------------------------------------------------------- # --- OpenTelemetry Tracer の取得 # -------------------------------------------------------------------------------- # アプリケーションコード内で手動スパンを作成するためにTracerを取得 tracer = trace.get_tracer(__name__) # -------------------------------------------------------------------------------- # --- Flaskアプリケーションの初期化と自動計装 # -------------------------------------------------------------------------------- app = Flask(__name__) # FlaskInstrumentorの適用: Flaskリクエストの自動トレース FlaskInstrumentor().instrument_app(app) # RequestsInstrumentorの適用: requestsライブラリによるHTTPコールの自動トレース RequestsInstrumentor().instrument() # -------------------------------------------------------------------------------- # --- 手動スパン作成を含む各種処理関数 (例) # -------------------------------------------------------------------------------- @ tracer.start_as_current_span ( "step_1_initial_setup" ) # この関数実行を1つのスパンとして計測 def initial_setup (input_val): current_span = trace.get_current_span() # 現在アクティブなスパンを取得 current_span.set_attribute( "input.value" , str (input_val)) # スパンに属性を追加 logger.info( f "Executing initial_setup for: {input_val}" , extra={ "json_fields" : { "tags" : [ "setup" ], "input_data" : input_val}}, ) time.sleep( 1 ) result = f "Setup_{input_val}" current_span.set_attribute( "output.value" , result) return result @ tracer.start_as_current_span ( "step_2_data_validation" ) # この関数実行を1つのスパンとして計測 def validate_data (data_to_validate): time.sleep( 2 ) return len (data_to_validate) > 3 @ tracer.start_as_current_span ( "step_3_main_processing_logic" ) # この関数実行を1つのスパンとして計測 def main_processing_logic (valid_data): current_span = trace.get_current_span() logger.info(f "Starting main processing for: {valid_data}" ) # 特定のコードブロックを計測するためのネストしたスパン with tracer.start_as_current_span( "internal_process_A" ) as span_a: logger.debug( "Executing internal_process_A" ) # DEBUG レベルのログ例 time.sleep( 3 ) result_a = "Result_A_from_main_processing" span_a.set_attribute( "process_a.status" , "completed" ) # 別のコードブロックを計測するためのネストしたスパン (外部呼び出しを含む) with tracer.start_as_current_span( "call_dependent_microservice" ) as span_b: logger.info( "Calling dependent microservice (simulated via httpbin)" ) # このrequests呼び出しはRequestsInstrumentorにより自動トレースされる response = requests.get( "https://httpbin.org/get?service_call=true" , params={ "id" : "internal_B" }) span_b.set_attribute( "http.status_code" , response.status_code) result_b = response.json().get( "args" , {}) logger.info( "Dependent microservice call successful, args: %s" , result_b) final_result = f "{result_a} & {result_b}" current_span.set_attribute( "final_result.summary" , final_result[: 30 ]) logger.info( "Main processing completed." ) return final_result @ tracer.start_as_current_span ( "step_4_skip" ) # この関数実行を1つのスパンとして計測 def skip_loggic (): pass @ tracer.start_as_current_span ( "step_5_final_aggregation" ) # この関数実行を1つのスパンとして計測 def final_aggregation (data_from_main): current_span = trace.get_current_span() logger.info( "Aggregating final results." ) time.sleep( 5 ) aggregated_result = { "main_output" : data_from_main} current_span.set_attribute( "aggregation.items_count" , 2 ) logger.info( "Final aggregation complete." , extra={ "json_fields" : { "aggregated_keys" : list (aggregated_result.keys())}} ) return aggregated_result # -------------------------------------------------------------------------------- # --- Flask ルート定義 # -------------------------------------------------------------------------------- @ app.route ( "/" ) def main_request_handler (): # このリクエスト処理全体を包括する親スパンを手動で作成 with tracer.start_as_current_span( "main_request_flow" ) as parent_span: parent_span.set_attribute( "http.request.path" , "/" ) # スパンの属性にリクエストパスを追加 parent_span.set_attribute( "user.id" , "example_user_123" ) # スパンの属性にユーザー情報を追加 logger.info( "Main request handler started for user: %s" , "example_user_123" ) # step_1 setup_result = initial_setup( "Request_Payload_Data" ) # step_2 is_data_valid = validate_data(setup_result) # step_3 main_processed_data = main_processing_logic(setup_result) if is_data_valid: parent_span.add_event( "DataValidationSkipped" , { "reason" : "Invalid data" }) logger.warning( "processing skipped due to invalid data." ) else : # step_4 skip_loggic() # step_5 final_output = final_aggregation(main_processed_data) parent_span.set_attribute( "response.content_type" , "application/json" ) logger.info( "Main request handler completed successfully." ) return final_output # -------------------------------------------------------------------------------- # --- アプリケーション起動 # -------------------------------------------------------------------------------- if __name__ == "__main__" : app.run(debug= True , host= "0.0.0.0" , port= 7860 ) Cloud Run へのデプロイ Dockerfile の準備 アプリケーションをコンテナ化するための Dockerfile を作成します。 Dockerfile FROM python:3.12-slim WORKDIR /usr/src/app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . EXPOSE 7860 CMD [ " python ", " ./main.py " ] Cloud Run にデプロイ Dockerfile が存在するディレクトリで、以下の gcloud コマンドを順次実行します。 なお、以下のコマンド内で使用されている環境変数 PROJECT_ID の your-project-id の部分は、ご自身の Google Cloud プロジェクト ID に置き換えてください。 # 環境変数の設定 PROJECT_ID =your-project-id REGION =asia-northeast1 SA_NAME =sv-cloud-trace-demo-app # Cloud Run サービスをデプロイ gcloud run deploy cloud-trace-demo-app --source . \ --region = asia-northeast1 \ --allow-unauthenticated \ --port 7860 \ --memory = 1Gi \ --min-instances = 0 \ --max-instances = 1 \ --service-account = $SA_NAME @ $PROJECT_ID .iam.gserviceaccount.com \ --set-env-vars = PROJECT_ID = $PROJECT_ID , LOCATION = $REGION 動作確認 Cloud Run のデプロイが完了すると、標準出力に Cloud Run のエンドポイントが Service URL として出力されます。この URL に、ブラウザからアクセスします。 $ gcloud run deploy cloud-trace-demo-app --source . \ --region = asia-northeast1 \ --allow-unauthenticated \ --port 7860 \ --memory = 1Gi \ --min-instances = 0 \ --max-instances = 1 \ --service-account = $SA_NAME @ $PROJECT_ID .iam.gserviceaccount.com \ --set-env-vars = PROJECT_ID = $PROJECT_ID , LOCATION = $REGION Building using Dockerfile and deploying container to Cloud Run service [ cloud-trace-demo-app ] in project [ your-project-id ] region [ asia-northeast1 ] \ Building and deploying... Uploading sources. \ Uploading sources... OK Building and deploying... Done. OK Uploading sources... OK Building Container... Logs are available at ・・・ OK Creating Revision... OK Routing traffic... OK Setting IAM Policy... Done. Service [ cloud-trace-demo-app ] revision [ cloud-trace-demo-app-00003-tdv ] has been deployed and is serving 100 percent of traffic. Service URL: https://cloud-trace-demo-app-XXXXXXXX.asia-northeast1.run.app アクセスすると、以下の画面が表示されます。 アクセス後のブラウザ画面 Cloud Trace で処理時間を確認 トレースリストの表示 Google Cloud コンソールの Cloud Trace エクスプローラ画面を表示します。 以下の画面は、Cloud Run アプリケーションへ連続して数回アクセスした後の画面です。 トレースリスト トレースリストの見方 サービス名(①) プログラムで指定したサービス名で、関連するスパンを絞り込めます。 main.py におけるサービス名の指定箇所 スパン名(②) プログラムで指定したスパン名で、関連するスパンを絞り込めます。 main.py におけるスパン名のアノテーション例(関数) main.py におけるスパン名の指定例(コードブロック) ヒートマップ(③)と一覧(④) ヒートマップでスパンの実行時間や処理時間を可視化し、一覧でスパン詳細を確認できます。 パフォーマンスのボトルネックを特定 ヒートマップでは、処理時間が長いスパンが上に表示され、呼び出し数が多いと色が濃く表示されます。ヒートマップ上で対象を選択するとスパン一覧が絞り込まれ、パフォーマンスのボトルネックとなっているリクエストを特定できます。 スパン一覧では、スパンごとに処理時間(列:期間)が表示されているため、処理時間の降順で並び替えることで、リクエスト内のより詳細なパフォーマンスのボトルネックとなっている箇所を特定できます。 トレース詳細の表示 トレースリストのスパン一覧からスパン ID のリンクを選択し、トレース詳細画面を表示します。 トレース詳細 トレース詳細の見方 タイムライン(①) トレース(単一のリクエスト)内における全スパンの実行の流れを時系列で示したものです。それぞれの横棒が個々のスパンを表し、棒の左端が処理の開始時刻、右端が終了時刻を示し、その長さが処理時間(レイテンシ)を意味します。スパンは親子関係に基づいて階層的に構成され、呼び出し元のスパンの下に、呼び出された処理のスパンがインデントされて表示されます。リクエスト全体の処理時間は、一番上に位置するルートスパンの長さとして示されます。 属性(②) タイムライン上のスパンを選択すると、選択したスパンに紐づくプログラムで指定したキーと値の属性情報が表示されます。 属性 main.py における属性の指定例 ログ(③) タイムライン上のスパンを選択すると、選択したスパンに紐づくプログラムで出力した Cloud Logging のログ情報が表示されます。 ログ main.py におけるログの指定例 福井 達也 (記事一覧) カスタマーサクセス課 エンジニア 2024年2月 G-gen JOIN 元はアプリケーションエンジニア(インフラはAWS)として、PM/PL・上流工程を担当。G-genのGoogle Cloudへの熱量、Google Cloudの魅力を味わいながら日々精進
アバター
G-genの杉村です。Google ドライブのファイル共有は非常に便利ですが、設定を誤ると意図せず情報が公開されてしまう可能性があります。本記事では、Google ドキュメント、Google スプレッドシート、Google スライドなどを安全に共有するための設定方法と注意点を解説します。 Google ドライブのファイル共有とは 共有設定の種類と注意点 3種類の共有状態 リンクを知っている全員 制限付き (組織部門名) 安全なファイル共有方法 インターネット公開を禁止する Google ドライブのファイル共有とは Google ドライブに保存されている Google ドキュメント、Google スプレッドシート、Google スライドなどのファイルは、他の Google Workspace ユーザーや、無償の Gmail アカウントを持つユーザーに簡単に共有できます。ファイルを開いた状態で画面右上に表示される「共有」ボタンから設定を行います。 Google ドライブのファイルの共有設定 共有設定では、誰がファイルにアクセスでき、どのような操作(閲覧のみ、コメント可、編集可)を許可するかを、細かく制御できます。 参考 : Google ドライブのファイルを共有する - Google Drive ヘルプ 共有設定の種類と注意点 3種類の共有状態 ファイル共有設定画面の「一般的なアクセス」項目では、「 リンクを知っている全員 」、「 制限付き 」、「( 組織部門名 )」の選択肢があります。 ※( 組織部門名 )は、スクリーンショットでは「G-gen デモ用」と表示されています。 3つの共有設定 リンクを知っている全員 「リンクを知っている全員」を選択すると、そのファイルのリンクを知っている人であれば、Google アカウントでログインしていなくても誰でもファイルにアクセスできるようになります。 リンクを知っている全員 また、ファイルにアクセスできる人に与えたい権限に応じて、「閲覧者」、「閲覧者(コメント可)」、または「編集者」を選択できます。 この設定は、不特定多数の人にファイルを公開したい場合(例: Webサイトで公開する資料など)には便利ですが、大きな注意点があります。「リンクを知っている全員」は、 ファイルをインターネットに公開している状態 です。 このリンクが意図しない経路で第三者に渡ってしまった場合、本来アクセスを許可するつもりのなかった人にもファイルの内容が閲覧されてしまうリスクがあります。ファイルの共有状態を「リンクを知っている全員」にすると、情報漏洩に繋がる可能性があるため、極めて慎重に判断する必要があります。 制限付き 「 制限付き 」は、明示的にアクセス権を付与されたユーザーのみがファイルにアクセスできる設定です。ファイルを共有したい相手の Google アカウント(メールアドレス)を個別に追加し、それぞれのユーザーに対して「閲覧者」、「閲覧者(コメント可)」、または「編集者」の権限を設定します。 これが、ファイルを特定の相手とのみ共有したい場合の 推奨される設定 です。 制限付き (組織部門名) 「一般的なアクセス」項目で、Google Workspace に設定されている組織部門の名称を選択すると、同じ組織部門に所属する Google アカウントに対して、ファイルを共有できます。最上位の組織部門に共有することで、同じ Google Workspace ドメインに所属する全従業員へ共有できます。 組織部門への共有 組織部門に対して共有する際も、「閲覧者」、「閲覧者(コメント可)」、または「編集者」のうち、いずれかの権限を設定できます。また、ユーザーが Google ドライブ上で検索したときに、検索結果に表示するか、あるいは検索結果には表示させず、リンクを明示的に知っている人のみにアクセスを限定するかも選択できます。 組織部門への共有(詳細) 安全なファイル共有方法 ファイルを意図しない相手に公開したくない場合は、以下の手順で共有設定を行います。 1. 「一般的なアクセス」を「制限付き」にする ファイル共有設定画面で、「一般的なアクセス」の項目が「制限付き」になっていることを確認します。もし「リンクを知っている全員」になっていたら、「制限付き」に変更します。 2. 共有したい相手を個別に追加する 「ユーザーやグループと共有」の入力欄に、共有したい相手の Google アカウントのメールアドレスを入力します。 共有対象アカウントのメールアドレスを入力 3. 適切な権限を設定する 追加したユーザーごとに、以下のいずれかの権限を選択します。 閲覧者 : ファイルの閲覧のみ可能。変更やコメントはできない 閲覧者(コメント可) : ファイルの閲覧とコメントの追加が可能。編集はできない 編集者 : ファイルの閲覧、コメント、編集が可能 4. 通知とメッセージ (任意) 必要に応じて「通知」チェックボックスを有効にすると、共有相手に通知を送信し、メッセージを送信できます。 5 . 「送信」または「保存」をクリック 設定が完了したら、「送信」(新規共有の場合)または「保存」(既存の共有設定変更の場合)をクリックします。 権限選択、メッセージの追加、送信 インターネット公開を禁止する Google Workspace の管理者は、Google ドライブのファイルの共有状態を「リンクを知っている全員」にすることを禁止できます。インターネット公開を禁止するには、以下の手順を行います。 参考 : 組織の外部共有を管理する 管理コンソールにログインし、「アプリ > Google Workspace > ドライブとドキュメント」を開きます。 アプリ > Google Workspace > ドライブとドキュメント 「共有設定」をクリックします。 共有設定 「共有オプション」をクリックします。 共有オプション 「(組織部門名)の外部との共有が許可されている場合、(組織部門名)内のユーザーは、リンクを知っているすべてのユーザーに対して、ファイルおよび公開済みのウェブ コンテンツを公開することができます」の横にあるチェックボックスを外します。 ※( 組織部門名 )は、スクリーンショットでは「G-gen」と表示されています。 チェックボックスを外す 忘れずに、右下の「保存」ボタンを押下します。 保存ボタンを押下 なお、この設定をユーザーの所属する組織部門に設定した場合、ユーザーの マイドライブのファイル を「リンクを知っている全員」にすることができなくなります。 共有ドライブのファイルを「リンクを知っている全員」にすることを禁止するには、 共有ドライブに組織部門を割り当て 、その組織部門で上記の設定をする必要があります。 片方の設定だけでは、すべてのインターネット公開を禁止することはできませんので、注意してください。 参考 : さまざまなユーザーに設定を適用する 参考 : 特定の共有ドライブのデータポリシーを管理する 杉村 勇馬 (記事一覧) 執行役員 CTO / クラウドソリューション部 部長 元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。 Follow @y_sugi_it
アバター
G-gen の川村です。この記事では NotebookLM の 音声概要 機能にフォーカスした活用方法を解説します。 NotebookLM とは 音声概要とは 事前準備 言語設定 ソースの追加 音声概要の使い方 音声概要の生成 カスタマイズ機能 音声概要のダウンロード インタラクティブモード(ベータ版) 活用シーン 1. 通勤・移動中の情報収集を効率化 2. 目的別に学習を最適化 3. 複雑な資料の理解を促進 4. 参加型の対話モードでリアルタイムに情報整理 5. 多言語学習 注意点 NotebookLM とは NotebookLM とは、Google ドキュメント、PDF、音声、YouTube 動画などをソースとして指定し、その情報を基に要約・FAQ・メモを生成できる Google 提供の AI ノートサービスです。 一般的な生成 AI チャットアプリと異なり、回答の出典をユーザーが明示的に制御できるため、業務利用において高い信頼性が確保されます。 無償版で利用できる NotebookLM、有償版の NotebookLM in Pro、より企業向けの機能を強化した NotebookLM Enterprise があり、それぞれの機能の違いや活用ユースケースについては以下の記事を参照してください。 blog.g-gen.co.jp 音声概要とは NotebookLM の 音声概要 (Audio Overviews)とは、指定したソースに基づいて、 AI が2人の人間の自然な対話形式で内容を要約・解説する機能です。 2025年4月末から日本語を含む 50 以上の言語に対応し、日本語でも実用的なレベルで利用できるようになりました。Google 公式の紹介動画でも AI 生成と思えないような流暢な会話であることが確認できます。 youtu.be なお、利用回数制限は以下のとおりです。 NotebookLM : 3回/日 NotebookLM in Pro : 20回/日 参考 : NotebookLM の Pro 機能の詳細 参考 : NotebookLM を Pro プランにアップグレードする 事前準備 言語設定 まず、NotebookLM の出力される言語設定を行います。 [ 設定 ] 画面から[ 言語設定 ]を選択します。 Google アカウントの言語設定がデフォルトで設定されていますが、明示的に [日本語] を選択できます。 ソースの追加 続いて、NotebookLM に対象となるソースを追加します。 [ソース] からデータソースを追加後、[Studio] パネルの [音声概要] セクションの [生成] ボタンをクリックすると、音声概要が生成されます。 参照 : ソース 音声概要の使い方 音声概要の生成 今回は Google Cloud 資格の過去問題をまとめた資料(Google ドキュメント)をソースとして指定した例です。 [音声概要] セクションの [生成] ボタンを押すと、音声概要が生成されます。 生成には、数分かかります。生成完了後に再生ボタンを押すと、対話式の音声が再生されます。 実際に生成された音声はこちらです。 www.youtube.com 「試験のポイントとか、実践的な知識をギュッと抽出するのが目標です」 「〜っていうのはもう必須の知識ですよね」 「最後に 1 つだけあなたにも考えてみて欲しいことがあるんです」 このように対話には AI ホストによるソースの解釈に基づいて自然な相槌やコメント、さらには聞き手に対する問いかけもあります。まさにラジオ感覚で情報を耳から受け取りやすくなり内容の整理にも役立ちます。 カスタマイズ機能 [カスタマイズ] ボタンをクリックすると、トピックや話し方のスタイルを指定できます。最大 500 文字まで入力可能です。 聞きたい内容やスタイルに沿ったラジオ番組のような音声を生成するために、以下のような具体的な指示を入力します。 入力例 : 「VPC & Network Security」項目の内容を重点的に、且つ IT 初心者にもわかりやすい解説にして www.youtube.com 「特に Network Security のところをちょっと深掘りしてみようかなと」 「ファイアーウォールはネットワークの門番みたいなものです」 「これ単なる『ログ』っていうよりは、ネットワークの「健康診断の記録」みたいなものですね」 先程生成した網羅的な音声と比べると、よりユーザーの意図(特定トピックに絞った内容且つ、 IT 初心者に向けの解説)に沿った音声概要が生成されます。 音声概要のダウンロード 生成された音声は三点リーダーをクリックすると表示されるプルダウンメニューからダウンロードできます。 音声ファイルはスマートフォンで再生したり、NotebookLM のソースとして再アップロードすることで、要約・メモに再利用することも可能です。 インタラクティブモード(ベータ版) 2025年5月現在は英語版のみでの提供となりますが、再生中にユーザーが AI ホストに質問できる インタラクティブモード も試験提供されています。 再生中に「参加」ボタンを押すと AI ホストから声がかかり、アップロードされたソースに基づいて回答が得られます。質問への回答後、元の音声概要の再生が再開されます。(ユーザーの声ややりとりは保存されません) 公式動画での利用イメージは以下となります。 www.youtube.com 参考 : 音声概要 活用シーン 1. 通勤・移動中の情報収集を効率化 移動中や作業をしながら、耳で情報をインプットすることで効率的に学習や情報収集ができます。 ニュース記事やブログ記事、会議の議事録などを音声概要化し、移動時間や作業中も情報収集に充てる ダウンロードした音声ファイルでオフライン環境や、端末(パソコンやスマートフォンなど)を選ばず再生可能 NotebookLM モバイルアプリから、いつでもどこでも学習を開始 ※ 5月20日リリース 参照 : Google launches official NotebookLM mobile app 2. 目的別に学習を最適化 カスタマイズ機能 で、解説してほしい内容や焦点を当てるべきトピックを指定し学習を効率化します。 目的に合わせて学習トピックを絞り学習を効率化 以下のような指示で音声の内容・口調を調整し理解を深める 「セキュリティに関する側面を解説して」 「小学生にもわかるように説明して」 「合格までのステップを 5 つ以内で簡潔に解説して」 3. 複雑な資料の理解を促進 難解で複雑な内容の資料(研究論文、専門記事、長文レポートなど)も音声概要を利用することで、手軽且つ効率的に理解を深めることができます。視覚情報よりも聴覚情報の方が頭に入りやすいと感じる方にも有効です。 膨大な資料(300 ページの書籍 PDF など)を深く読み込む前に、音声で概要を掴み情報整理を支援 視覚(テキスト)では難解な内容を、聴覚(AI ホストの対話形式)で情報の背景や文脈をストーリーとして理解促進 4. 参加型の対話モードでリアルタイムに情報整理 2025年5月現在、英語のみでの提供ですが、インタラクティブモードを利用することで、ソースに対する AI ホストとの会話に参加できます。 再生中、疑問点が浮かんだ際にその場で解消 対話を通じて理解を深め、発想の幅を広げる 5. 多言語学習 50 を超える言語に対応しているため、多言語の学習にも大いに役立ちます。英語やフランス語など、さまざまな言語学習を効率的に行えます。出力言語の言語設定をすることで、任意の言語での生成を行うことができます。 英語で音声概要を生成・ダウンロードし、リスニング力を高める インタラクティブモードで AI ホストと対話し、スピーキング力を高める 生成した英語の音声ファイルをソースとして追加・テキスト化して、シャドーイングや単語学習に利用 プロンプト例 この音声をセリフごとに分割し、それぞれの英語文と日本語訳を表で一覧化してください。 注意点 音声概要機能は便利ですが、以下の点にご注意ください。 利用回数制限あり(無償版は 1日3回、NotebookLM in Pro は1日20回まで) 漢字の誤読あり(ふりがなや指示で回避可能) 自動生成のため誤情報を含む可能性あり(ソースに基づいた生成のためハルシネーションが起こりにくいが、ファクトチェック推奨) 生成中はブラウザを閉じない事を推奨(生成に時間がかかる) 削除・再生成した音声は再生不可(必要であればダウンロード推奨) インタラクティブモードは現状英語のみ対応 現状日本語音声は10分弱となり、長編音声は未対応(英語のみ 30 分以上対応) なお、今後のアップデートにより上記内容は改善される可能性があります。 川村真理 (記事一覧) クラウドソリューション部 クラウドサポート課 美容業界からITへ転身。Google Workspace 専任サポートから Google Cloud にも興味が湧き日々奮闘中。海外旅行が大好きで11カ国突破、これからも更新予定
アバター