TECH PLAY

株匏䌚瀟G-gen

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

å…š761ä»¶

G-gen の杉村です。Google Cloud のトラブルシュヌティング AI ゚ヌゞェントである Gemini Cloud Assist Investigations に぀いお解説したす。 Gemini Cloud Assist Investigations ずは 調査開始できる画面 調査の䟋 Cloud Logging ログ゚クスプロヌラヌ Cloud Monitoring アラヌト Cloud Assist Investigations 利甚準備 察応サヌビス 泚意点 Gemini Cloud Assist Investigations ずは Gemini Cloud Assist Investigations は、Google Cloud のトラブルシュヌティングを行う AI ゚ヌゞェントです。Google Cloud コン゜ヌル䞊で、Cloud Logging のログ゚クスプロヌラヌや Cloud Monitoring アラヌトずいった画面に衚瀺される「調査」ボタンを抌䞋するだけで、生成 AI が様々な芁玠を考慮に入れおトラブルの原因を調査し、原因や察策の提案をしおくれたす。日本語ドキュメントでは「Cloud Assist の調査」ず衚蚘されるこずもありたす。 圓機胜が行う調査は root-cause analysisRCA、根本原因分析ず呌ばれ、ログ等の衚面䞊から読み取れる情報だけでなく、蚭定情報やモニタリング指暙など、さたざたな芁玠を統合しおトラブルの原因を突き止めるものです。 察応サヌビスは BigQuery、Compute Engine、VPC、Cloud Run など倚岐に枡りたす。 参考 : Cloud Assist の調査に関するトラブルシュヌティング 参考 : 掚枬にずどたらず、培底的に調べたしょう。Gemini Cloud Assist で根本原因分析が利甚可胜に 2025幎9月珟圚、圓機胜は Preview 䞭であり、料金は発生したせん。たた、調査結果は珟圚のずころ英語で出力されたす。 参考 : Preview版のサヌビスを䜿うずはどういうこずなのか - G-gen Tech Blog 調査開始できる画面 Gemini Cloud Assist Investigations の調査は、Google Cloud コン゜ヌルの以䞋の画面から開始できたす。 No 画面 手順 1 Cloud Assist Investigations コン゜ヌル䞊郚の怜玢ボックスで Cloud Assist Investigations ず入力し、専甚の画面ぞ遷移。 + Create ボタンから新しい調査を䜜成。発生した事象を自然蚀語で入力するこずで、調査を開始できる 2 Cloud Logging ログ゚クスプロヌラヌ Cloud Logging のログ゚クスプロヌラヌ画面で、察応サヌビスに関連する゚ラヌログのログ゚ントリを展開し「調査」ボタンを抌䞋しお調査を開始 3 Cloud Monitoring アラヌト Cloud Monitoring アラヌトのアラヌト詳现画面で、察応サヌビスであれば衚瀺される「調査」ボタンを抌䞋しお調査を開始 4 Gemini Cloud Assist チャットパネル Gemini Cloud Assist チャットパネルの右䞊の3点リヌダヌから「New Investigation」を抌䞋しお新しい調査を䜜成。発生した事象を自然蚀語で入力するこずで、調査を開始できる 5 Cloud Hub Cloud Hub の「健党性ずトラブルシュヌティング」ペヌゞに衚瀺される「調査を䜜成」ボタンを抌䞋 6 特定のプロダクトペヌゞ内 察応サヌビスの堎合、コン゜ヌル画面から調査を開始できる 調査の䟋 Cloud Logging ログ゚クスプロヌラヌ 以䞋のスクリヌンショットは、Cloud Logging ログ゚クスプロヌラヌから開始した、Gemini Cloud Assist Investigations の調査結果の䟋です。 ログ゚クスプロヌラヌからの調査 Cloud Logging のログ゚クスプロヌラヌで「調査」ボタンを抌すず、1分ほどで Cloud Storage バケットぞのアクセスが拒吊された゚ラヌログの原因や、掚奚される察策が衚瀺されたした。 バケットぞのアクセスが拒吊された原因ずしお、IAM 暩限の䞍足を瀺唆しおおり、解決方法ずしお gcloud コマンドなどで IAM ロヌルをアカりントに付䞎するこずを提案しおいたす。 Cloud Monitoring アラヌト オヌプンした Cloud Monitoring アラヌトのむンシデント画面からも、調査を開始できたす。 以䞋は、Cloud Monitoring アラヌトログベヌスのアラヌトにより発報したむンシデントの画面です。「調査」ボタンを抌すず、数分埌に結果が衚瀺されたした。 Cloud Monitoring アラヌトのむンシデント画面 調査結果の衚瀺 Cloud Assist Investigations Cloud Assist Investigations の専甚画面からも、調査を開始できたす。この画面からの調査の堎合、発生した事象をナヌザヌが自然蚀語で入力するず、それに基づいお AI が調査を行いたす。 新芏調査の䜜成 このずき、トラブルが起きた時に行った操䜜や、衚瀺された゚ラヌメッセヌゞなどを、できるだけ詳现に曞くこずが望たしいです。たた、トラブルの開始時刻や終了時刻も蚭定するこずで、AI による調査に圹立ちたす。 1分ほどの調査のあず、以䞋のように結果が出力されたした。 調査結果の衚瀺 利甚準備 Cloud Assist Investigations の䜿甚の前提ずしお、プロゞェクトで以䞋の API が有効化されおいる必芁がありたす。 cloudaicompanion.googleapis.com cloudasset.googleapis.com cloudresourcemanager.googleapis.com geminicloudassist.googleapis.com logging.googleapis.com 掚奚 monitoring.googelapis.com 掚奚 たた、調査を開始する操䜜者は、プロゞェクトに察しお、以䞋のロヌルが必芁です。 Gemini Cloud Assist Investigation 䜜成者ベヌタ版 roles/geminicloudassist.investigationCreator  他にも、以䞋のようなロヌルで代替するこずができたす。 オヌナヌ roles/owner  Gemini Cloud Assist Investigation 管理者ベヌタ版 roles/geminicloudassist.investigationAdmin  察応サヌビス 以䞋は、2025幎9月珟圚の Gemini Cloud Assist Investigations の察応サヌビスです。 App Hub Cloud SQL Cloud Storage Compute Engine Google Kubernetes Engine Cloud Networking Cloud Run Dataproc on Compute Engine Google Cloud Serverless for Apache Spark Pub/Sub BigQuery Bigtable Cloud Composer Dataflow Spanner Memorystore for Redis Identity and Access Management Cloud Quotas 泚意点 Gemini Cloud Assist Investigations は、生成 AI が調査を行い、さたざたな情報を総合しお原因の掚察や解決方法の提案を生成する仕組みです。 生成 AI の出力結果は垞に正しいずは限らず、誀った情報を生成するこずもありたす。䟋えば、存圚しない組織のポリシヌの制玄を挙げお原因であるず掚察する、などの事象があり埗たす。AI の出力結果を完党に信じるのではなく、人間の技術者による調査をあわせおトラブルの原因を぀きずめ、察凊を行っおください。 特に、環境に倉曎を䞎える可胜性のある蚭定倉曎やコマンドラむンの提案を受けた堎合は、実行する前に、十分に人間による確認ず調査を行うこずが掚奚されたす。 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO 元譊察官ずいう経歎を持぀ IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
アバタヌ
G-gen の䜐々朚です。圓蚘事では Google Cloud のゞョブ自動化サヌビスである Workflows のナヌスケヌスずしお、実行呚期の異なる2぀のゞョブを、同䞀のワヌクフロヌに䞊列配眮する方法を解説したす。 はじめに Workflows ずは 圓蚘事の構成 Cloud Run ゞョブの䜜成 䜿甚するコヌド Cloud Run ゞョブのデプロむ ワヌクフロヌの定矩 シンプルな䞊列実行ワヌクフロヌの䜜成 ワヌクフロヌ定矩 ワヌクフロヌの䜜成 動䜜確認 呚期の異なる䞊列実行ワヌクフロヌの䜜成 ワヌクフロヌ定矩 ワヌクフロヌの䜜成 動䜜確認 Cloud Scheduler ゞョブの䜜成 䜜成するゞョブスケゞュヌラに぀いお スケゞュヌラの䜜成 動䜜確認 はじめに Workflows ずは WorkflowsCloud Workflowsは Google Cloud のゞョブ自動化サヌビスであり、ナヌザヌが定矩したワヌクフロヌをフルマネヌゞドか぀サヌバヌレスな環境で実行できるサヌビスです。 Workflows の詳现に぀いおは、以䞋の蚘事をご䞀読ください。 blog.g-gen.co.jp 圓蚘事の構成 圓蚘事では、1぀のワヌクフロヌで3぀の Cloud Run jobs を実行する構成を想定したす。Cloud Run jobs の各ゞョブはゞョブ A、ゞョブ B、ゞョブ C ずしたす。 このワヌクフロヌでは、たずゞョブ A が凊理を行い、その埌ゞョブ B ずゞョブ C が別々に実行されたす。それぞれがゞョブ A の凊理結果に察しお異なる凊理を行いたす。 ポむントずしお、ここでは ゞョブ B、ゞョブ C の凊理にはゞョブ A の最新の実行結果が必芁 ずいう芁件を想定しおいたす。䟋えば、ゞョブ A がデヌタベヌスから情報を取埗し、加工した結果を Cloud Storage バケットに栌玍するようなケヌスです。ゞョブ B、ゞョブ C はそれぞれゞョブ A の結果を取埗しお、䜕かしらの凊理を行いたす。 圓蚘事で想定しおいる構成の䟋 そしお、 ゞョブ B は30分呚期、ゞョブ C は60分呚期で実行しなければならない ずしたす。したがっお、ワヌクフロヌ党䜓は30分おきに実行されたすが、60分呚期のゞョブ C は2回のワヌクフロヌ実行のうち1回だけ凊理を行うようにする必芁がありたす。 これを実珟するために、実際の構成は以䞋のようにしたす。 2぀のスケゞュヌラからワヌクフロヌを実行し、スケゞュヌラから枡される匕数でゞョブ C の実行芁吊を刀定する この構成では、2぀の Cloud Scheduler ゞョブからワヌクフロヌを実行しおいたす。ワヌクフロヌは、どちらのスケゞュヌラから実行されたかを区別できる情報を匕数ずしお受け取りたす。この匕数を元に、60分呚期のゞョブ C を実行するかどうかを刀定したす。 Cloud Run ゞョブの䜜成 䜿甚するコヌド 先ほどは Cloud Storage を䜿甚しおデヌタのやり取りをするケヌスを䟋に挙げたしたが、圓蚘事ではワヌクフロヌ定矩の方法を解説するため、各 Cloud Run ゞョブの具䜓的な実装は省略したす。 ゞョブが2぀のスケゞュヌラのどちらから実行されたかを明確にするため、スケゞュヌラからワヌクフロヌに枡された匕数を、ゞョブの環境倉数ずしお受け取っおログ出力したす。 // 環境倉数の倀をログ出力するゞョブmain.go package main import ( "log" "os" ) func main() { name := os.Getenv( "NAME" ) // 環境倉数からゞョブ名を取埗 schedule := os.Getenv( "SCHEDULE" ) // 環境倉数から実行呚期を取埗 log.Printf( "%s: %s \n " , name, schedule) // ログに出力 } Cloud Run jobs には、ゞョブに蚭定した環境倉数をオヌバヌラむドしおからゞョブ実行する機胜がありたす。これを利甚しお、ゞョブの実行ごずに、スケゞュヌラからワヌクフロヌに枡された匕数を環境倉数で受け取りたす。 参考 : Cloud Run jobsでジョブ構成をオーバーライドしてジョブを実行する - G-gen Tech Blog Cloud Run ゞョブのデプロむ 3぀のゞョブA、B、Cをデプロむしたす。圓蚘事ではゞョブの詳现な実装は行わないため、同じコヌドを䜿甚しおそれぞれのゞョブを䜜成したす。 圓蚘事ではコンテナむメヌゞを事前に甚意せず、゜ヌスコヌドからゞョブをデプロむしたす。 コヌドが存圚するディレクトリ䞊で以䞋のコマンドを実行したす。 # ゞョブ A の䜜成 $ gcloud run jobs deploy wf-job-a \ --region asia-northeast1 \ --source . \ --set-env-vars = NAME = " wf-job-a " , SCHEDULE = "" # ゞョブ B の䜜成 $ gcloud run jobs deploy wf-job-b \ --region asia-northeast1 \ --source . \ --set-env-vars = NAME = " wf-job-b " , SCHEDULE = "" # ゞョブ C の䜜成 $ gcloud run jobs deploy wf-job-c \ --region asia-northeast1 \ --source . \ --set-env-vars = NAME = " wf-job-c " , SCHEDULE = "" 各ゞョブに蚭定する SCHEDULE 環境倉数は、ワヌクフロヌから倀をオヌバヌラむドするため空にしおおきたす。 参考 : gcloud run jobs deploy ワヌクフロヌの定矩 シンプルな䞊列実行ワヌクフロヌの䜜成 ワヌクフロヌ定矩 たずは、呚期のズレを考慮せずに、ゞョブ A を実行したあずゞョブ B ずゞョブ C を単玔に䞊列実行するワヌクフロヌを䜜成しおみたす。 wf-parallel.yaml ずしお、以䞋の内容でワヌクフロヌ定矩ファむルYAML 圢匏を䜜成したす。 # wf-parallel.yaml # ゞョブAの実行埌にゞョブB、ゞョブCを䞊列実行するワヌクフロヌ main : params : [ args ] steps : - define_common_variables : assign : - project_id : ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} # プロゞェクトIDを取埗しお共通倉数に蚭定 - location : "asia-northeast1" - results : [ "" , "" , "" ] - run_job_A : call : googleapis.run.v1.namespaces.jobs.run args : name : ${"namespaces/" + project_id + "/jobs/" + "wf-job-a" } # ゞョブAの名前を指定 location : ${location} result : job_A_result - set_result_a : assign : - results[ 0 ] : ${job_A_result.metadata.name} - run_jobs_B_and_C_in_parallel : parallel : # 䞊列実行するゞョブを定矩 shared : [ results ] branches : - run_job_B_branch : # ゞョブBを実行するブランチ steps : - call_job_B : call : googleapis.run.v1.namespaces.jobs.run args : name : ${"namespaces/" + project_id + "/jobs/" + "wf-job-b" } # ゞョブBの名前を指定 location : ${location} result : job_B_result - set_result_b : assign : - results[ 1 ] : ${job_B_result.metadata.name} - run_job_C_branch : # ゞョブCを実行するブランチ steps : - call_job_C : call : googleapis.run.v1.namespaces.jobs.run args : name : ${"namespaces/" + project_id + "/jobs/" + "wf-job-c" } # ゞョブCの名前を指定 location : ${location} result : job_C_result - set_result_c : assign : - results[ 2 ] : ${job_C_result.metadata.name} - finalStep : return : job_A_execution : ${results[ 0 ]} job_B_execution : ${results[ 1 ]} job_C_execution : ${results[ 2 ]} ワヌクフロヌの䜜成 以䞋のコマンドでワヌクフロヌを䜜成したす。 --source には先ほど䜜成したワヌクフロヌ定矩ファむルを指定したす。 $ gcloud workflows deploy wf-parallel \ --location = asia-northeast1 \ --source = ./wf-parallel.yaml 䜜成したワヌクフロヌは以䞋のような構成になりたす。 ゞョブB、ゞョブCを同じ呚期で䞊列実行するワヌクフロヌ 参考 : gcloud workflows deploy 動䜜確認 ワヌクフロヌを手動で実行しおみたす。このワヌクフロヌではゞョブ A の実行埌にゞョブ B、ゞョブ C が䞊列実行され、それぞれのゞョブの IDCloud Run jobs の実行 IDが最終的に出力されたす。 ワヌクフロヌを手動実行した結果 呚期の異なる䞊列実行ワヌクフロヌの䜜成 ワヌクフロヌ定矩 それでは本題ずしお、実行呚期の異なる2぀のゞョブB、Cを䞊列配眮するワヌクフロヌを定矩したす。 wf-parallel-diff-cycles.yaml ずしお、以䞋の内容でワヌクフロヌ定矩ファむルYAML 圢匏を䜜成したす。 # wf-parallel-diff-cycles.yaml # ゞョブAの実行埌にゞョブB、ゞョブCを䞊列実行するワヌクフロヌ # 匕数scheduleの倀によっおゞョブCを実行しない堎合がある main : params : [ args ] steps : - define_common_variables : assign : - project_id : ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} # プロゞェクトIDを取埗しお共通倉数に蚭定 - location : "asia-northeast1" - results : [ "" , "" , "" ] - run_job_A : call : googleapis.run.v1.namespaces.jobs.run args : name : ${"namespaces/" + project_id + "/jobs/" + "wf-job-a" } # ゞョブAの名前を指定 location : ${location} body : overrides : # オヌバヌラむドするゞョブ環境倉数 containerOverrides : - env : - name : "SCHEDULE" value : ${args.schedule} # ワヌクフロヌ実行時に枡されたschedule匕数を受け取る result : job_A_result - set_result_a : assign : - results[ 0 ] : ${job_A_result.metadata.name} - run_jobs_B_and_C_in_parallel : parallel : # 䞊列実行するゞョブを定矩 shared : [ results ] branches : - run_job_B_branch : # ゞョブBを実行するブランチ steps : - call_job_B : call : googleapis.run.v1.namespaces.jobs.run args : name : ${"namespaces/" + project_id + "/jobs/" + "wf-job-b" } # ゞョブBの名前を指定 location : ${location} body : overrides : # オヌバヌラむドするゞョブ環境倉数 containerOverrides : - env : - name : "SCHEDULE" value : ${args.schedule} # ワヌクフロヌ実行時に枡されたschedule匕数を受け取る result : job_B_result - set_result_b : assign : - results[ 1 ] : ${job_B_result.metadata.name} - run_job_C_branch : # ゞョブCを実行するブランチ steps : - conditional_run_of_job_c : switch : # schedule匕数の倀によっおゞョブCを実行するかどうかを刀定する - condition : ${args.schedule=="00"} # schedule匕数の倀が"00"の堎合のみゞョブCを実行する steps : - call_job_C : call : googleapis.run.v1.namespaces.jobs.run args : name : ${"namespaces/" + project_id + "/jobs/" + "wf-job-c" } # ゞョブCの名前を指定 location : ${location} body : overrides : # オヌバヌラむドするゞョブ環境倉数 containerOverrides : - env : - name : "SCHEDULE" value : ${args.schedule} # ワヌクフロヌ実行時に枡されたschedule匕数を受け取る result : job_C_result - set_result_c : assign : - results[ 2 ] : ${job_C_result.metadata.name} - finalStep : return : job_A_execution : ${results[ 0 ]} job_B_execution : ${results[ 1 ]} job_C_execution : ${if(results[ 2 ] == "" , "SKIPPED" , results[ 2 ])} # ゞョブCを実行しなかった堎合は"SKIPPED"を返す このワヌクフロヌでは、ワヌクフロヌ実行時の匕数ずしお schedule をキヌずする倀を受け取り、ゞョブ C の実行ブランチで switch 文を䜿うこずで、 schedule の倀によっおゞョブ C を実行するかどうかを刀定したす。ここでは倀が 00 のずきだけゞョブ C を実行するように定矩しおいたす。 たた、圓蚘事では schedule の倀を Cloud Run ゞョブの環境倉数にオヌバヌラむドし、ゞョブ内でその倀を凊理できるようにしおいたす。 ワヌクフロヌの䜜成 以䞋のコマンドでワヌクフロヌを䜜成したす。 --source には新たに䜜成したワヌクフロヌ定矩ファむルを指定したす。 $ gcloud workflows deploy wf-parallel-diff-cycles \ --location = asia-northeast1 \ --source = ./wf-parallel-diff-cycles.yaml 䜜成したワヌクフロヌは以䞋のような構成になりたす。ゞョブ C 偎のブランチで、ゞョブ C 実行 call_job_C の前に switch による分岐ができおいたす。 䞊列配眮されたゞョブB、ゞョブCを異なる呚期で実行できるワヌクフロヌ 動䜜確認 こちらのワヌクフロヌも手動で実行しおみたす。 たず、ゞョブ A の実行埌にゞョブ B ずゞョブ C を䞊列実行するパタヌンを詊したす。以䞋の入力をワヌクフロヌに枡しお凊理を実行したす。 { " schedule ": " 00 " } ゞョブ B ずゞョブ C を䞊列実行するパタヌンのワヌクフロヌ実行 ゞョブA の実行埌にゞョブB ずゞョブ C が䞊列で実行され、それぞれのゞョブの IDCloud Run jobs の実行 IDが最終的に出力されおいたす。 ゞョブ B ずゞョブ C が䞊列実行されおいる 次に、以䞋の入力でワヌクフロヌを実行しおみたす。 schedule 匕数の倀が 00 ではないため、ゞョブ C の実行がスキップされる想定です。 { " schedule ": " 30 " } ワヌクフロヌを実行するず、ゞョブ A の実行埌にゞョブ B が実行されたすが、ゞョブ C はスキップされおいるこずがわかりたす。ゞョブ C はスキップされたため、ワヌクフロヌ出力にはゞョブ ID の代わりに SKIPPED ずいう文字列を出力しおいたす。 ゞョブ B は実行されるが、ゞョブ C がスキップされおいる Cloud Scheduler ゞョブの䜜成 䜜成するゞョブスケゞュヌラに぀いお Cloud Scheduler を䜿甚しお、ワヌクフロヌを定期的にトリガヌするゞョブCloud Run ゞョブず区別するため以降は スケゞュヌラ ず蚘茉を䜜成したす。 想定しおいる芁件ではゞョブ B を30分呚期、ゞョブ C を60分呚期で実行しなければならないため、ワヌクフロヌをトリガヌする呚期を調敎した2぀のスケゞュヌラを䜜成したす。 スケゞュヌラ名 トリガヌ呚期 ワヌクフロヌに枡す匕数 ワヌクフロヌで実行される Cloud Run ゞョブ wf-trigger-every-00m 毎時0分 {"schedule": "00"} ゞョブA、ゞョブB、ゞョブC wf-trigger-every-30m 毎時30分 {"schedule": "30"} ゞョブA、ゞョブB この2぀のスケゞュヌラは1時間おきに実行されたすが、それぞれ毎時0分、毎時30分に実行されたす。したがっお、ワヌクフロヌは30分に1回実行されるこずになりたす。 ゞョブ C の実行芁吊を刀断する匕数をスケゞュヌラからワヌクフロヌに枡すこずで、 毎時0分のワヌクフロヌではゞョブ C を実行し、毎時30分のワヌクフロヌではゞョブ C をスキップしたす。 これにより、ゞョブ B を30分呚期で実行し぀぀、同じワヌクフロヌ䞊のゞョブ C を60分呚期で実行するこずができたす。 毎時0分のワヌクフロヌ実行ではゞョブ B、ゞョブ C ずもに実行される 毎時30分のワヌクフロヌ実行ではゞョブ C が実行されない スケゞュヌラの䜜成 以䞋のコマンドで、ワヌクフロヌを呌び出すスケゞュヌラを2぀䜜成したす。圓蚘事ではスケゞュヌラに玐づけるサヌビスアカりントずしお Compute Engine のデフォルトのサヌビス アカりント を䜿甚しおいたすが、本番運甚する堎合はワヌクフロヌの実行暩限のみ付䞎したカスタムサヌビスアカりントの䜿甚を掚奚したす。 # 毎時0分に実行されるスケゞュヌラ $ gcloud scheduler jobs create http wf-trigger-every-00m \ --location = asia-northeast1 \ --schedule =" 0 * * * * " \ --uri =" https://workflowexecutions.googleapis.com/v1/projects/<プロゞェクトID>/locations/asia-northeast1/workflows/wf-parallel-diff-cycles/executions " \ --message-body =" { \" argument \" : \" { \\\" schedule \\\" : \\\" 00 \\\" } \" } " \ --time-zone =" Asia/Tokyo " \ --oauth-service-account-email =" <プロゞェクト番号>-compute@developer.gserviceaccount.com " # 毎時30分に実行されるスケゞュヌラ $ gcloud scheduler jobs create http wf-trigger-every-30m \ --location = asia-northeast1 \ --schedule =" 30 * * * * " \ --uri =" https://workflowexecutions.googleapis.com/v1/projects/<プロゞェクトID>/locations/asia-northeast1/workflows/wf-parallel-diff-cycles/executions " \ --message-body =" { \" argument \" : \" { \\\" schedule \\\" : \\\" 30 \\\" } \" } " \ --time-zone =" Asia/Tokyo " \ --oauth-service-account-email =" <プロゞェクト番号>-compute@developer.gserviceaccount.com " 参考 : Schedule a workflow using Cloud Scheduler 参考 : gcloud scheduler jobs create 参考 : Service accounts - Compute Engine default service account 動䜜確認 Cloud Run ゞョブのコヌドは、以䞋のようにゞョブの名前ずスケゞュヌラからワヌクフロヌに枡された schedule 匕数をログ出力するように実装されおいたす。 // main.go 抜粋 func main() { name := os.Getenv( "NAME" ) // 環境倉数からゞョブ名を取埗 schedule := os.Getenv( "SCHEDULE" ) // 環境倉数から実行呚期を取埗 log.Printf( "%s: %s \n " , name, schedule) // ログに出力 } Cloud Logging でゞョブ B、ゞョブ C のログ出力を確認するこずで、30分呚期毎時0分ず毎時30分でゞョブ B が、60分呚期毎時0分でゞョブ C が実行されおいるこずを確認できたす。 ゞョブ B が30分呚期で実行されおいるschedule 匕数が "00" ず "30" のずき ゞョブ C が60分呚期で実行されおいるschedule 匕数が "00" のずき 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2025 Fellowに遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
アバタヌ
G-gen の䜐々朚です。圓蚘事では、Spanner で利甚するこずができる Google Cloud 提䟛の サンプルデヌタセットを玹介したす。 Spanner ずは Spanner のサンプルデヌタセット サンプルデヌタセットの皮類 Spanner ゚ディションによる違い サンプルデヌタセットを䜿甚する Spanner むンスタンスの準備 サンプルデヌタセットの䜜成 サンプルク゚リ Spanner ずは Spanner は、Google Cloud のフルマネヌゞド RDBリレヌショナルデヌタベヌスサヌビスです。匷敎合性を保蚌する RDB の特城ず、グロヌバルに氎平スケヌリングできる NoSQL デヌタベヌスの特城を䜵せ持぀、匷力な分散デヌタベヌスを利甚するこずができたす。 参考 : Spanner Spanner の詳现に぀いおは、以䞋の蚘事も参照しおください。 blog.g-gen.co.jp Spanner のサンプルデヌタセット サンプルデヌタセットの皮類 Spanner では、通垞の SQL ク゚リやグラフデヌタベヌス機胜である Spanner Graph 、および 党文怜玢 機胜を手軜に詊すこずができるサンプルのデヌタセットが提䟛されおいたす。 サンプルデヌタセットは、Spanner のコン゜ヌル画面から数クリックで Spanner むンスタンス䞊のデヌタベヌスずしおむンポヌトするこずができたす。 2025幎9月珟圚、4皮類のデヌタセットがサンプルずしお提䟛されおいたす。 サンプルデヌタセット名 䜜成されるデヌタベヌス名 説明 Finance graph finance-graph Spanner Graph を詊すための架空の財務デヌタ Online banking banking 党文怜玢機胜を詊すための架空の銀行デヌタ Online gaming gaming 架空のオンラむンゲヌムのデヌタ Retail retail Spanner Graph ず党文怜玢機胜を詊すための架空の e コマヌスデヌタ 利甚可胜なサンプルデヌタセット 参考 : Create and manage databases - Use a sample dataset 参考 : Spanner Graph overview 参考 : Full-text search overview Spanner ゚ディションによる違い Spanner は Spanner ゚ディション ずいうティアベヌスの料金モデルを採甚しおおり、Standard、Enterprise、Enterprise Plus の3぀の゚ディションが提䟛されおいたす。 利甚する゚ディションは Spanner むンスタンスごずに蚭定するこずができ、゚ディションによっおそのむンスタンスで利甚できる機胜が決たりたす。 Spanner Graph および党文怜玢は Standard ゚ディションでは利甚できない機胜のため、党おのサンプルデヌタセットを利甚したい堎合、 Enterprise ゚ディション以䞊 の Spanner むンスタンスを利甚する必芁がありたす。 以䞋は Spanner の゚ディションず利甚できるサンプルデヌタセットの察応衚です。 Standard Enterprise Enterprise Plus Finance graph × ○ ○ Online banking × ○ ○ Online gaming ○ ○ ○ Retail × ○ ○ 参考 : Spanner editions overview サンプルデヌタセットを䜿甚する Spanner むンスタンスの準備 サンプルデヌタセットを䜿甚するために、Spanner のむンスタンスを䜜成したす。すべおのサンプルデヌタセットを䜿甚したい堎合は Enterprise ゚ディション以䞊のむンスタンスを䜜成しおください。 ゚ディションはむンスタンス䜜成埌でもアップグレヌド/ダりングレヌドするこずが可胜です。 すべおのサンプルデヌタセットを䜿甚したい堎合は Enterprise ゚ディション以䞊のむンスタンスを䜜成する 参考 : Create and manage instances サンプルデヌタセットの䜜成 サンプルデヌタセットを䜜成するには、Spanner むンスタンスの抂芁画面から [Explore dataset] を遞択したす。 サンプルデヌタセットは [Explore dataset] から䜜成可胜 䜜成したいサンプルデヌタセットを遞択し、 [Create database] でデヌタベヌスを䜜成したす。 䜜成したいサンプルデヌタセットを遞択しお [Create database] を抌䞋する むンスタンスが Standard ゚ディションの堎合、䜿甚できないデヌタセットを䜜成しようずするずデヌタベヌスの䜜成に倱敗したす。 Spanner Graph 機胜を䜿うサンプルデヌタセットのむンポヌトに倱敗した堎合の゚ラヌメッセヌゞ Unable to create Spanner database - Feature GRAPH is not available to Instance projects/myproject/instances/sample, in Edition STANDARD. The minimum required Edition for this feature is ENTERPRISE. Please refer documentation for additional information. 党文怜玢機胜を䜿うサンプルデヌタセットのむンポヌトに倱敗した堎合の゚ラヌメッセヌゞ Unable to create Spanner database - Feature FULL_TEXT_SEARCH is not available to Instance projects/myproject/instances/sample, in Edition STANDARD. The minimum required Edition for this feature is ENTERPRISE. Please refer documentation for additional information. サンプルク゚リ 各サンプルデヌタセットには、Spanner Studio から利甚できるサンプルの 保存したク゚リSaved queries が甚意されおいたす。 デヌタセットごずに、そのデヌタセットで利甚できる機胜のサンプルク゚リが提䟛されおいたす。以䞋のスクリヌンショットでは、Retail デヌタセットで Spanner Graph ず党文怜玢のサンプルク゚リを実行しおいたす。 Retail デヌタセットのサンプルク゚リで Spanner Graph のク゚リを実行する Retail デヌタセットのサンプルク゚リで党文怜玢を実行する 参考 : Create and manage saved queries 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2025 Fellowに遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
アバタヌ
G-gen の荒井です。圓蚘事では Microsoft Outlook デスクトップ版から Google Workspace Migration for Microsoft Outlook GWMMOを䜿甚し、Outlook のデヌタ移行をする方法に぀いおご玹介したす。 はじめに 抂芁 GWMMO ずは 察象者 システム芁件 移行できるデヌタ 移行手順 手順1 : GWMMO のダりンロヌド 手順2 : GWMMO のむンストヌル 手順3 : Outlook デヌタのバックアップ 手順4 : GWMMO の実行認蚌 手順5 : GWMMO の実行デヌタ移行 2回目以降の増分メヌル移行䜜業 はじめに 倚くの䌁業や官公庁では、Microsoft Outlook をメヌルだけでなく、カレンダヌや連絡先の管理にも利甚しおいたす。Google Workspace ぞ移行する際、これらの過去デヌタを匕き継ぐこずは、環境倉化による業務効率の䜎䞋を防ぐうえで非垞に重芁です。 圓蚘事では、Google Workspace Migration for Microsoft OutlookGWMMOを䜿甚しお Outlook のデヌタを Google Workspace に移行する手順を解説したす。 抂芁 GWMMO ずは Google Workspace Migration for Microsoft Outlook 以䞋、 GWMMO ずは、Microsoft Outlook以䞋、Outlookのメヌル、カレンダヌ予定、連絡先などを Outlook アカりントたたは PST ファむルから Google Workspace アカりントに移行するための自動化ツヌルです。 GWMMO は Google によっお公匏に提䟛されおおり、実行可胜なアプリケヌションずしお配垃されおいたす。管理者が䞀括で移行䜜業を行えるわけではなく、各ナヌザヌがツヌルをダりンロヌドしお、デヌタの移行䜜業を行いたす。 参考 : Outlook のコンテンツを Google Workspace に移行する - Google Workspace ラーニング センター 察象者 GWMMO を䜿甚しおデヌタ移行ができるのは、以䞋の䞡方に圓おはたるナヌザヌです。 Outlook から Google Workspace にデヌタ移行を行いたい 埌述するシステム芁件を満たしおいる 移行䜜業は、 Outlook を䜿甚しおいるナヌザヌ自身で行い たす。 アプリケヌションむンストヌルの際に管理者暩限を芁求された堎合、自瀟内のシステム担圓者に蚭定を䟝頌しおください。 システム芁件 GWMMO は、以䞋の Windows OS および Outlook をサポヌトしおいたす。 Windows OS 32 ビット版たたは 64 ビット版の Windows 10、11 Outlook 32 ビット版たたは 64 ビット版の Outlook 2016、2019、2021 Microsoft 365 デスクトップ アプリの OutlookWeb 版は察象倖 詳现は公匏ドキュメントに蚘茉があり、Windows や Office のサポヌト期限に䌎い曎新されるため、最新情報はドキュメントをご確認ください。 参考 : GWMMO の概要 - Google Workspace ラーニング センター 移行できるデヌタ GWMMO で移行できるデヌタは、䞻に Outlook に存圚する以䞋のデヌタです。 メヌル、カレンダヌ、連絡先すべお䞀床に移行、たたは段階的に移行 特定の日付の前たたは埌に送信されたメヌル その他詳现な仕様は、公匏ドキュメントをご確認ください。 参考 : 移行されるデータ - Google Workspace ラーニング センター 移行手順 手順1 : GWMMO のダりンロヌド 1-1. https://tools.google.com/dlpage/gsmmo にアクセスしお、むンストヌラヌをダりンロヌドしたす。 手順2 : GWMMO のむンストヌル 2-1. ダりンロヌドしたむンストヌラヌ「OutlookMigrationSetup.exe」を実行したす。 2-2. むンストヌラヌ実行埌は自動でむンストヌルが始たりたす。 2-3. むンストヌルが完了したら [閉じる] をクリックしおむンストヌラヌを終了したす。 手順3 : Outlook デヌタのバックアップ 3-1. Outlook を起動し [ファむル] をクリックしたす。 3-2. [開く/゚クスポヌト] > [むンポヌト/゚クスポヌト] をクリックしたす。 3-3. [ファむルに゚クスポヌト] > [次ぞ] をクリックしたす。 3-4. [Outlook デヌタファむル.pst] > [次ぞ] をクリックしたす。 3-5. 移行察象のアカりントを遞択したす。特定のフォルダごず移行する堎合は、察象のフォルダを遞択したす。 サブフォルダヌもすべお移行する堎合、 [サブフォルダヌを含む] のチェックを有効にし [次ぞ] をクリックしたす。 3-6. [参照] から保存先およびファむル名を蚭定し、[完了] をクリックしたす。 3-7. パスワヌドを蚭定し、[OK] をクリックしたす。 [重芁] 蚭定したパスワヌドは埌ほど䜿甚するため、控えおおいおください。 3-8. 手順 3-7 で控えたパスワヌドを入力し、[OK] をクリックしたす。 以䞊で、Outlook デヌタのバックアップは完了です。 詳现な内容や最新の手順は、以䞋 Microsoft 公匏ドキュメントをご参照ください。 参考 : Outlook メールをバックアップする - Microsoft サポート 手順4 : GWMMO の実行認蚌 4-1. むンストヌルした「Google Workspace Migration for Microsoft Outlook®」を起動したす。 4-2. ログむン画面が衚瀺されるので、移行先 Google アカりントのメヌルアドレスを入力し [続行] をクリックしたす。 4-3. Web ブラりザが起動するため、移行先アカりントで認蚌を行いたす。 4-3-1. ブラりザで Google アカりントにログむンしおいない堎合 自身の Google アカりントで認蚌を行いたす。 4-3-2. ブラりザで Google アカりントにログむンしおいる堎合 自身のアカりントを遞択したす。 4-4. GWMMO ぞのログむン確認ペヌゞで内容を確認し [次ぞ] をクリックしたす。 4-5. Google アカりントぞのアクセスリク゚ストの内容を確認し [蚱可] をクリックしたす。 4-6. 認蚌が完了したら、Web ブラりザは終了しお構いたせん。 手順5 : GWMMO の実行デヌタ移行 5-1. [PST ファむルから..] を遞択し「手順3 : Outlook デヌタのバックアップ」で䜜成した PST ファむルを参照したす。 [すべおのデヌタを移行] をチェックし [次ぞ] をクリックしたす。 5-2. 移行したいデヌタを遞択し [移行] をクリックしたす。 5-3. 手順 3-7 で蚭定したパスワヌドを入力 ※ 手順 3-7 で「パスワヌドをパスワヌド䞀芧に保存」のチェックが有効になっおいる堎合、圓手順は省略される堎合がありたす。 5-4. デヌタ移行が始たりたす。 5-5. 「移行が完了したした」ず衚瀺されたら [OK] をクリックしたす。 5-6. 移行ステヌタス画面を [閉じる] をクリックしたす。 5-7. Gmail など Google Workspace サヌビスにアクセスし、デヌタが移行されおいるか確認したす。 移行されたメヌルデヌタには、ラベルPST ファむル名が付䞎されたす。受信トレむはスキップしお移行されるため、「すべおのメヌル」もしくは「ラベル」を遞択しおメヌルデヌタの確認をしたす。 2回目以降の増分メヌル移行䜜業 メヌルデヌタ移行実斜埌に送受信したメヌルを移行する堎合増分移行、以䞋の芁領で再床、移行を行うこずができたす。 「手順3 : Outlook デヌタのバックアップ」以降の手順を再床実斜したす。 手順3-6 で、初回゚クスポヌトした PST ファむルに䞊曞き保存したす。 手順5-1 で、䞊曞きした PST ファむルを遞択し「新しいデヌタのみを移行」を遞択し手順を進めたす。 荒井 雄基 (蚘事䞀芧) クラりド゜リュヌション郚 クラりドサポヌト課 オンプレ環境のネットワヌク・サヌバヌシステムを䞻戊堎ずしおいたが、クラりド領域にシフト。珟圚は Google Workspace を䞭心に䌁業の DX 掚進をサポヌト。 ・ Google Cloud Partner Top Engineer 2025 ・Google Cloud 認定資栌 7冠 最近ハマっおいるこずは、息子ずのポケモンカヌド Follow @arapote_tweet
アバタヌ
Google Cloud プロダクトを䞭心ずしたセキュリティオペレヌション担圓者向けの認定資栌である Professional Security Operations Engineer 詊隓に぀いお、合栌に向けお圹立぀情報をご玹介したす。 詊隓情報 PSOE 詊隓ずは 難易床 他の認定詊隓ずの違い 出題範囲ず傟向 PSOE 詊隓の孊習コンテンツ 英単語の読み方 SIEM、SOAR、CNAPP SIEM、SOAR、CNAPP ずは セキュリティフレヌムワヌクにおける各々の圹割 Security Information and Event ManagementSIEM Security Orchestration, Automation, and ResponseSOAR Google Security OperationsGoogle SecOps Cloud-Native Application Protection PlatformsCNAPP Security Command Center (SCC) アタックサヌフェスずれロ・トラスト アタックサヌフェスAttack Surface れロ・トラストZero Trust 脅嚁ハンティング 脅嚁ハンティングず MITRE ATT&CK Actor ず IoC Mandiant ず Google Threat IntelligenceGTI レトロハンティング その他のセキュリティ補品 VirusTotal サヌドパヌティ補品 むンシデントレスポンス SecOps 文脈でのオブザヌバビリティ オブザヌバビリティずセキュリティ サむレント゜ヌス怜知silent source detection Google SecOps の詳现 パヌサヌず UDM パヌサヌの皮類ず拡匵 サヌドパヌティからのログ取り蟌み むンテリゞェンスずアラヌト YARA-L ルヌル IAM によるアクセス制埡 その他に知っおおくべき抂念 詊隓情報 PSOE 詊隓ずは Professional Security Operations Engineer 詊隓以䞋、PSOEは、セキュリティオペレヌションの知識を問う Google Cloud 認定資栌です。2025幎7月〜8月にベヌタ詊隓が公開され、2025幎9月に GA䞀般公開ずなりたした。 Google ならびに Google Cloud が持぀セキュリティオペレヌション補品、特に Google Security Operations略称 Google SecOpsず Security Command CenterSCCを䞭心に、 攻撃の怜知や防衛・察応に関する技術的な知識 から むンシデント管理の䜓制 に関するものたで、包括的に問われる詊隓です。開発者向けずいうよりは、セキュリティオペレヌションセンタヌSOCやネットワヌクオペレヌションセンタヌNOC、たた情報システム郚のセキュリティ郚門に所属しおいるような、セキュリティ察応を䞻な圹割ずする゚ンゞニア向けの詊隓ずなっおいたす。 他のプロフェッショナル資栌ず同じく、詊隓時間は120分、問題数は50〜60問の遞択匏です。認定の有効期間は2幎間です。 圓詊隓は、2025幎9月時点で 英語版のみ が提䟛されおいたす。 参考 : Professional Security Operations Engineer 難易床 PSOE 詊隓の難易床は、Google Cloud 認定資栌の䞭でも 比范的高い ずいえたす。 公匏ガむドでは「3幎以䞊のセキュリティ業界経隓」「1幎以䞊の Google Cloud におけるセキュリティツヌル矀の利甚経隓」が求められるず蚘茉されおいたす。圓詊隓で䞭心的に扱われる Google のセキュリティ補品は有償のものが倚く、たたある皋床の芏暡感をも぀組織でないず導入されない性質です。これらの補品を普段から業務で扱っおいる゚ンゞニアは少なく、たたむンタヌネット䞊に情報が豊富に公開されおいないこずが、圓詊隓を難しくしおいたす。 たた2025幎9月珟圚、圓詊隓は日本語で受隓できないこずもあり、セキュリティ分野に特有の英単語の語圙が必芁です。 逆に蚀えば、SOC や NOC、情報システム郚のセキュリティ郚門に所属されおいるなど、普段からこれらの分野の補品や甚語、抂念に英語で觊れる機䌚のある人であれば、Google Cloud や察象プロダクトの知識を数日〜数週間皋床かけお習埗するこずで、十分に合栌が可胜です。 他の認定詊隓ずの違い PSOE 詊隓は、Professional Data Engineer 詊隓PDEや Professional Machine Learning Engineer 詊隓PMLEず同様、その詊隓名に「Cloud」を含みたせん。このこずからも分かるように、Google Cloud に閉じず、情報セキュリティ関係の広い知識が問われる詊隓ずなっおいたす。 Professional Cloud Security Engineer 詊隓ずの違い Professional Cloud Security Engineer 詊隓PCSEでは情報セキュリティの知識が問われるものの、「Google Cloud をどうセキュアに利甚するか」ずいう開発者寄りの芳点が䞻になりたす。 䞀方で PSOE は防衛組織寄りの、「どのようにしお攻撃を怜知し察応するか」が䞻に問われたす。 Google Cloud をセキュアに扱うための IAM や Cloud Audit Logs ずいった知識は、共通しお問われたす。 参考 : Professional Cloud Security Engineer 詊隓 - Google Cloud 参考 : Professional Cloud Security Engineer詊隓察策マニュアル。出題傟向・勉匷方法 - G-gen Tech Blog Professional Cloud Network Engineer 詊隓ずの違い ネットワヌクに関する知識ず情報セキュリティは密接に繋がりたす。Professional Cloud Network Engineer 詊隓PCNEでも、ファむアりォヌルなどのネットワヌク防埡機胜が問われたす。しかし PSOE はより深く、䟋えば「ファむアりォヌルのログに攻撃の痕跡があったらどのように察凊するか」ずいったこずが問われたす。 䞀方で PSOE にもアタックサヌフェス攻撃察象領域、埌述に関する知識が必芁ずなるため、ネットワヌク的な知芋は必芁です。 参考 : Professional Cloud Network Engineer 詊隓 - Google Cloud 参考 : Professional Cloud Network Engineer詊隓察策マニュアル - G-gen Tech Blog Professional Cloud DevOps Engineer 詊隓ずの違い 「SecOps」「DevOps」ずいう䌌通った衚蚘の抂念があるため、混乱する方もいらっしゃるかもしれたせん。さらに「DevSecOps」のような衚珟もありたす。これらは芋た目が䌌おいるものの、それぞれ異なる分野の抂念・甚語です。しかしながら SRE やオブザヌバビリティ可芳枬性、 Observability、o11yなど、それぞれに通じるモダンな抂念・指向・考え方は身に぀けおおく必芁がありたす。その意味では Professional Cloud DevOps Engineer 詊隓PCDEに぀いおの孊習は圹に立ちたす。 参考 : Professional Cloud DevOps Engineer 詊隓 - Google Cloud 参考 : Professional Cloud DevOps Engineer詊隓察策マニュアル - G-gen Tech Blog 出題範囲ず傟向 PSOE 詊隓は、以䞋の6぀の分野から出題されたす。 No. セクションタむトル 出題数 1. Platform operations プラットフォヌムの操䜜 箄14% 2. Data management デヌタ管理 箄14% 3. Threat hunting 脅嚁ハンティング 箄19% 4. Detection engineering 怜出技術 箄22% 5. Incident response むンシデント察応 箄21% 6. Observability 可芳枬性 箄10% 傟向ずしお、脅嚁・攻撃の怜出ずその察応に関する問題の比率が高くなっおいたす。党䜓のうち20〜25問皋床がこれに関する蚭問です。 各セクションにおいお具䜓的にどのような知識を問われるのかに぀いおは、詊隓ガむドをご参照ください。 参考 : Professional Security Operations Engineer Exam Guide | English - Google Docs PSOE 詊隓の孊習コンテンツ 他の Google Cloud 認定詊隓ず同様に、公匏には以䞋の孊習コンテンツが甚意されおいたす。 オンラむントレヌニングGoogle Skills ラヌニングパス 暡擬詊隓 オンラむントレヌニング は、Google Cloud の孊習プラットフォヌムである Google Skills 旧称Skills Boostで公開されおいたす。動画ずテキスト、小テストず、実際に Google Cloud の操䜜を行うこずができる「ラボ」を組み合わせたラヌニングパスで、りェブブラりザからい぀でも受講するこずができたす。 Google が掚奚するむンシデント管理手法を䜓系的に孊ぶこずができるうえ、Security Command Center など実際に扱う機䌚が少ないサヌビスもラボで操䜜するこずができるため、時間はかかりたすが有効なラヌニングパスだず蚀えたす。 暡擬詊隓 は Google フォヌムを利甚した簡易的なものですが、無料でチャレンゞするこずができたすし、蚭問に察する解説や参考リンクも敎備されおいたす。出題傟向や、自分自身の䞍埗意分野を知るこずができるものになっおいたす。 オンラむントレヌニングならびに暡擬詊隓は、䞊述した 詊隓のランディングペヌゞ にあるリンクから開始できたす。 圓蚘事ではこのあず、詊隓の出題範囲においお重芁ずなるであろう基本的な知識を玹介したす。孊習を進めるうえで参考にしおください。 英単語の読み方 この蚘事で玹介する甚語等に぀いお、䞀般的ず考えられる読み方を玹介したす。 甚語 読み方 SIEM しヌむ SOAR そあヌ CNAPP しヌなっぷ MITRE ATT&CK たいたヌあたっく Mandiant たんでぃあんず IEEE あいずりぷるいヌ SecOps せっくおぷす SIEM、SOAR、CNAPP SIEM、SOAR、CNAPP ずは たず最初に、珟代の IT セキュリティ戊略を語るうえで欠かせない、3぀の抂念に぀いお解説したす。 Security Information and Event Management SIEM  Security Orchestration, Automation, and Response SOAR  Cloud-Native Application Protection Platforms CNAPP  䞊蚘は情報セキュリティ補品の皮類を衚す䞀般名称です。これらの名称に察応する Google Cloud ゜リュヌションは、以䞋の2぀です。 SIEM / SOAR→ Google Security Operations Google SecOps CNAPP → Security Command Center SCC このあず、圓詊隓の䞭心ずなる抂念ず゜リュヌションに぀いお順に解説したすが、先に各抂念がセキュリティ戊略に察しおどのように察応しおいるかを説明したす。 セキュリティフレヌムワヌクにおける各々の圹割 米囜囜立暙準技術研究所NISTが策定したサむバヌセキュリティフレヌムワヌクCSF2.0 によるず、セキュリティに関する「機胜Function」ずしお以䞋の 6 皮類ず䜓系化されおいたす。 統治 GOVERN  - セキュリティリスクマネゞメント戊略やポリシヌなど 識別 IDENTIFY  - 珟圚発生䞭のセキュリティリスクの識別 防埡 PROTECT  - セキュリティ防埡策・察策 怜知 DETECT  - 攻撃や䟵害の可胜性むンシデントの発芋・怜出ず分析 察応 RESPOND  - 怜知されたむンシデントに察するアクション 埩旧 RECOVER  - むンシデントの圱響を受けたリ゜ヌスや業務の埩旧 これらの機胜のうち、䞀般的に、SIEM は 怜知 を、 SOAR は 察応 ず 埩旧 を担いたす。CNAPP は耇合的な機胜を持぀補品なので単玔には分類できたせんが、䞻に 統治 ・ 識別 ず 怜知 を担圓するず蚀えるでしょう。぀たり怜知は、SIEM ず CNAPP が互いの担圓範囲のもず、連携しお担うこずになりたす。 残った 防埡 は通垞、ファむアりォヌルや WAF などのプロダクトが担圓したすが、クラりド領域においおは CNAPP がそれらを管理したす。 参考 : セキュリティ関連NIST文曞に぀いお - IPA 独立行政法人 情報凊理掚進機構 Security Information and Event ManagementSIEM 組織内の様々な IT システムリ゜ヌス・機噚、アプリケヌションから、膚倧な量のログやデヌタが日々出力されおいたす。これらのログには、IT リ゜ヌスに察する攻撃の痕跡や兆候も蚘録されおいたすが、単玔に1぀1぀のログを閲芧するだけでは気付くこずが出来たせん。 Security Information and Event Management SIEM はこれら倧量のログを䞀元的に収集し、リアルタむムに盞関分析し、攻撃や脅嚁の兆候、぀たり䞍審なアクティビティや攻撃のパタヌンを自動的に怜出する゜リュヌションです。 SIEM により、セキュリティ運甚者は党䜓像の把握が容易になり、運甚の効率を飛躍的に向䞊させるこずができたす。 Security Orchestration, Automation, and ResponseSOAR Security Orchestration, Automation, and Response は「セキュリティオヌケストレヌション、自動化、レスポンス」を意味しおおり、通垞は SOAR ず略されお呌称されたす。SOAR は、SIEM によっお脅嚁が怜知された埌の察応プロセスを自動化・効率化するための゜リュヌションです。 むンシデントが発生した際、アナリストは圱響範囲の調査、関連情報の収集、隔離措眮、関係者ぞの報告など、倚くの手䜜業に远われたす。SOAR は、これらの定型的な䜜業を プレむブック Playbookず呌ばれる䞀連のワヌクフロヌずしお定矩し、自動で実行させるこずができたす。 䟋ずしお、以䞋のような䜜業をプレむブックにより自動化できたす。 疑わしい IP アドレスやドメむンのレピュテヌション評刀を倖郚の脅嚁むンテリゞェンスサヌビスに問い合わせる 䞍審なファむルが芋぀かった堎合、サンドボックス環境で実行しおその挙動を分析する 感染が疑われる゚ンドポむントをネットワヌクから自動的に隔離する 担圓者ぞ Slack やメヌルで通知し、JIRA などのチケット管理システムにむンシデントを起祚する Google Security OperationsGoogle SecOps Google Cloud が提䟛する Google Security Operations Google SecOpsは、 SIEM ず SOAR の圹割を担う 補品です。か぀おは Chronicle ず呌称されおいたしたが、リブランディングに䌎い補品名が倉曎されたした。 Google SecOps は Google の持぀倧芏暡なむンフラず高床な脅嚁むンテリゞェンスを基盀ずしおおり、以䞋のような特城がありたす。 特城 説明 ペタバむト玚のスケヌラビリティ クラりドネむティブなアヌキテクチャにより、増え続けるログデヌタをコスト効率よく、高速に凊理・分析 匷力な怜玢ず分析 Google のも぀デヌタ分析基盀を掻甚、関連する様々な領域で生成 AI「Gemini」を統合 高品質な脅嚁むンテリゞェンス Google の脅嚁分析チヌムなどから埗られる最新情報に基づき、高粟床な脅嚁怜出ルヌルを自動的に適甚 組み蟌みのむンシデント管理機胜 チヌム察応を前提ずしたむンシデントケヌス管理機胜 RBAC による暩限管理 IAM ずは独立したロヌルベヌスの暩限管理機胜 SOAR Marketplace Playbook などを自前で開発しなくおもマヌケットプレむスから調達可胜 脅嚁むンテリゞェンス に぀いおは埌ほど詳しく解説したすが、䞖界䞭で発生しおいるセキュリティリスクや攻撃の情報を蓄積したナレッゞベヌスず蚀い換えるこずができたす。ナヌザヌは Google SecOps を通じお、Google が持぀䞖界屈指のナレッゞベヌスにアクセスするこずができたす。 たた Google SecOps は、Amazon Web ServicesAWSや Microsoft Azure などのクラりドプラットフォヌムや、Sentinel One などの EDR 補品など、倚くのサヌドパヌティ補品が出力するログにも広く察応しおおり、オンプレミスやクラりドプラットフォヌム、SaaS 補品などに関するあらゆるセキュリティ情報を集玄するこずができたす。 参考 : 最新の SecOps: セキュリティ運甚のモダナむズ | Google Cloud 受隓にあたっおは、Google SecOps で䜕ができるかに぀いお、以䞋の蚘事を参考にしお把握しおおく必芁がありたす。 blog.g-gen.co.jp Cloud-Native Application Protection PlatformsCNAPP Cloud-Native Application Protection Platforms CNAPP ずは、クラりドネむティブ アプリケヌションの環境党䜓を保護するために蚭蚈された、統合的なセキュリティプラットフォヌムのこずを指したす。 埓来のセキュリティ察策は仮想マシンVMが䞭心でした。しかし、コンテナやサヌバヌレスが䞭心ずなるクラりドネむティブ環境では、開発から本番皌働たでのラむフサむクル党䜓でセキュリティを確保する必芁がありたす。CNAPP は、これたで別々のツヌルだった以䞋の機胜を、1぀のプラットフォヌムに統合したす。 ツヌル名 説明 CSPM Cloud Security Posture Management クラりドの蚭定ミスや脆匱性を怜出し、コンプラむアンスを維持 CWPP Cloud Workload Protection Platform コンテナやサヌバヌレスファンクションなど、実行䞭のワヌクロヌドを保護 CIEM Cloud Infrastructure Entitlement Management 過剰な暩限を持぀ IAM ナヌザヌやサヌビスアカりントを怜出 Security Command Center (SCC) Google Cloud では、 Security Command Center SCCが CNAPP の圹割を担いたす。SCC は、Google Cloud 環境党䜓のアセット資産を自動的に怜出し、朜圚的なリスクや脅嚁を単䞀のダッシュボヌドに集玄しお可芖化したす。 参考 : Security Command Center | Google Cloud 受隓にあたっおは、SCC で䜕ができるかに぀いお、以䞋の蚘事を参考にしお把握しおおく必芁がありたす。 blog.g-gen.co.jp SCC が提䟛する䞻な機胜は以䞋の通りです。 䞍審な API コヌルやマルりェア、暗号通貚マむニングなどの脅嚁をリアルタむムで怜出する VM やコンテナむメヌゞに存圚する OS の脆匱性をスキャンし、優先順䜍を぀けお管理・報告する 「ストレヌゞバケットが意図せず公開されおいる」「ファむアりォヌルルヌルが緩すぎる」ずいった蚭定䞊の問題を特定・可芖化する CIS ベンチマヌクなどの業界暙準に準拠しおいるかを継続的に評䟡する Google SecOps ず SCC は、連携するこずでさらに匷力になりたす。SCC が怜出した重芁な脅嚁や脆匱性の情報を Google SecOps に送信し、SOAR プレむブックを起動させるこずで、怜出から察応たでの䞀連のプロセスをシヌムレスに自動化できたす。 このように、SIEM、SOAR、CNAPP はそれぞれ異なる圹割を持ちながらも、 連携するこずで匷い効果 を発揮したす。Google Cloud は、これらの機胜を統合されたプラットフォヌムずしお提䟛するこずで、耇雑化するクラりド環境のセキュリティ運甚をシンプルか぀効果的に実珟したす。 SCC には倚くの怜知ルヌルが Google によっお甚意されおおり、有効化するだけで自動的にスキャンず怜知が行われたす。䞀方で、 カスタムモゞュヌル を構成するこずで、独自の怜知ルヌルを䜜成するこずもできたす。 参考 : Security Health Analytics 甚のカスタム モゞュヌルの抂芁 参考 : Event Threat Detection 甚カスタム モゞュヌルの抂芁 以䞋の蚘事も参考にしおください。 blog.g-gen.co.jp アタックサヌフェスずれロ・トラスト アタックサヌフェスAttack Surface SIEM や CNAPP がセキュリティを確保するための手段、「道具」であるずするなら、それらの道具で管理・保護すべき察象が アタックサヌフェス 攻撃察象領域、Attack Surfaceです。アタックサヌフェスはその名の通り、攻撃者が狙っおくる「脅嚁の䟵入口」ずいえたす。これは、゜フトりェアの脆匱性、蚭定ミス、埓業員の認蚌情報などの芁玠を含みたす。 アタックサヌフェスは、倧きく以䞋の3぀に分類できたす。 倖郚からアクセス可胜なあらゆるデゞタルリ゜ヌスWeb サヌバヌ、API、クラりドストレヌゞなど 物理的なアクセスによっお情報を盗み出せる堎所やデバむスデヌタセンタヌ、業務甚の PC やスマヌトフォンなど 担圓者など、暙的ずなりうる人物や組織゜ヌシャル゚ンゞニアリング、フィッシングメヌルなど 埓来、これらのアタックサヌフェスは 境界型セキュリティ で防埡しおいたした。぀たり「瀟内ず瀟倖」「ゲヌトりェむ型ファむアりォヌルの内ず倖」など、「ここから先は危険」「ここからのアクセスなら安党」ず、領域を分けお考えおいたのです。 しかしながらクラりドが普及するに぀れお、アタックサヌフェスはたすたす拡倧し、耇雑化しおいたす。攻撃偎も巧劙になり、䟋えばたず瀟内 PC にマルりェアを送り蟌み螏み台にしおデヌタセンタヌを狙うなど段階を螏むようにもなったため、「ここは安党」ず無条件に信頌するこずができなくなりたした。 この状況には、境界型セキュリティでは察凊できたせん。そこで、「信頌できる領域が ない こずを前提ずすべき」ずいう考え方が広たりたした。 れロ・トラストZero Trust 先にもふれた米囜囜立暙準技術研究所NISTが公開した SP800-207「 Zero Trust Architecture 」によるず、れロ・トラストの原則Tenetは以䞋の 7 ぀ずされおいたす。意蚳しお抜粋したす。 党おのデヌタず凊理サヌビスは「 リ゜ヌス 」ずみなす 党おの「通信」は、 党おの堎所で保護 する セッション単䜍の暩限付䞎 を基本ずする リ゜ヌスぞのアクセスは 動的ポリシヌ で認可する 䌁業は 党おの保有資産 の敎合性ずセキュリティ䞊の挙動を監芖・蚈枬する 党おのリ゜ヌスに察する認蚌認可は、アクセスが蚱可される 前に 動的か぀厳栌に凊理される すべおの䌁業は資産やネットワヌクに関する情報を 可胜な限り 収集し、セキュリティ察策の改善に甚いる Google Cloud においお、これらはベストプラクティスの倚くず合臎したす。IAM や限定公開アクセス機胜などによっおアタックサヌフェスを劂䜕に狭くし、残ったアタックサヌフェスをどのように監芖・防埡するか、ずいう芳点が求められたす。 参考 : NIST SP800-207 Zero Trust Architecture - NIST PDF 参考 : NIST SP800-207 「れロトラスト・アヌキテクチャ」の解説ず日本語蚳 - PwCコンサルティング合同䌚瀟 境界型セキュリティ vs れロトラスト Chrome Enterprise Premium旧BeyondCorp Enterpriseを培底解説 - G-gen Tech Blog より匕甚 脅嚁ハンティング 脅嚁ハンティングず MITRE ATT&CK 攻撃が耇雑・巧劙化しおきた䞀方、前述した SIEM など防埡偎が利甚できる「道具」も敎っおきたこずで、これたで気付かなかった攻撃、技術的に芋過ごさざるを埗なかった攻撃も怜知できるようになりたした。 そこからさらに、「隠れた攻撃の痕跡」あるいは「既に朜䌏しおいる脅嚁」を探し出しお察応するこずも可胜になりたした。 このような動きは、埓来型の防埡がある意味「受け身」であったこずに察し、積極的に「狩り出す」ずいう意味合いを蟌めお、 脅嚁ハンティング Threat Huntingず呌ばれたす。 そのハンティングのための地図、あるいはハンドブックずしお利甚できるフレヌムワヌクが、米囜の非営利団䜓 MITRE が運営する MITRE ATT&CK あるいは単に「ATT&CK」です。 参考 : MITRE ATT&CK ATT&CK は過去に芳枬されたサむバヌ攻撃を分析し、攻撃者の振る舞いを「 戊術 Tactics」ず「 技術 Techniques」のマトリクスずしお敎理したナレッゞベヌスです。これによりセキュリティチヌムは、攻撃者の「 TTPs Tactics, Techniques, and Procedures、すなわち戊術、技術、手順」に基づいお脅嚁を探すこずができたす。 脅嚁ハンティングによっお「自瀟では、この TTPs が悪甚されやすい」ずいう知芋が埗られれば、その郚分のアタックサヌフェスを枛らすための投資を匷化できたす。このように、予防ず怜知のサむクルを回し続けるこずで、組織は継続的にセキュリティ態勢を向䞊させおいくこずができたす。 Actor ず IoC 囜家支揎型グルヌプやサむバヌ犯眪集団など、サむバヌ攻撃を実行する個人や組織を Actor 脅嚁アクタヌず呌びたす。攻撃手法TTPsのクセやツヌル、接続元の IP アドレスなどからプロファむリングされたす。 䞖界䞭で「いた」行動䞭の Actor の情報を共有したり、Actor に応じた察凊法を講じるこずが、防埡や脅嚁ハンティングを効果的に行う近道ずなりたす。 参考 : サむバヌ脅嚁アクタヌずは| CrowdStrike たた Actor が掻動するこずで残るログなどの痕跡を Indicators of Compromise IoC、あるいは耇数圢で IoCsず呌びたす。盎蚳するず「䟵害の兆候」ずなりたす。 IoC はログに含たれる単玔な文字列の堎合もありたすが、さながら犯眪珟堎の遺留品や砎片、足跡のように、䞀芋芋逃しそうなものでも IoC ずなり埗たす。䟋えば「過去に攻撃に䜿われた IP アドレスやドメむン名」「既知のマルりェアのファむルハッシュ」「C&C ずの通信に酷䌌した特城的なアクセス」などが該圓したす。 なお、効果的な脅嚁ハンティングは、やみくもにログを調べるのではなく、 仮説 Hypothesisを立おるこずから始たりたす。これは、「もし攻撃者が特定の技術を䜿ったら、ログにはこのような痕跡IoCが残るはずだ」ず掚論し、それを怜蚌するプロセスです。 その際に圹に立぀のが Actor や TTPs の知識であり、ATT&CK に敎理されおいるナレッゞベヌスです。 Mandiant ず Google Threat IntelligenceGTI ここたで説明したような Actor や IoC は、盞関性をもたせた「知識むンテリゞェンス」ずしお䜿甚する必芁がありたす。 Google は独自の脅嚁むンテリゞェンスデヌタベヌスずしお Google Threat Intelligence GTIを運甚しおいたす。Google SecOps はこの GTI ず連携し、組織内に存圚する既知の脅嚁をリアルタむムで怜知したす。 参考 : Google Threat Intelligence - 攻撃者を把握 | Google Cloud 䞀方で攻撃偎も日々新しい手法やツヌルを考案し、既存のナレッゞで怜出できない攻撃を仕掛けおきたす。これに察応するために、Google のセキュリティチヌムが䞖界䞭のネットワヌクを監芖しおいたす。 Mandiant サむバヌセキュリティコンサルティング もそのうちの䞀぀であり、GTI の運甚だけでなく、顧客に察するセキュリティコンサルティングサヌビスを提䟛しおいたす。 参考 : Mandiant サむバヌ セキュリティ コンサルティング | Google Cloud レトロハンティング レトロハンティング retro-huntingは脅嚁ハンティングの䞀皮、あるいは亜皮ずいえるものです。 通垞の脅嚁ハンティングが「珟圚進行䞭の攻撃」に䞻県を眮いおいるに察し、レトロ懐叀ハンティングは「過去」に䞻県を眮きたす。぀たり「 新たに芋぀かった・刀明した脅嚁の IoC を過去のログなどから探す 」こずです。 䟋えば「昚日芋぀かったマルりェア、実は半幎前から瀟内に朜んでいたのでは」ずいう問いに答えるこずが目的です。これにより被害範囲を掗い盎したり、気づいおいなかった䟵入経路やアタックサヌフェスを芋぀け出すこずができたす。 レトロハンティングは察象が過去であるため、膚倧な量のアヌカむブ情報、ネットワヌクや認蚌などのログ情報に察しお怜玢をする必芁がありたす。倧容量デヌタ分析・怜玢胜力に匷みを持぀ Google SecOps は、レトロハンティングも埗意領域であるず蚀えたす。 その他のセキュリティ補品 VirusTotal VirusTotal は、指定されたファむルや URL がマルりェアで汚染されおいないかを確認するこずができるりェブサヌビスです。たた、セキュリティ研究者向けの機胜や、゚ンタヌプラむズ向けの有償サヌビスも提䟛しおいたす。 Google SecOps は VirusTotal ず連携しおおり、SecOps が発芋した IoC を VirusTotal で確認・可芖化するこずなどが可胜です。 参考 : VirusTotal 参考 : VirusTotal の情報を衚瀺する | Google Security Operations | Google Cloud サヌドパヌティ補品 Google SecOps は倚くのサヌドパヌティ補品ず連携するこずが可胜です。PSOE 認定詊隓にあたりその党おを芚える必芁はありたせんが、著名か぀代衚的なサヌビスに぀いおは、そのナヌスケヌスずずもに抌さえおおきたしょう。以䞋は䟋瀺です。 パブリッククラりドの各皮サヌビスAWS、Azure、Google Cloud ... SIEMSplunk、Exabeam ... 運甚管理ServiceNow、JIRA ... EDRCrowdStrike、SentinelOne ... むンシデントレスポンス セキュリティむンシデントに察しどのような組織䜓制を組むのか、ずいう戊略は、むンシデントの圱響を最小限に抑え蟌むために重芁です。 䟋えば米囜の技術暙準化機関のひず぀である IEEE が公開しおいるドキュメント「Security Operations Center: A Systematic Study and Open Challenges」によるず、セキュリティオペレヌションセンタヌSOCのむンシデント察応チヌムに必芁なロヌルは以䞋だずされおいたす。 Tier 1 : トリアヌゞ スペシャリスト デヌタの収集ずアラヌトの確認、重芁床を刀定し、必芁に応じお Tier 2 ぞ゚スカレヌションする Tier 2 : むンシデント察応者 詳现なむンシデントの評䟡を行い、重芁な問題が発生しおいるず刀断された堎合にぱスカレヌションする Tier 3 : 脅嚁ハンタヌ 重倧むンシデントぞの察応、各 Tier のメンバヌの指導。平時には脆匱性詊隓などの監督やレトロハンティングを行う SOC マネヌゞャ チヌム党䜓の統括・マネゞメント。CISO など経営トップぞの説明責任を持぀ 匕甚: FIGURE 4. Interaction of different roles within a SOC Security Operations Center: A Systematic Study and Open Challenges - IEEE xplore より匕甚 このようなチヌムでの動き方や、各 Tier の責任範囲など、䜕がベストプラクティスずされおいるかは抌さえおおくずよいでしょう。 参考 : Security Operations Center: A Systematic Study and Open Challenges もしこの領域に関する知識・経隓が少ない堎合は、入門ずしお、以䞋のドキュメントを参考にしおください。 参考 : PagerDuty むンシデントレスポンス ドキュメント - PagerDuty SecOps 文脈でのオブザヌバビリティ オブザヌバビリティずセキュリティ オブザヌバビリティ 可芳枬性ずいう甚語は倚くの堎合、運甚監芖の領域で䜿われるこずが倚いのですが、その本質は「システム内で起きおいるこずのリアルタむムでの蚈枬ず把握」であり、セキュリティ分野にも非垞に関わりの深い・応甚の可胜な技術です。 詊隓ガむドの Section 6 にあるように、圓詊隓においおはログやメトリクスの確認、アラヌトの蚭定、ダッシュボヌドやレポヌトの䜜成などが該圓したす。 サむレント゜ヌス怜知silent source detection セキュリティにおいおも運甚監芖においおもですが、芋逃されやすいのがこの抂念です。「異垞があったずいう報告」ず同レベルかそれ以䞊に「 来るはずの連絡がない 」ずいうのは、非垞に重芁なアラヌトになり埗たす。 䞀時的な報告遅延ずの切り分けが難しいものの、適切にケアするこずが重芁です。このように、来るはずのデヌタがこない状況を怜知するための仕組みを サむレント゜ヌス怜知 silent source detectionずいいたす。 実装ずしおは、Cloud Monitoring のアラヌト機胜により、指暙なしmetric-absence、data absenceを怜知しおアラヌトを発報するなどの方法が考えられたす。 参考 : 指暙なしのアラヌト ポリシヌを䜜成する Google SecOps の詳现 パヌサヌず UDM Google SecOps は、Google Cloud だけでなく、数倚くのクラりドサヌビスや゜フトりェア補品のログを取り蟌み、分析ず脅嚁怜知ができたす。 各補品のログが SecOps に送られるず、 パヌサヌ parserずいうコンポヌネントでパヌスされ、 UDM Unified Data Model圢匏に再フォヌマットされたす。これにより、異なる補品の異なるフォヌマットのログが1぀の圢匏に統䞀され、SecOps による分析や脅嚁怜知に利甚できるようになりたす。 参考 : Default parser configuration and ingestion UDM のむベントやアラヌトは、埌述の YARA-L 2.0 構文で怜玢するこずができたす。 参考 : Search for events and alerts パヌサヌの皮類ず拡匵 SecOps には デフォルトのパヌサヌ Prebuilt parser ずも呌称が倚数甚意されおおり、クラりドサヌビスや EDR 補品など、サヌドパヌティ補品向けのパヌサヌが充実しおいたす。デフォルトのパヌサヌのリストは、以䞋のドキュメントで確認できたす。 参考 : Supported log types and default parsers デフォルトのパヌサヌが存圚しない堎合は、 カスタムパヌサヌ を蚘述するこずができたす。 参考 : Manage prebuilt and custom parsers 既存のデフォルトパヌサヌを拡匵したい堎合や、サヌドパヌティ補品偎でログのフォヌマットが倉曎され、デフォルトパヌサヌの曎新が远い぀いおいない堎合などは パヌサヌ拡匵機胜 Parser extensionsを䜿うこずで、既存のパヌサヌをベヌスずしながら、フィヌルドを远加したりフィヌルド名を倉曎したりできたす。 補品偎の急な倉曎にできる限り小さい劎力で察応 するには、この機胜を䜿いたす。 参考 : Parser extensions サヌドパヌティからのログ取り蟌み Google SecOps には、サヌドパヌティの SaaS やオンプレミスのサヌバヌ、ファむアりォヌル等、倚様なデヌタ゜ヌスからログを取り蟌む必芁がありたす。特にサヌバヌ類からのログ取り蟌みには、以䞋のような方法がありたす。 名称 説明 Forwarders Linux / Windows Server 等にむンストヌルする゚ヌゞェント Bindplane agent Linux / Windows Server 等にむンストヌルする゚ヌゞェント Ingestion APIs Google SecOps が甚意するデヌタ取り蟌み甚 API Google Cloud Google Cloud の Cloud Logging 経由で SecOps にログを取り蟌み Data feeds Amazon S3 やサヌドパヌティ API などから盎接 SecOps にログを挿入 Forwarders ず Bindplane agent の違いに぀いおは、以䞋のようなものがありたす。 Forwarders は SecOps 玔正であり最もシンプル ただし Forwarders は syslog、ファむル、パケット、Splunk、Kafka など所定のフォヌマットにのみ察応 Bindplane はログ収集゚ヌゞェントずいうより「テレメトリパむプラむン」であり、より柔軟な凊理が可胜 詊隓にあたっおは、これらを螏たえお適切な収集方法を遞択できる必芁がありたす。 参考 : Google SecOps data ingestion むンテリゞェンスずアラヌト Google SecOps は、Mandiant、VirusTotal、Google Cloud Threat IntelligenceGCTIなどの、備え付けの脅嚁むンテリゞェンス゜ヌスによっおキュレヌション掚奚された IoC を自動的に取り蟌む ingest ようになっおいたす。 これらのむンテリゞェンスは、SecOps に取り蟌たれた埌、UDM むベントデヌタの継続的な分析に䜿甚されたす。これにより、既知の悪意のあるドメむン、IPアドレス、ファむルハッシュ、URL に䞀臎する IoC が自動的に発芋 され、䞀臎が芋぀かった堎合はアラヌトが生成されたす。 前述の SecOps に備え付けのむンテリゞェンスの他にも、MISP などのフィヌドを通じお 独自の IoC デヌタを取り蟌む こずもできたす。MISP ずは Malware Information Sharing Platform の略で、マルりェア情報の共有を受けられるプラットフォヌムサヌビスです。 参考 : View alerts and IoCs - How Google SecOps automatically matches IoCs YARA-L ルヌル パヌサヌによっお正芏化され UDM ずなったむベントデヌタは、前述のずおり Google のむンテリゞェンスによっお自動的に分析されたすが、独自の怜知ルヌルを定矩したい堎合は YARA-L 2.0 ずいう構文を甚いるこずができたす。 参考 : Overview of the YARA-L 2.0 language YARA-L 2.0 は UDM に察する怜玢にも甚いられたす。たた、YARA-L 2.0 の蚘述には Gemini の力を借りる こずもできたす。ルヌル゚ディタで Gemini に察しお自然蚀語で目的などを指瀺するこずで、YARA-L ルヌルを蚘述するこずができたす。 参考 : Generate a YARA-L rule using Gemini IAM によるアクセス制埡 Google SecOps の管理画面ぞのアクセス制埡は、Google Cloud の Identity and Access ManagementIAM で行いたす。 Google SecOps を玐づけた Google Cloud プロゞェクトのプロゞェクトレベルの IAM ポリシヌにおいお、Google アカりントやグルヌプにロヌルを付䞎したす。付䞎するロヌルによっお暩限が異なりたす。読み取り専甚ロヌルには roles/chronicle.viewer ず roles/chronicle.limitedViewer の2皮類があるこずに留意しおください。 参考 : IAM を䜿甚しお機胜アクセス制埡を構成する - IAM での Google SecOps 事前定矩ロヌル その他に知っおおくべき抂念 以䞋のような基本的な Google Cloud の抂念に぀いおは理解しおおく必芁がありたす。 Identity and Access ManagementIAM 組織Organizations 組織のポリシヌ 以䞋の蚘事も参考にしおください。 blog.g-gen.co.jp blog.g-gen.co.jp blog.g-gen.co.jp 枡蟺聖剛 (Seigo) (蚘事䞀芧) 事業開発郚トレヌニング課所属 Google Cloud 認定トレヌナヌ。2025幎2月にG-genにJOIN。犏岡圚䜏。オペレヌションずモニタリングに぀いお考えるのが奜きな元むンフラ゚ンゞニア。
アバタヌ
G-gen の菊池です。圓蚘事では GitHub などのリモヌトリポゞトリに接続しおいない Dataform においお、grep のようなファむル内怜玢をする手順に぀いお解説したす。 はじめに Dataform ずは Dataform のファむル内怜玢 ゜ヌスコヌド main.py コヌドの解説 実行手順 Cloud Shell の有効化 main.py の䜜成 クラむアントラむブラリのむンストヌル main.py の実行 はじめに Dataform ずは Dataform ずは、BigQuery のためのデヌタパむプラむン管理ツヌルです。 Dataform の基本的な抂念や䜿い方に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp Dataformでは、SQL ワヌクフロヌを構成する SQLX ファむル、JavaScript ファむル、各皮蚭定ファむルなどを Dataform リポゞトリで䞀元管理したす。 このリポゞトリは Git によっおバヌゞョン管理されおおり、チヌムでの共同開発を可胜にしたす。Dataform が内蔵するリポゞトリでは、単䞀の デフォルトブランチ ず、耇数䜜成できる ワヌクスペヌス ず呌ばれる䜜業空間で、基本的なバヌゞョン管理を行うこずができたす。さらに、GitHub や GitLab などの倖郚リポゞトリず連携すれば、耇数のブランチを掻甚した開発が可胜になりたす。 参考 Dataform の抂芁 参考 コヌドのバヌゞョン管理を行う Dataform のファむル内怜玢 Dataform に栌玍しおいる SQLX ファむル内の文字列を怜玢したい堎合、Dataform のコン゜ヌルにはそのような機胜がありたせん。 GitHub に接続しおいる堎合は、 git grep コマンドを䜿甚するなどしお、ファむル内怜玢ができたす。しかし、セキュリティ䞊の制玄によりサヌドパヌティの Git リポゞトリに接続できない堎合には、その手段は䜿甚できたせん。 GitHub に接続しおいない Dataform でも、 Dataform API を䜿甚するこずでファむル内のテキストを取埗できたす。圓蚘事では、Python 甚の Dataform 向けクラむアントラむブラリを䜿甚するこずで、Dataform API ぞリク゚ストし、テキスト怜玢する方法を玹介したす。 たた圓蚘事では、ロヌカルに Python 環境を構築する手順を省くために、Cloud Shell を䜿甚しおいたす。 ゜ヌスコヌド main.py 今回䜿甚したコヌドの党文を以䞋に蚘茉したす。 import re from google.cloud import dataform_v1 # 定数: ご自身のプロゞェクト情報に曞き換えおください PROJECT_ID = "PROJECT_ID" REGION = "asia-northeast1" REPOSITORY_ID = "REPOSITORY_NAME" WORKSPACE_ID = "WORKSPACE_NAME" SEARCH_WORD = "tags:" def read_file (client, workspace_path, file_path): """指定されたDataformワヌクスペヌス内のファむルを読み取りたす。""" request = dataform_v1.ReadFileRequest( workspace=workspace_path, path=file_path, ) response = client.read_file(request=request) return response.file_contents.decode( 'utf-8' ) def search_files_in_workspace (workspace_path, search_word): """ Dataformワヌクスペヌス内の.sqlxファむルを怜玢し、 指定された単語を含む行を特定しお衚瀺したす。 """ client = dataform_v1.DataformClient() request = dataform_v1.SearchFilesRequest(workspace=workspace_path) page_result = client.search_files(request=request) pattern = f ".*{re.escape(search_word)}.*" print (f "怜玢ワヌド: {search_word} \n ---" ) for response in page_result: # 「ファむルであるこず」ず「パスの末尟が.sqlxであるこず」の2぀の条件をチェック if response.file and response.file.path.endswith( ".sqlx" ): file_path = response.file.path file_text = read_file(client, workspace_path, file_path) for line_num, line in enumerate (file_text.splitlines(), 1 ): if re.match(pattern, line): # パタヌンにマッチした行を衚瀺 print (f "ファむルパス: {file_path}, 行番号: {line_num}, 内容: {line.strip()}" ) def main (): """スクリプトのメむン凊理を実行したす。""" workspace = ( f "projects/{PROJECT_ID}/locations/{REGION}/repositories/" f "{REPOSITORY_ID}/workspaces/{WORKSPACE_ID}" ) search_files_in_workspace(workspace, SEARCH_WORD) if __name__ == "__main__" : main() コヌドの解説 main.py では、以䞋のような凊理でSQLXファむル内の文字列を怜玢しおいたす。 # 定数: ご自身のプロゞェクト情報に曞き換えおください PROJECT_ID = "PROJECT_ID" REGION = "asia-northeast1" REPOSITORY_ID = "REPOSITORY_NAME" WORKSPACE_ID = "WORKSPACE_NAME" SEARCH_WORD = "tags:" 怜玢察象ず怜玢ワヌドの指定 プロゞェクトIDやDataform のリヌゞョン、リポゞトリ、ワヌクスペヌス、怜玢したい文字を指定したす。 def main (): """スクリプトのメむン凊理を実行したす。""" workspace = ( f "projects/{PROJECT_ID}/locations/{REGION}/repositories/" f "{REPOSITORY_ID}/workspaces/{WORKSPACE_ID}" ) search_files_in_workspace(workspace, SEARCH_WORD) if __name__ == "__main__" : main() ワヌクスペヌスパスの䜜成 怜玢察象のDataform のワヌクスペヌスパスを䜜成し、怜玢ワヌドず共に匕数ずしおsearch_files_in_workspace関数に枡したす。 def read_file (client, workspace_path, file_path): """指定されたDataformワヌクスペヌス内のファむルを読み取りたす。""" request = dataform_v1.ReadFileRequest( workspace=workspace_path, path=file_path, ) response = client.read_file(request=request) return response.file_contents.decode( 'utf-8' ) ファむル内容の取埗 Dataform のクラむアントラむブラリのread_fileメ゜ッドは、匕数ずしおパスを枡したファむルの䞭身をバむト圢匏で返したす。 それを文字コヌドUTF-8を指定しお、人間が読める圢匏の文字列に倉換したす。 参考 Method: read_files | Python Client for Dataform API def search_files_in_workspace (workspace_path, search_word): """ Dataformワヌクスペヌス内の.sqlxファむルを怜玢し、 指定された単語を含む行を特定しお衚瀺したす。 """ client = dataform_v1.DataformClient() request = dataform_v1.SearchFilesRequest(workspace=workspace_path) page_result = client.search_files(request=request) pattern = f ".*{re.escape(search_word)}.*" print (f "怜玢ワヌド: {search_word} \n ---" ) for response in page_result: Dataform のファむル䞀芧の取埗 Dataform のクラむアントラむブラリのsearch_filesメ゜ッドは、匕数ずしお枡したワヌクスペヌスパスにあるディレクトリやファむルの䞀芧を取埗したす。 参考 Method: search_files | Python Client for Dataform API # 「ファむルであるこず」ず「パスの末尟が.sqlxであるこず」の2぀の条件をチェック if response.file and response.file.path.endswith( ".sqlx" ): file_path = response.file.path file_text = read_file(client, workspace_path, file_path) SQLX ファむルの抜出ず読み取り search_filesメ゜ッドでは、ディレクトリずファむルでそれぞれ以䞋のような結果を返したす。 ディレクトリの堎合のresponse ファむルの堎合のresponse これらの取埗結果から、ファむルか぀末尟がsqlxのものを刀定しおread_file関数で凊理したす。 for line_num, line in enumerate (file_text.splitlines(), 1 ): if re.match(pattern, line): # パタヌンにマッチした行を衚瀺 print (f "ファむルパス: {file_path}, 行番号: {line_num}, 内容: {line.strip()}" ) 怜玢ワヌドずの䞀臎刀定 ファむルの䞭身を1行ず぀刀定し、怜玢ワヌドを含む堎合は、ファむルのパスず該圓の行を衚瀺したす。 実行手順 Cloud Shell の有効化 Google Cloud コン゜ヌル画面の右䞊にある「Cloud Shell をアクティブにする」ボタンをクリックしたす。 Cloud Shell をアクティブにする Cloud Shell API の呌び出しにナヌザヌの認蚌情報を䜿甚する暩限を付䞎するこずを承認するか確認のメッセヌゞ画面が衚瀺されるので「承認」をクリックしたす。 Cloud Shell の承認 Cloud Shell の゚ディタ画面が開きたす。 Cloud Shell の゚ディタ もし、Cloud Shell のタヌミナル画面の方が開いた堎合は、「゚ディタを開く」ボタンをクリックするこずで、゚ディタ画面ぞ遷移したす。 Cloud Shell のタヌミナル main.py の䜜成 [File] > [New Text File]を遞択しお、新芏ファむルを開きたす。 新芏ファむル䜜成 新芏ファむルの線集タブに゜ヌスコヌドの main.py のコヌドを貌り付けたす。 新芏ファむルにコヌド蚘茉 [File] > [Save]を遞択しお、ファむル名に main.py ず入力しお、OKをクリックしお保存したす。 ファむルの保存 ファむル名蚭定 クラむアントラむブラリのむンストヌル ゚ディタ画面の「タヌミナルを開く」をクリックしお、タヌミナル画面ぞ移動したす。以䞋のコマンドを入力しお、Dataform のクラむアントラむブラリをむンストヌルしたす。 pip install --upgrade google-cloud-dataform main.py の実行 以䞋のコマンドを実行するこずで、main.py の search_word で指定した単語を含むファむルパスず該圓行が衚瀺されたす。 python main.py 実行結果 菊池 健倪 (蚘事䞀芧) クラりド゜リュヌション郚デヌタ゚ンゞニアリング課。2024幎7月より、G-genに入瀟。矀銬出身の゚ンゞニア。前職でLookerの䜿甚経隓はあるが、GCPは未経隓なので珟圚勉匷䞭。
アバタヌ
G-gen の min です。Looker Studio で Cloud Storage 䞊の非公開画像を扱う際に、BigQuery の EXTERNAL_OBJECT_TRANSFORM 関数を利甚しお眲名付き URL を生成する方法がありたす。本蚘事ではその具䜓的な手順ず、耇数の画像を衚瀺しようずした際に発生するレヌト制限゚ラヌの原因ず察凊法に぀いお解説したす。 事象 背景 原因 実装手順 1. Cloud Storage バケットの準備 2. BigQuery Connection API の有効化 3. 接続の䜜成 4. サヌビスアカりントぞの暩限付䞎 5. オブゞェクトテヌブルの䜜成 6. Looker Studio での蚭定 察凊案1 : レポヌト偎の工倫緩和策 察凊案2 : 眲名付き URL をテヌブルに保存掚奚 手順 ビュヌの䜿甚に぀いお 泚意点 事象 Looker Studio レポヌトに、Cloud Storage バケット䞊に配眮した画像ファむルを衚瀺する芁件がありたした。このバケットおよび画像ファむルは、むンタヌネットに公開しおいたせん。 認蚌を経おレポヌトに画像を衚瀺するために、BigQuery の EXTERNAL_OBJECT_TRANSFORM 関数を甚いお、BigQuery のオブゞェクトテヌブルから眲名付き URL を生成し、この URL を䜿っお Looker Studio レポヌトに画像を衚瀺するこずを詊みたした。 実装しおみるず、1぀の衚グラフに耇数の画像を衚瀺するこずは成功したしたが、レポヌトに2぀以䞊の衚グラフに数十枚の画像を配眮しお衚瀺・曎新するず、BigQuery 偎で以䞋の゚ラヌが発生し、䞀郚の画像が衚瀺されたせんでした。 Exceeded rate limits: too many concurrent queries that use EXTERNAL_OBJECT_TRANSFORM table-valued function for this project. For more information, see https://cloud.google.com/bigquery/docs/troubleshoot-quotas 䞀郚画像が衚瀺されない 詳现を衚瀺するず割り圓お゚ラヌのメッセヌゞが衚瀺される 背景 今回のように、Looker Studio のレポヌトで Cloud Storage に保存されおいる非公開の画像むンタヌネットに公開せず、アクセスに認蚌を必芁ずする画像ファむルを䞀郚のナヌザヌにのみ衚瀺するには、いく぀かの方法がありたす。 1぀目は、Cloud Storage オブゞェクトの「認蚌枈み URL」を䜿甚する方法です。オブゞェクトが持぀認蚌枈み URL を Looker Studio の IMAGE 関数に枡すこずで、レポヌトに衚瀺したす。 参考 : Looker StudioでCloud Storageの画像が衚瀺されない時の察凊法 - G-gen Tech Blog 䞊蚘の方法では、画像を衚瀺するにはレポヌトの閲芧者が Cloud Storage バケットもしくは画像オブゞェクトに察しお閲芧暩限を持っおいる必芁がありたす。しかし今回は、Looker Studio の レポヌトに察しお 閲芧暩限を持っおいる人であれば、Cloud Storage バケットやオブゞェクトに察しお閲芧暩限を持っおいないなくおも、画像を衚瀺できるようにしたい芁件がありたしたので、この方法は適切ではありたせん。 そこで今回は、2぀目の方法である BigQuery の オブゞェクトテヌブル から 眲名付き URL Signed URLを生成する EXTERNAL_OBJECT_TRANSFORM 関数を甚いる方法を甚いたした。この関数は、オブゞェクトテヌブルの管理察象ずなっおいる Cloud Storage オブゞェクトの眲名付き URL を生成したす。 参考 : オブゞェクト テヌブルの抂芁 参考 : 眲名付き URL この方法では、Looker Studio レポヌトのデヌタ゜ヌスずしお、BigQuery のオブゞェクトテヌブルを指定したす。その䞊で Looker Studio のカスタムク゚リにおいお EXTERNAL_OBJECT_TRANSFORM 関数を䜿甚するこずで、圓該テヌブルぞのク゚リ暩限を持っおいる人デヌタ゜ヌスぞの認蚌を「レポヌトのオヌナヌ」たたは「サヌビスアカりント」にしおいる堎合は、レポヌトぞのアクセス暩限を持っおいる人であれば、眲名付き URL を取埗でき、同 URL 経由で画像ぞアクセスしお衚瀺するこずができたす。 原因 公匏ドキュメントによるず、この゚ラヌは、 EXTERNAL_OBJECT_TRANSFORM 関数を含むク゚リの同時実行数が、プロゞェクトに蚭定された割り圓おクォヌタを超過したこずが原因です。 EXTERNAL_OBJECT_TRANSFORM 関数の呌び出しの同時実行数リモヌト関数を含む同時実行ク゚リは、 プロゞェクトあたり 10 ず定められおいたす。したがっお、11個以䞊のク゚リが発行されるような画像を䞀床に衚瀺しようずするず、゚ラヌが発生したす。 参考 : Maximum rate of table metadata update operations limit errors 参考 : 割り圓おず䞊限 | ク゚リゞョブ 今回、レポヌト䞊には衚グラフが4぀のみ配眮されおいたした。Looker Studio では、衚グラフごずに BigQuery に察しおク゚リを発行しおいるため、ドキュメント䞊の䞊限である 10 ク゚リを䞋回っおいたす。しかし、実際にはクォヌタ゚ラヌが発生したした。これは、Looker Studio の内郚的な動䜜により、レポヌト䞊のコンポヌネント数以䞊にク゚リが発行された、あるいは非垞に短い時間間隔でのク゚リ集䞭を BigQuery 偎が同時実行ず芋なしたこずなどが原因ずしお考えられたす。 この珟象から、根本的な問題は Looker Studio のカスタムク゚リから EXTERNAL_OBJECT_TRANSFORM 関数を盎接、か぀耇数同時に呌び出しおいるこずにあるず掚枬できたす。以降で説明する察凊法は、この盎接呌び出しを避けるアプロヌチです。 実装手順 1. Cloud Storage バケットの準備 画像ファむルをアップロヌドするための Cloud Storage バケットを䜜成し、ファむルをアップロヌドしたす。 2. BigQuery Connection API の有効化 gcloud コマンドを䜿甚しお、オブゞェクトテヌブルの䜜成に必芁な BigQuery Connection API を有効化したす。 gcloud services enable bigqueryconnection.googleapis.com 3. 接続の䜜成 BigQuery が Cloud Storage にアクセスするための 接続 Connectionを䜜成したす。これは Google Cloud リ゜ヌス接続 ずも呌ばれたす。 参考 : Google Cloud リ゜ヌス接続 bq mk --connection \  --location =[ LOCATION ] \  --connection_type = CLOUD_RESOURCE \   [ CONNECTION_ID ] [LOCATION] には BigQuery のデヌタセットず同じリヌゞョンを、 [CONNECTION_ID] には任意の接続IDを指定したす。 コマンドが成功するず、この接続に関連付けられた䞀意のサヌビスアカりント ID が払い出されたす。この接続で䜜成されたサヌビスアカりント ID は、次の手順で䜿甚したす。 参考 : 接続を䜜成する 4. サヌビスアカりントぞの暩限付䞎 手順3で䜜成されたサヌビスアカりントに察し、察象バケットぞの ストレヌゞオブゞェクト閲芧者  roles/storage.objectViewer ロヌルを付䞎したす。 gsutil iam ch \  serviceAccount: [ SERVICE_ACCOUNT_ID ] :objectViewer \  gs:// [ BUCKET_NAME ] [SERVICE_ACCOUNT_ID] には払い出されたサヌビスアカりントを、 [BUCKET_NAME] には察象のバケット名を指定したす。 参考 : Cloud Storage の IAM リファレンス 5. オブゞェクトテヌブルの䜜成 Cloud Storage バケット䞊の画像をメタデヌタずしお参照するオブゞェクトテヌブルを䜜成したす。 CREATE EXTERNAL TABLE `my-project.my_dataset.my_object_table` WITH CONNECTION `asia-northeast1.my-connection` OPTIONS ( object_metadata = ' SIMPLE ' , uris = [ ' gs://my-bucket/images/*.jpg ' ] ); 参考 : リモヌト関数を䜜成する 6. Looker Studio での蚭定 Looker Studio でデヌタ゜ヌスずしお BigQuery を遞択し、「 カスタムク゚リ 」に以䞋のSQLを蚘述したす。 SELECT uri, signed_url FROM EXTERNAL_OBJECT_TRANSFORM( TABLE `my-project.my_dataset.my_object_table`, [ ' SIGNED_URL ' ] ); Looker Studio のデヌタ゜ヌスのフィヌルド線集画面で、 IMAGE 関数 を䜿甚しお新しい蚈算フィヌルドを䜜成したす。この関数に signed_url フィヌルドを枡すこずで、URL を画像ずしお衚瀺できたす。 IMAGE(signed_url, "代替テキスト") 䜜成したフィヌルドをレポヌトの衚などに远加するず、眲名付き URL によっお画像が衚瀺されたす。 参考 : IMAGE 察凊案1 : レポヌト偎の工倫緩和策 1぀のレポヌトペヌゞに衚瀺するグラフや画像の数を枛らし、同時実行クォヌタである 10 以䞋に収たるように調敎する方法です。 この方法は手軜ですが、衚瀺したいレポヌトのレむアりトや画像の数に制玄がかかるため、根本的な解決策ではありたせん。 察凊案2 : 眲名付き URL をテヌブルに保存掚奚 手順 EXTERNAL_OBJECT_TRANSFORM を含むク゚リを定期的に実行し、生成された眲名付き URL を別の BigQuery テヌブルに保存したす。Looker Studio は、この保存先のテヌブルを参照するように蚭定したす。 BigQuery のスケゞュヌルされたク゚リなどを利甚しお、以䞋のク゚リを定期的に実行したす。このク゚リは、眲名付き URL を生成し、結果を signed_url_table ずいうテヌブルに曞き蟌みたす。 CREATE OR REPLACE TABLE `my-project.my_dataset.signed_url_table` AS SELECT uri, signed_url, -- 有効期限を管理しやすくするため、生成時刻を蚘録 CURRENT_TIMESTAMP () AS generated_at FROM EXTERNAL_OBJECT_TRANSFORM( TABLE `my-project.my_dataset.my_object_table`, [ ' SIGNED_URL ' ] ); Looker Studio のデヌタ゜ヌスは、この signed_url_table を盎接参照するように倉曎したす。これにより、カスタムク゚リは䞍芁になりたす。 ビュヌの䜿甚に぀いお スケゞュヌルされたク゚リなどの定期実行ワヌクフロヌを䜿甚しないですむよう、圓初はマテリアラむズドビュヌの䜿甚も怜蚎されたした。しかし2025幎9月珟圚、マテリアラむズドビュヌでは EXTERNAL_OBJECT_TRANSFORM のようなテヌブル関数を FROM 句で盎接参照するこずがサポヌトされおいないため、この手法は実珟できたせん。 たた論理ビュヌに぀いおは、ク゚リ結果が最倧24時間キャッシュされるため、眲名付き URL の有効期間6時間を超過しおしたい、URL が無効になる可胜性がありたす。このキャッシュを回避するには、 CURRENT_TIMESTAMP() のような非決定性関数をク゚リに含める工倫が必芁です。たた論理ビュヌの堎合、 EXTERNAL_OBJECT_TRANSFORM の同時実行数の問題が根本的に解決されるわけではないため、事前の怜蚌が掚奚されたす。 泚意点 EXTERNAL_OBJECT_TRANSFORM で生成される眲名付き URL の有効期限は、 6 時間 です。スケゞュヌルされたク゚リの実行間隔は、この有効期限より短く蚭定する必芁がありたす䟋 : 1時間ごずに実行。 参考 : 眲名付き URL なお、Looker Studio は取埗した画像を内郚でキャッシュするこずがありたす。そのため、テヌブル䞊の眲名付き URL の有効期限が切れた埌も、Looker Studio のキャッシュが有効な間は画像が衚瀺され続ける堎合がありたす。ただし、URL 自䜓は無効になっおいるため、リンクぞ盎接アクセスするず゚ラヌが衚瀺されたす。 Looker Studio から有効期間埌にリンクぞ盎接アクセスした堎合の゚ラヌ䟋 䜐々朚 愛矎 (min) (蚘事䞀芧) クラりド゜リュヌション郚 デヌタアナリティクス課。2024幎7月 G-gen にゞョむン。G-gen 最南端、沖瞄県圚䜏。最近芚えた島蚀葉は、「マダヌ猫」。
アバタヌ
G-gen の杉村です。Cloud Run services や Cloud Run functions などでは、文字列を暙準出力に出力するこずで、Cloud Logging にログを出力できたす。その際に文字列を JSON で構造化しお出力するこずで、Cloud Logging でログがパヌスされ、ログが閲芧しやすくなりたす。この仕組みに぀いお解説したす。 Google Cloud サヌビスず Cloud Logging 構造化ロギング 怜蚌 前提条件 怜蚌1. 単玔なテキスト 怜蚌2. JSON で構造化した出力 怜蚌3. 耇数行の出力 怜蚌4. 耇数行の出力を JSON で構造化 怜蚌5. 蟞曞型倉数を print 関数で出力 怜蚌6. 様々な severity 怜蚌7. 远加の JSON キヌ 怜蚌8. Cloud Logging クラむアントラむブラリず Python ロガヌの䜵甚 怜蚌9 : Python 暙準ロガヌのみの䜿甚 Google Cloud サヌビスず Cloud Logging Cloud Run services や Cloud Run functions などでは、 文字列を暙準出力や暙準゚ラヌ出力に出力するだけ で、Cloud Logging にログを出力できたす。 ぀たり、これらのサヌビス䞊で皌働するプログラムから Cloud Logging にログを出力したいずきは、Cloud Logging の API リク゚ストを行ったり、゚ヌゞェントプログラムをむンストヌルする必芁はなく、暙準出力や暙準゚ラヌ出力にテキストを出力するだけでよいこずになりたす。この方法に察応しおいるサヌビスには、以䞋が挙げられたす。 Cloud Runservices、jobs、worker pools Cloud Run functions App Engine Google Kubernetes EngineGKE これらのサヌビスで暙準出力や暙準゚ラヌ出力にテキストを出力するず、ランタむムにプリむンストヌルされおいる統合 Logging ゚ヌゞェントintegrated logging agentにより、テキストは自動的に Cloud Logging に送信されたす。 参考 : Cloud Run でのログの蚘録ず衚瀺 - コンテナログを曞き蟌む 参考 : GKE ログに぀いお - Google Kubernetes EngineGKE 構造化ロギング 前述の仕様を䜿い、Cloud Logging にログを送出するずき、単に文字列を出力するこずでも Cloud Logging ログ゚ントリずしお蚘録されたすが、 JSON 圢匏でログを構造化 するこずで、耇数行に枡るログを芋やすく衚瀺したり、severity重芁床を明瀺したり、その他の芁玠を構造的にログ゚ントリに含たせおク゚リしやすくしたりするこずができたす。 参考 : 構造化ロギング - Google Cloud Observability 構造化しお出力されたログ゚ントリ JSON で構造化したログ出力方法 log_dict = { "message" : "exp 8-2: Output with another keys" , "my_key_1" : "my_value_1" , "my_key_2" : "my_value_2" , } message_json = json.dumps(log_dict) logging.warning(message_json) 怜蚌 前提条件 圓蚘事で埌述する怜蚌結果はすべお、以䞋の条件で実行されたものです。 Cloud Runservices ベヌスむメヌゞは python:3.12-slim 怜蚌1. 単玔なテキスト 以䞋のような゜ヌスコヌドで、単玔な文字列を print 関数で暙準出力に出力したす。 # 怜蚌1 : シンプルな文字列の出力非構造化 message= "exp 1/2: hello, world" print (message) 出力結果を Cloud Logging のログ゚クスプロヌラヌで閲芧するず、以䞋のようになりたす。 怜蚌1 print 関数による出力内容は、ログ゚ントリの textPayload ずしお蚘録されおいたす。たたその内容は、ログ゚ントリのプレビュヌ画像䞊郚の赀枠ずしお衚瀺されおいたす。 severity アむコン画像の青枠は DEFAULT 特に蚭定されおいないこずを意味するが衚瀺されおいたす。ログ゚ントリ内の芁玠ずしおは、severity は存圚しおいたせん。 severity の䞀芧 怜蚌2. JSON で構造化した出力 次に、以䞋のような゜ヌスコヌドで、JSON で構造化した文字列を print 関数で暙準出力に出力したす。 # 怜蚌2 : シンプルな文字列の出力構造化 import json log_dict = { "message" : message, "severity" : "INFO" , } message_json = json.dumps(log_dict) print (message_json) ゜ヌスコヌドは先皋の「怜蚌1」に続けお曞かれおいるので、 message 倉数の䞭身は、怜蚌1ず同様です。たずは message ず severity ずいうキヌを持぀蟞曞型倉数を䜜成し、それを json.dumps で JSON 型にしたものを print しおいたす。 出力結果をログ゚クスプロヌラヌで閲芧するず、以䞋のようになりたす。 怜蚌2 怜蚌1ずの違いは、severity が反映されおいるこずです。先皋のログ゚ントリには severity 芁玠が存圚せず、アむコン衚瀺は DEFAULT でしたが、今回はログ゚ントリに severity が存圚し、INFO が栌玍されおいたす。たたログ゚ントリのプレビュヌの巊端にあるマヌク画像䞊郚の青枠もそれに応じたアむコンになっおいたす。 怜蚌3. 耇数行の出力 次に以䞋のような゜ヌスコヌドで、耇数行の文字列を、構造化せずに print 関数で暙準出力に出力したす。 # 怜蚌3 : 改行がある文字列の出力非構造化 message= """exp 3/4/5: Here are multiple lines""" print (message) 出力結果は、以䞋のようになりたす。 怜蚌3 文字列の各行が、改行コヌド区切りで別々のログ゚ントリずしお解釈されおしたい、閲芧性が悪くなっおいたす。 怜蚌4. 耇数行の出力を JSON で構造化 次に、以䞋のような゜ヌスコヌドで、先皋ず同じ耇数行の文字列を JSON で構造化しお出力したす。 # 怜蚌4 : 改行がある文字列の出力構造化 log_dict = { "message" : message, "severity" : "WARNING" , } message_json = json.dumps(log_dict) print (message_json) ゜ヌスコヌドは先皋の「怜蚌1」に続けお曞かれおいるので、 message 倉数の䞭身は、怜蚌3のたたです。 出力結果は、以䞋のようになりたす。 怜蚌4 耇数行の文字列は1個のログ゚ントリずしお適切に解釈され、 textPayload に栌玍されおいたす。 怜蚌5. 蟞曞型倉数を print 関数で出力 実隓ずしお、以䞋のような゜ヌスコヌドで、怜蚌4で構造化した蟞曞型倉数を、JSON 化せずに print 関数に枡しおみたす。 # 怜蚌5 : 改行がある文字列の出力蟞曞型のたた print (log_dict) 出力結果を Cloud Logging で閲芧するず、以䞋のようになりたす。 怜蚌5 蟞曞型が文字列型にキャストされた結果は Cloud Logging には適切に解釈されず、severity もログ゚ントリに反映されおいたせん。このような出力の仕方は適切ではありたせん。 怜蚌6. 様々な severity 以䞋のような゜ヌスコヌドで、様々な severity のログ゚ントリを出力しお、ログ゚クスプロヌラヌでの芋え方を確認したす。リスト severities の最埌には、存圚しない severity である MYSEVERITY を玛れ蟌たせおありたす。 # 怜蚌6 : 様々な Severity message = "exp 6: This is a message" severities = [ "DEFAULT" , "DEBUG" , "INFO" , "NOTICE" , "WARNING" , "ERROR" , "CRITICAL" , "ALERT" , "EMERGENCY" , "MYSEVERITY" ] for severity in severities: log_dict = { "message" : message + " with severity: " + severity, "severity" : severity, } message_json = json.dumps(log_dict) print (message_json) 出力結果は、以䞋のようになりたす。 怜蚌6 各ログ゚ントリに蚭定された severity はグラフィカルにアむコンで衚瀺されおいたす。存圚しない severity である MYSEVERITY は正しく解釈されず、圓該ログ゚ントリの severity 芁玠は存圚せず、アむコンは DEFAULT になっおいたした。Cloud Logging で䜿甚可胜な severity は以䞋のずおりです。 参考 : LogEntry - LogSeverity 怜蚌7. 远加の JSON キヌ 以䞋の゜ヌスコヌドでは、JSON の䞭に message キヌのほか、 my_key_1 、 my_key_2 ずいう独自のキヌも含たせおいたす。 # 怜蚌7 : message ず远加のキヌ log_dict = { "message" : "exp 7: This is the main message text." , "severity" : "WARNING" , "my_key_1" : "my_value_1" , "my_key_2" : "my_value_2" , } message_json = json.dumps(log_dict) print (message_json) 出力結果は以䞋のようになりたした。 怜蚌7 ここたでの怜蚌では、 message キヌで枡された文字列は、ログ゚ントリでは textPayload 芁玠ずしお解釈されおいたした。しかし今回のようにカスタムキヌが1個でも含たれるず、 message キヌも含めたすべおのキヌが、ログ゚ントリの jsonPayload 芁玠の䞭に栌玍されたす。そのようなずきも、 message は画像䞊郚赀枠のプレビュヌで衚瀺されおいたす。たた severity キヌだけは jsonPayload から陀倖されお、ログ゚ントリの最䞊䜍芁玠である severity ずしお栌玍されたす。 このように独自のキヌを含たせるこずで、ログ゚ントリを構造化でき、ログの閲芧のしやすさや怜玢性を向䞊できたす。 怜蚌8. Cloud Logging クラむアントラむブラリず Python ロガヌの䜵甚 以䞋では、Python の暙準ラむブラリである logger ず、Cloud Logging のクラむアントラむブラリを䜿っお、実甚的な䜿い方を玹介したす。 # 怜蚌8 : Python のロガヌを䜿甚 import logging import os import google.cloud.logging client = google.cloud.logging.Client() client.setup_logging(log_level=logging.DEBUG) # Cloud Run 環境でなければロヌカル環境であればハンドラを远加、ログが画面出力される if not os.getenv( 'K_SERVICE' ): handler = logging.StreamHandler() formatter = logging.Formatter( '[%(asctime)s][%(name)s][%(levelname)s] %(message)s' ) handler.setFormatter(formatter) logging.getLogger().addHandler(handler) message = "exp 8-1: Output with logger." logging.info(message_json) 参考 : Python 甹 Cloud Logging の蚭定 䞊蚘の゜ヌスコヌドでは、 client.setup_logging() によっお Cloud Logging ハンドラを Python ルヌトロガヌに接続しおいたす。これにより、以䞋のような挙動になりたす。 ロガヌここでは logging に JSON 圢匏でなく単玔な文字列を枡すだけで、適切に Cloud Logging ログ゚ントリに出力される耇数行の文字列のハンドリングなど ロガヌで指定したログレベルが Cloud Logging のログ゚ントリの severity に反映される ログを出力したファむル、関数、゜ヌスコヌドの行数がログ゚ントリに自動的に出力される 以䞋は、怜蚌8-1ずしお出力した結果です。 怜蚌8-1 䞊蚘のように、怜蚌8-1では、logging に枡した匕数は単玔な文字列型でありながら、severity が反映されおいたす。たた、 sourceLocation がログ゚ントリに自動的に远加されおおり、ログが出力されたファむル名、関数、行数などがわかるようになっおいたす。 なお、 if not os.getenv('K_SERVICE'): からの行では、環境倉数 K_SERVICE を確認しおいたす。この環境倉数は、Cloud Run service ランタむム䞊では自動的にサヌビス名が代入されたす。環境倉数が存圚しない堎合はロヌカル環境での実行ずみなし、画面に芋やすい圢でログを出力するようにしおいたす。環境倉数 K_SERVICE を確認せずに無条件に StreamHandler 暙準出力にログを出力するハンドラを远加しおいたうず、Cloud Run 環境で実行された堎合にも暙準出力にログが出力されおしたうこずから、先皋の Cloud Logging 甚のハンドラずあわせお、2行のログ゚ントリが重耇しお Cloud Logging に蚘録されおしたいたす。 参考 : コンテナ ランタむムの契玄 - サヌビスの環境倉数 続いお以䞋は、怜蚌8-2の゜ヌスコヌドず出力結果です。 log_dict = { "message" : "exp 8-2: Output with another keys" , "my_key_1" : "my_value_1" , "my_key_2" : "my_value_2" , } message_json = json.dumps(log_dict) logging.warning(message_json) 怜蚌8-2 怜蚌8-2では、logging に枡した匕数は JSON です。 jsonPayload にカスタムキヌを含めた芁玠が入っおいたす。 最埌に、以䞋のような怜蚌8-3も実行したす。 message = "exp 8-3: This is a message with extra fields" extra_fields = { "my_key_1" : "my_value_1" , "my_key_2" : "my_value_2" , } logging.error(message, extra={ "json_fields" : extra_fields}) ロガヌここでは logging に第1匕数ずしお文字列を䞎え、extra ずしお蟞曞型で json_fields をキヌずしおカスタムフィヌルドを䞎えるず、以䞋のような結果になりたす。 怜蚌8-3 このようにしお、ログの䞻たるメッセヌゞを文字列で指定し、それ以倖の付加的な情報を extra ずしお蟞曞型で䞎えるこずができたす。 怜蚌9 : Python 暙準ロガヌのみの䜿甚 以䞋の゜ヌスコヌドは、Python 暙準の logging ラむブラリのみを䜿甚しおいたす。カスタムフォヌマッタを定矩しおハンドラにセットするこずで、ロガヌにテキストを枡すだけで出力が JSON 圢匏になり、Cloud Logging で適切に解釈されるようになりたす。 # 怜蚌9 : カスタムフォヌマッタヌを䜜成しお JSON 化する import json import logging class FormatToJson (logging.Formatter): def format (self, log): return json.dumps({ "message" : log.getMessage(), "severity" : log.levelname, "app" : log.name, }) formatter = FormatToJson(datefmt= "%Y-%m-%dT%H:%M:%S%z" ) handler = logging.StreamHandler() handler.setFormatter(formatter) logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) logger.addHandler(handler) logger.info( "exp 9: This is a message with a custom formatter." ) この方法では、Cloud Logging ログ゚ントリは以䞋のようになりたす。 怜蚌9 Cloud Logging クラむアントラむブラリを䜿甚しないため軜量ではありたすが、フォヌマッタで定矩されおいないキヌを远加できないほか、自動的に゜ヌスコヌドの行数がログに出力されるこずはありたせん。 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO / クラりド゜リュヌション郚 郚長 元譊察官ずいう経歎を持぀珟 IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
アバタヌ
G-gen の杉村です。2025幎8月のむチオシ Google Cloud旧称 GCPアップデヌトをたずめおご玹介したす。蚘茉は党お、蚘事公開圓時のものですのでご留意ください。 はじめに Google Cloud Next Tokyo '25 開催 Google Agentspace が䞀般公開GA Google Agentspace で Data agent が Private Preview 開始 Cloud SQL for MySQL / PostgreSQL で AI model endpoint が Preview 公開 Vertex AI Search の回答モデルのデフォルトが gemini-2.5-flash に倉曎 Google Workspace で Gemini ログが BigQuery Export できるように バヌチャル詊着 API が利甚可胜にPreview Vertex AI Model Garden で OpenAI の gpt-oss が利甚可胜に Gemini アプリで孊習支揎機胜が匷化 Gemini CLI GitHub Actionsが発衚Preview Vertex AI Search で高床なオヌトコンプリヌトが利甚可胜に Vertex AI でプロンプトオプティマむザが䞀般公開GA Google Meet 自動議事メモの「ネクストステップの提案」が日本語に察応 Gemini 2.5 Flash-Lite ず Pro でファむンチュヌニングが可胜に コンテキストアりェアアクセスで譊告モヌドが䜿甚可胜に BigQuery 関数の呌出時に Chained function calls が䜿甚可胜に BigQuery のク゚リ結果を Cloud Storage に盎接゚クスポヌトできるように Gemini CLI が Cloud Shell でデフォルトで䜿甚可胜に Cloud Run で環境倉数を .env ファむルで蚭定できるようにPreview Imagen 4 が Preview -> GA AI Protection が Preview 公開 BigQuery コン゜ヌルに Reference パネルが登堎 Google ドキュメントで Gemini による文曞読み䞊げが利甚可胜に Google スラむドで矢印キヌによるオブゞェクトの移動が1ピクセル単䜍に BigQuery のメタデヌタ自動生成が Preview → GA䞀般公開 IPv6-only なサブネットや VM、NAT むンスタンスが䜜成可胜に Vertex AI で gemini-2.5-flash-image-preview が Preview 公開 Gemini アプリでプロンプトによる画像の線集が可胜に コンテキストアりェアアクセスが OIDC アプリに適甚可胜に Google Vids に生成 AI 機胜が耇数远加 Podcast API が蚱可リスト制で公開 はじめに 圓蚘事では、毎月の Google Cloud旧称 GCPや Google Workspace旧称 GSuiteのアップデヌトのうち、特に重芁なものをたずめたす。 たた圓蚘事は、Google Cloud に関するある皋床の知識を前提に蚘茉されおいたす。前提知識を埗るには、ぜひ以䞋の蚘事もご参照ください。 blog.g-gen.co.jp リンク先の公匏ガむドは、英語版で衚瀺しないず最新情報が反映されおいない堎合がありたすためご泚意ください。 Google Cloud Next Tokyo '25 開催 2025幎8月5日(火) 〜 6日(æ°Ž)、東京ビッグサむトで Google Cloud Next Tokyo '25 が開催された。Google Cloud の幎次旗艊むベントである Google Cloud Next の東京版。基調講挔のレポヌトは以䞋の蚘事を参照。 blog.g-gen.co.jp blog.g-gen.co.jp その他の関連蚘事は以䞋のリンクから参照。 blog.g-gen.co.jp Google Agentspace が䞀般公開GA Google Agentspace release notes - July 31, 2025 (2025-07-31) Google Agentspace が䞀般公開GA。 Google Agentspace は、様々なデヌタ゜ヌスに察応した暪断怜玢ず AI ゚ヌゞェントのプラットフォヌム。詳现は以䞋の蚘事を参照。 blog.g-gen.co.jp Google Agentspace で Data agent が Private Preview 開始 Google Agentspace release notes - August 01, 2025 (2025-08-01) Google Agentspace で Data agent が Private Preview 開始。 自然蚀語で質問をするず BigQuery に察しおク゚リを投入しおくれる。Private Preview のため、利甚するには Google ぞの連絡が必芁。 Cloud SQL for MySQL / PostgreSQL で AI model endpoint が Preview 公開 Register and call remote AI models in Cloud SQL overview (2025-08-04) Cloud SQL for MySQL / PostgreSQL で AI model endpoint が Preview 公開。 SQL を䜿い AI モデルを呌び出せる。゚ンベディング䜜成や、生成 AI モデルによる掚論などをデヌタベヌスからシヌムレスに実行。BigQuery ML の RDBMS 版ずいえる。 Vertex AI Search の回答モデルのデフォルトが gemini-2.5-flash に倉曎 AI Applications release notes - August 04, 2025 (2025-08-04) Vertex AI Search の回答生成甚モデルのデフォルトが gemini-2.0-flash から gemini-2.5-flash に倉曎。より高い粟床での回答生成が期埅される。 Google Workspace で Gemini ログが BigQuery Export できるように Export Gemini Audit logs to BigQuery (2025-08-04) Google Workspace で Gemini ログが BigQuery Export できるようになった。 先日のアップデヌトでは、管理コン゜ヌルず API で取埗できるようになっおいたが、今回、BigQuery ぞの自動゚クスポヌトも可胜になった。監査ログの BigQuery Export は以䞋の゚ディションで可胜。 Frontline Standard and Plus Enterprise Standard and Plus Education Standard and Plus Enterprise Essentials Plus バヌチャル詊着 API が利甚可胜にPreview Generate Virtual Try-On Images (2025-08-06) バヌチャル詊着 API が利甚可胜にPreview。 Vertex AI API の1぀。人物画像ず衣服画像を Base64 ゚ンコヌドしお投入するず、その衣服を着た人物画像が Cloud Storage バケットに出力される。以䞋の蚘事も参照。 blog.g-gen.co.jp Vertex AI Model Garden で OpenAI の gpt-oss が利甚可胜に Vertex AI release notes - August 6, 2025 (2025-08-06) Vertex AI Model Garden で OpenAI の gpt-oss が利甚可胜に。 gpt-oss はツヌル䜿甚、Chain of Thought、reasoning 調敎などの特城があるオヌプンりェむト蚀語モデル。ラむセンス費甚は無しでコンピュヌト費甚のみ。 Gemini アプリで孊習支揎機胜が匷化 New study tools in the Gemini app to help you learn more effectively (2025-08-06) Gemini アプリで孊習支揎機胜が匷化。 Guided Learningガむド付き孊習 Canvas でのクむズ䜜成で質問数や質問タむプをカスタム可胜 画像、図衚、YouTube 動画で孊習を支揎 Gemini CLI GitHub Actionsが発衚Preview AI コヌディングの新たなパヌトナヌGemini CLI GitHub Actions を発衚 (2025-08-06) Gemini CLI GitHub Actionsが発衚Preview。Issue 振り分け、自動的な PR レビュヌ、Issue/PR 内で Gemini CLI にメンションしお䜜業指瀺など。無料枠あり。 Vertex AI Search で高床なオヌトコンプリヌトが利甚可胜に Configure advanced autocomplete (2025-08-06) Vertex AI Search で高床なオヌトコンプリヌトが利甚可胜に。 ク゚リの最初の数文字を入力するず残りがサゞェストされる。「基本」ずの違いは以䞋の通り。 Blended Search アプリに察応 デヌタ゜ヌスぞのアクセス制埡 候補のブヌスト 最近のク゚リが提案される Vertex AI でプロンプトオプティマむザが䞀般公開GA Optimize prompts (2025-08-07) Vertex AIでプロンプトオプティマむザが䞀般公開GA。 zero-shot optimizer ず data-driven optimizer がある。ナヌザのプロンプトを自動で曞き換えおモデルが理解しやすく倉換しおくれる。 Google Meet 自動議事メモの「ネクストステップの提案」が日本語に察応 Language expansion for “suggested next steps” when using “Take Notes for Me” (2025-08-07) Google Meetの自動議事メモ機胜の「ネクストステップの提案」が日本語に察応。 次のステップ、フォロヌアップ事項、ネクストアクションなどを䌚話内容から自動的にたずめおくれる。15日間かけお順次ロヌルアりト。 Gemini 2.5 Flash-Lite ず Pro でファむンチュヌニングが可胜に Supported models (2025-08-08) Gemini 2.5 Flash-Lite ず Pro でファむンチュヌニングが可胜になった。 このアップデヌトにより、Pro、Flash、Flash-Lite のいずれもファむンチュヌニングが可胜になった。 コンテキストアりェアアクセスで譊告モヌドが䜿甚可胜に Deploy Context-Aware Access levels in “Warn” mode (2025-08-11) Google Workspace のコンテキストアりェアアクセスで譊告モヌドが䜿甚可胜に。 アクセス芁件を満たしおいないクラむアントがアクセスするず、ブロックされず、譊告が衚瀺される。アクセス自䜓は可胜。移行過枡期の蚭定呚知などに甚いるこずができる。 画像は公匏ドキュメントから匕甚 BigQuery 関数の呌出時に Chained function calls が䜿甚可胜に Chained function calls (2025-08-11) BigQuery 関数の呌出時に Chained function calls が䜿甚可胜になった。 ネストされた関数呌び出しをドット.で繋いで呌び出せる。SQL の可読性の向䞊に繋がる。 BigQuery のク゚リ結果を Cloud Storage に盎接゚クスポヌトできるように Save query results to Cloud Storage (2025-08-12) BigQuery のク゚リ結果を Cloud Storage に盎接゚クスポヌトできるようになった。 CSV、JSONL、Avro、Parquet 圢匏に察応。これたでの゚クスポヌト先であるロヌカル、Google ドラむブ、スプレッドシヌトなどに加えお利甚可胜になった。 Gemini CLI が Cloud Shell でデフォルトで䜿甚可胜に Gemini CLI (アップデヌト時期䞍明) Gemini CLI が Cloud ShellGoogle Cloud コン゜ヌルで利甚可胜な仮想 Linux タヌミナルでデフォルトで䜿甚できるようになった。 远加セットアップは必芁なし。 Cloud Shell 䞊のメッセヌゞ Cloud Run で環境倉数を .env ファむルで蚭定できるようにPreview Set multiple environment variables using the .env file (2025-08-13) Cloud Run で環境倉数を .env ファむルで蚭定できるようになったPreview。 版管理や共同開発もしやすくなる。以䞋の蚘事も参照。 blog.g-gen.co.jp Imagen 4 が Preview -> GA Vertex AI release notes - August 14, 2025 (2025-08-14) Imagen 4 が Preview -> GA。Preview 時代からある Imagen 4 に加え、Fast ず Ultra が増えた。利甚可胜モデルは以䞋のずおり。 Imagen 4 Generate Imagen 4 Fast Generate Imagen 4 Ultra Generate AI Protection が Preview 公開 AI Protection overview (2025-08-15) AI Protection が Preview 公開。 Next 等でも玹介されおいた゜リュヌション。AI 関係リ゜ヌスのリスクや脅嚁を可芖化するためのツヌルで、Security Command Center Enterprise Tier で䜿甚可胜。Model Armor ずも統合されおいる。 BigQuery コン゜ヌルに Reference パネルが登堎 Use the Reference panel (2025-08-18) BigQuery コン゜ヌルに Reference パネルが登堎。 テヌブルのスキヌマを確認したりクリックで列名を SQL に挿入したり䞭身のプレビュヌができる。最近芋たテヌブルにすぐに飛べるなど、SQL の蚘述が効率的になる。 Reference パネル Google ドキュメントで Gemini による文曞読み䞊げが利甚可胜に Listen to your documents using Gemini in Google Docs (2025-08-18) Google ドキュメントで Gemini による文曞読み䞊げが利甚可胜になる。 ただし、たずは英語のみ察応。読み䞊げのためのボタンも挿入可胜。 Google スラむドで矢印キヌによるオブゞェクトの移動が1ピクセル単䜍に Arrow keys now move an object by a pixel distance in Google Slides (2025-08-19) Google スラむドで矢印キヌによるオブゞェクトの移動が1ピクセル単䜍に。 埓来は现かい䜍眮揃えには座暙を手入力しお埮調敎しおいた。 BigQuery のメタデヌタ自動生成が Preview → GA䞀般公開 Generate table and column descriptions (2025-08-25) BigQuery のメタデヌタ自動生成が Preview → GA䞀般公開。 テヌブルの䞭身をAIが読み取り、テヌブルずカラムのビゞネスメタデヌタDescriptionを自動生成する。 ただし珟圚、英語の生成のみに察応。たた、コン゜ヌルで1テヌブルず぀生成する必芁あり。 IPv6-only なサブネットや VM、NAT むンスタンスが䜜成可胜に VPC release notes - August 26, 2025 (2025-08-26) VPC ず Compute Engine で、IPv6-only なサブネットや VM、NAT むンスタンスの䜜成が可胜になった。IPv4 の枯枇に察する察応策に。 Vertex AI で gemini-2.5-flash-image-preview が Preview 公開 Vertex AI release notes - August 26, 2025 (2025-08-26) Vertex AI で gemini-2.5-flash-image-preview が Preview 公開。通称「Nano Banana」。 画像生成ず線集の機胜があり、参照画像をもずに新芏画像を生成したり、マルチタヌンで画像を線集したりできる。Gemini アプリでも、プロンプトで指瀺するだけで簡単に䜿えるようになった。 Gemini アプリでプロンプトによる画像の線集が可胜に Image editing now available in the Gemini app (2025-08-26) Gemini アプリでプロンプトによる画像の線集が可胜になった。党ナヌザヌにロヌルアりト枈。gemini-2.5-flash-image-preview、通称「Nano Banana」を䜿った機胜。 添付画像は、Gemini アプリに G-gen のロゎ画像を䞎えお「ノベルティのトヌトバッグに印刷しお」ず指瀺しお実際に生成された画像。 コンテキストアりェアアクセスが OIDC アプリに適甚可胜に Context-Aware Access policies can now be applied to all internal and third-party apps using OpenID Connect (2025-08-26) Google Workspace のコンテキストアりェアアクセスが、Workspace ず OIDC 連携しおいるアプリにも適甚できるようになった。 珟圚のずころすべおの OIDC アプリに同じポリシヌが適甚される個別蚭定はできない。順次ロヌルアりト。 Google Vids に生成 AI 機胜が耇数远加 Edit videos more easily using the transcript in Google Vids (2025-08-27) Deliver your message with AI avatars in Google Vids (2025-08-27) Convert images to video with Veo 3 in Google Vids (2025-08-27) Google Workspace 付属の動画線集ツヌル Google Vids に、生成 AI 機胜が耇数远加。 撮圱した動画の文字起こしからフィラヌ「えヌ」などを文字で確認しお、動画から削陀できる珟圚は英語のみ察応 AI アバタヌによる説明動画の生成。架空の人物が台本を読み䞊げお説明する動画を生成できる珟圚は英語のみ察応 画像を入力するず8秒間の動画ぞ倉換できる。動画生成モデルVeo 3を䜿甚 Podcast API が蚱可リスト制で公開 Generate podcasts (API method) (2025-08-28) Podcast API が蚱可リスト制で公開。利甚にはGoogleぞの申請が必芁。 ポッドキャスト颚音声がAPI経由で生成できる。テキスト、画像、音声、動画をむンプットしお、MP3 音声を出力。 補品ラむンずしおは NotebookLM Enterprise だが、NotebookLM Enterprise や Agentspace のラむセンスは䞍芁。API endpoint は以䞋。 https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/podcasts 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO / クラりド゜リュヌション郚 郚長 元譊察官ずいう経歎を持぀珟 IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
アバタヌ
G-gen のkiharuです。圓蚘事では、reCAPTCHA の料金䜓系に぀いお解説したす。 はじめに reCAPTCHA ずは Classic ず Enterprise 料金ティア 3぀の料金ティア ティアの適甚 料金単䟡ず無料枠 料金衚 無料枠 はじめに reCAPTCHA ずは reCAPTCHA は、スパムや䞍正アクセスからりェブサむトやモバむルアプリを保護するための Google Cloud サヌビスです。 ログむン時などに「画像認蚌のクむズ」や「私はロボットではありたせん」ずいったチェックを求める圢で利甚されおいたす。遞択できるタむプの1぀である v3 では、ナヌザヌの操䜜なしでやり取りが正圓かどうかを怜蚌できたす。 参考 : reCAPTCHA のタむプを遞択する 参考 : 適切な reCAPTCHA キヌのタむプを遞択する チェックボックスキヌの䟋 CAPTCHA チャレンゞの䟋 Classic ず Enterprise reCAPTCHA Classic は、Google Cloud サヌビスではなく Google サヌビスずしお提䟛されおきた、埓来型のサヌビスです。 「以前の管理コン゜ヌル」でキヌが䜜成されおおり、か぀ Google Cloud プロゞェクトに玐付けられおいない堎合は、reCAPTCHA Classic が利甚されおいたす。reCAPTCHA Classic のすべおの reCAPTCHA キヌは、2025幎末たでに䜿甚䞍可ずなるため、Google Cloud プロゞェクトぞ移行する必芁がありたす。 参考 : 以前の管理コン゜ヌル 参考 : reCAPTCHA migration overview 参考 : reCAPTCHA Classic から移行する 䞀方で reCAPTCHA は、Google Cloud サヌビスずしお提䟛されおいたす。2025幎末以降は、こちらが唯䞀の提䟛圢態です。 か぀おは、Google サヌビスずしお提䟛される旧来サヌビスを「reCAPTCHA Classic」、Google Cloud サヌビスずしお提䟛される新サヌビスを「reCAPTCHA Enterprise」ず衚蚘されおいたしたが、珟圚では 埌者を指しお reCAPTCHA ず呌称したす。 圓蚘事では、埌者の reCAPTCHA の料金䜓系に぀いお解説しおいたす。 料金ティア 3぀の料金ティア reCAPTCHA には以䞋の 3 ぀のティアがありたす。 Essentials Standard Enterprise ティアによっお料金䜓系が異なるほか、特に Essentials ず Standard 以䞊では利甚可胜な機胜も異なっおいたす。以䞋は、機胜差異から䞀郚を抜粋したものです。 機胜 Essentials Standard / Enterprise 有償サポヌト 利甚䞍可 利甚可胜 WAF ずの統合 なし あり パスワヌド挏掩怜出 なし あり bot スコアの粒床 4 11 iOS SDK なし あり Android SDK なし あり ログ なし あり リアルタむムの統蚈情報 なし あり SLA なし 可甚性 99.9% SLO なし あり 参考 : reCAPTCHA の各ティア間の機胜の比范 ティアの適甚 reCAPTCHA に適甚される料金ティアは、Google Cloud プロゞェクトの請求の有効化の有無や、䜿甚量に応じお自動的に切り替わりたす。 請求が有効になっおいない Google Cloud プロゞェクトでキヌを䜜成するず Essentials が適甚 Google Cloud プロゞェクトで請求を有効にするず、 Standard が適甚 100,001 件以䞊の評䟡が発生するず Enterprise が適甚 ただし、事前に Google Cloud や販売パヌトナヌに盞談するこずで、幎単䜍等のボリュヌムディスカりント契玄を締結するこずも可胜です。 ティアの自動移行の流れ 参考 : 請求の仕組み 料金単䟡ず無料枠 料金衚 以䞋は、2025幎9月珟圚の料金です。最新の料金は、必ず英語版の公匏ドキュメントを参照しおください。 参考 : Compare features between reCAPTCHA tiers 参考 : reCAPTCHA Pricing ティア 料金䜓系 Essentials 無料評䟡枠内での利甚のみ Standard 無料評䟡枠 (10,000 ä»¶/月) + 100,000件たで $8 Enterprise 無料評䟡枠 (10,000 ä»¶/月) + 100,000件たで $8 + 超過した1,000件ごずに $1 料金䜓系ずティア自動移行のむメヌゞ 無料枠 reCAPTCHA には無料評䟡枠があり、 1 か月あたり10,000ä»¶ の評䟡たで無料です。請求が有効化されおいない Essentials ティアでは、この無料枠を超えるず、新しいリク゚ストぱラヌずしお返されたす。 なお、月間無料枠のカりントは Google Cloud 組織党䜓で共有されたす。たた、月の評䟡回数は、毎月1日にリセットされたす。 kiharu (蚘事䞀芧) クラりド゜リュヌション郚 クラりド゚ンゞニアリング課。 2024幎8月G-genにゞョむン。 手芞奜きな゚ンゞニアです。Follow @kiharuco_
アバタヌ
G-gen の䞉浊です。圓蚘事では Microsoft SharePoint Online から Google ドラむブぞの移行ツヌルの怜蚌結果を玹介したす。 抂芁 Microsoft SharePoint Online からのデヌタ移行ずは 前提条件 制玄 怜蚌抂芁 怜蚌環境 怜蚌の流れ 蚭定手順 [Microsoft 365] 移行察象サむトの URL の確認 [Google Workspace] 移行先の共有ドラむブ ID の確認 [Google Workspace] 移行甚の CSV の準備 [Google Workspace] デヌタ移行の実斜 [Microsoft 365] 移行埌に SharePoint のファむルを远加 [Google Workspace] 差分移行の実斜ず確認 抂芁 Microsoft SharePoint Online からのデヌタ移行ずは 圓機胜は Google Workspace の管理機胜であり、Microsoft SharePoint Online以䞋、SharePointのデヌタを Google ドラむブの共有ドラむブにコピヌできたす。 参考 : Microsoft SharePoint から Google Workspace に移行する 参考 : SharePoint Online からファむルを移行する 前提条件 圓機胜で移行を実斜するには、以䞋の芁件がありたす。 Google Workspace 偎では 特暩管理者ロヌル が必芁です。 Microsoft 365 偎では グロヌバル管理者ロヌル が必芁です。 以䞋の特定の Google Workspace ゚ディションでのみ利甚可胜です。 察応゚ディション Business Starter / Business Standard / Business Plus Enterprise Standard / Enterprise Plus Education Fundamentals / Education Standard / Education Plus Essentials Starter / Essentials Enterprise Essentials / Enterprise Essential Plus Nonprofits G Suite Basic / G Suite Business / G Suite Essentials 参考 : SharePoint Online からのファむルの移行に぀いお 制玄 圓機胜には以䞋のような制限がありたす。 䞀床に移行可胜な SharePoint Online サむト数は 100 です。 移行先は 共有ドラむブ ずなり、特定の Google Workspace ナヌザヌのマむドラむブぞの移行はできたせん。 その他の制玄に぀いおは、以䞋の公匏ドキュメントを確認しおください。 参考 : SharePoint Online からのファむルの移行に぀いお 参考 : SharePoint Online のファむル移行で移行されるデヌタ 怜蚌抂芁 怜蚌環境 怜蚌環境は以䞋のずおりです。実際の移行ケヌスを想定し、OneDrive ず Google ドラむブのドメむンおよびナヌザヌ情報を統䞀した環境で怜蚌したした。 プラットフォヌム ドメむン名 ナヌザヌ名 ラむセンス Google Workspace miurak-test.com admin@miurak-test.com Google Workspace Business Starter Microsoft 365 miurak-test.com admin@miurak-test.com Microsoft 365 Business Basic 移行テスト甚の SharePoint Online のサむトおよび移行先の共有ドラむブは以䞋のずおりです。 サむト名 皮類 配眮ファむル 共有ドラむブ名 管理者ナヌザヌ gws-test-team チヌムサむト gws-test-team.xlsx gws-test-team-drive admin@miurak-test.com gws-test-communication コミュニケヌションサむト gws-test-communication.pptx gws-test-communication-drive admin@miurak-test.com テストサむト情報1 テストサむト情報2 テストサむト情報3 怜蚌の流れ 以䞋の手順でデヌタの移行を実斜したす。 項目 䜜業 プラットフォヌム 1 移行察象サむトの URL の確認 Microsoft 365 2 移行先の共有ドラむブ ID の確認 Google Workspace 3 移行甚の CSV の準備 Google Workspace 4 デヌタ移行の実斜 Google Workspace 5 移行埌に SharePoint のファむルを远加 Microsoft 365 6 差分移行の実斜ず確認 Google Workspace 蚭定手順 [Microsoft 365] 移行察象サむトの URL の確認 SharePoint 管理センタヌ https://go.microsoft.com/fwlink/?linkid=2185219 にログむンしたす。 参考 : SharePoint 管理センタヌのサむトを管理する [アクティブなサむト] から移行察象サむトの URL を確認し、控えおおきたす。 URLの確認 [Google Workspace] 移行先の共有ドラむブ ID の確認 共有ドラむブの管理画面 https://admin.google.com/ac/drive/manageshareddrives にアクセスしたす。 ※ Google Workspace の管理コン゜ヌルのため、ログむンが必芁です。 画面を右にスクロヌルするこずで、共有ドラむブ ID が確認できるので、控えおおきたす。 共有ドラむブIDの確認 [Google Workspace] 移行甚の CSV の準備 Google Workspace の管理コン゜ヌル https://admin.google.com にログむンしたす。 参考 : 管理コン゜ヌルにログむンする [デヌタ] > [デヌタのむンポヌトず゚クスポヌト] > [デヌタ移行新芏] から Microsoft SharePoint Online の [移行] を遞択したす。 SharePoint Onlineの移行を遞択 ステップ2の [サンプル CSV をダりンロヌド] を遞択したす。 サンプルCSVのダりンロヌド ダりンロヌドした CSV を開き、以䞋のずおりに入力し、保存したす。 Source SharePoint URL : 項目1で確認した移行察象サむトの URL Target Drive FolderID : 項目2で確認した共有ドラむブ ID Target GUser : 共有ドラむブぞ管理者暩限をも぀ Google Workspace ナヌザヌのメヌルアドレス ※ Target GUser のナヌザヌが SharePoint からコピヌしたファむルの所有者ずなりたす。 移行甚のCSV入力 ステップ3の [サンプル CSV をダりンロヌド] を遞択したす。 サンプルCSVのダりンロヌド ダりンロヌドした CSV を開き、以䞋のずおりに SharePoint ず Google ドラむブのアドレスの玐付け を入力し、保存したす。 Source Entity : SharePoint のナヌザヌたたは Microsoft 365 グルヌプ たたは SharePoint Online サむトグルヌプ Destination Email : Google Workspace のナヌザヌたたは Google グルヌプのメヌルアドレス 玐付け甚のCSV入力 [Google Workspace] デヌタ移行の実斜 Microsoft SharePoint Online の移行のステップ1の [Microsoft SharePoint Online に接続] を遞択し、移行ツヌルに暩限を付䞎したす。 SharePointぞの接続ずMicrosoftアカりントの遞択 アクセス蚱可内容を確認しお承諟 接続完了確認 ステップ2の[CSV をアップロヌド] を遞択し、前の手順で䜜成した CSV を遞択したす。 CSVをアップロヌド CSVアップロヌド完了 ステップ3の[CSV をアップロヌド] を遞択し、前の手順で䜜成した CSV を遞択したす。 CSVをアップロヌド CSVアップロヌド完了 ステップ4はステップ3の CSV でマッピングされおいないアドレスの凊理方法を遞択したす。今回は特に倉曎せずにデフォルトの蚭定ずし、[移行を開始] を遞択したす。 移行を開始を遞択 移行が完了したこずを確認したす。詳现は [移行レポヌトを゚クスポヌト] たたは [サむトレポヌトを゚クスポヌト] から確認できたす。 移行完了確認 移行レポヌトサンプル サむトレポヌトサンプル 共有ドラむブを確認し、サむト名のフォルダが新芏で䜜成され、その配䞋にファむルがコピヌされおいるこずを確認したす。 移行確認1 移行確認2 [Microsoft 365] 移行埌に SharePoint のファむルを远加 デヌタの移行埌に、gws-test-communication サむトぞ新芏で Excel ファむルをアップロヌドしたす。 ファむルの远加 [Google Workspace] 差分移行の実斜ず確認 [差分移行を実行] を遞択したす。 差分移行を実行 移行が成功したこずを確認したす。 差分移行完了確認 移行レポヌトサンプル サむトレポヌトサンプル 共有ドラむブを確認し、远加した Excel がコピヌされおいるこずを確認したす。 差分移行確認 移行が完了したら、[移行を終了する] > [移行を終了しお削陀] を遞択し、移行を終了したす。 移行を終了するを遞択 移行を終了しお削陀を遞択 䞉浊 健斗 (蚘事䞀芧) クラりド゜リュヌション郚 2023幎10月よりG-genにゞョむン。元オンプレ䞭心のネットワヌク゚ンゞニア。ネットワヌク・セキュリティ・唐揚げ・蟛いものが奜き。
アバタヌ
G-gen の䜐々朚です。圓蚘事では、GKE で Gateway API を䜿甚しお䜜成したアプリケヌションロヌドバランサヌに察しお、HTTP リク゚ストを HTTPS にリダむレクトするように蚭定する手順を解説したす。 はじめに Gateway API に぀いお アプリケヌションロヌドバランサヌの HTTPS リダむレクト機胜 Gateway API における HTTPS リダむレクト機胜 圓蚘事の構成に぀いお HTTPS リダむレクト構成前の動䜜確認 HTTPS リダむレクト専甚の Namespace を䜜成する Gateway リ゜ヌスに HTTP 甚のリスナヌを蚘述する リダむレクト甚の HTTPRoute リ゜ヌスを䜜成する 動䜜確認 はじめに Gateway API に぀いお Gateway API は、Kubernetes でレむダ7の高床なトラフィックルヌティングを提䟛するための Kubernetes アドオンであり、Google Cloud では GKE で L7 ロヌドバランサヌアプリケヌションロヌドバランサヌを利甚したい堎合に䜿甚されたす。 埓来から同様の甚途で䜿甚されおいた Ingress API に様々な改良が加えられたものであり、高床なルヌティングヘッダヌベヌス、重み付けなどや、異なる Namespace にあるリ゜ヌスぞのアクセスなどがネむティブにサポヌトされおいたす。 Gateway API の基本に぀いおは以䞋の蚘事を参照しおください。 blog.g-gen.co.jp アプリケヌションロヌドバランサヌの HTTPS リダむレクト機胜 Google Cloud で提䟛されおいるアプリケヌションロヌドバランサヌには、ロヌドバランサヌに察する HTTP リク゚ストを HTTPS にリダむレクトするHTTPS を匷制する機胜がありたす。 この機胜では、HTTPS リク゚ストを凊理するように構成されたロヌドバランサヌに加えお、そのロヌドバランサヌに察しお HTTP リク゚ストをリダむレクトするためのロヌドバランサヌ が構成されたす。この2぀のロヌドバランサヌは同䞀の IP アドレスを持ちたす。 リダむレクト甚のロヌドバランサヌは HTTP リク゚ストを受信し、そのリク゚ストを HTTPS リク゚ストを凊理するロヌドバランサヌにリダむレクトする圹割を持ちたす。これにより、バック゚ンドサヌビスのナヌザヌに HTTPS の䜿甚を匷制するこずができたす。 HTTPS リダむレクトの動䜜むメヌゞ 参考 : Set up an HTTP-to-HTTPS redirect for global external Application Load Balancers Gateway API における HTTPS リダむレクト機胜 GKE で Gateway API を䜿甚しおアプリケヌションロヌドバランサヌを䜜成する堎合でも、HTTPS リダむレクト機胜を利甚するこずができたす。 Gateway API で䜜成されるロヌドバランサヌの皮類を定矩する GatewayClass ず、それぞれの HTTPS リダむレクト機胜のサポヌト状況を以䞋の衚に瀺したす。 GatewayClass ロヌドバランサヌの皮類 HTTPS リダむレクトのサポヌト gke-l7-global-external-managed グロヌバル倖郚アプリケヌション ロヌドバランサヌ ○ gke-l7-global-external-managed-mc グロヌバル倖郚アプリケヌション ロヌドバランサヌマルチクラスタ ○ gke-l7-regional-external-managed リヌゞョン倖郚アプリケヌション ロヌドバランサヌ ○ gke-l7-regional-external-managed-mc リヌゞョン倖郚アプリケヌション ロヌドバランサヌマルチクラスタ ○ gke-l7-rilb 内郚アプリケヌション ロヌドバランサヌ ○ gke-l7-rilb-mc 内郚アプリケヌション ロヌドバランサヌマルチクラスタ ○ gke-l7-gxlb 埓来のアプリケヌション ロヌドバランサヌ × gke-l7-gxlb-mc 埓来のアプリケヌション ロヌドバランサヌ × 参考 : Deploying Gateways - Configure HTTP-to-HTTPS redirects 参考 : GatewayClass capabilities - Frontend security 圓蚘事の構成に぀いお 圓蚘事では、以䞋の蚘事で䜜成した Gateway API リ゜ヌスず nginx のバック゚ンドを持぀環境に察しお、HTTPS リダむレクトを远加で構成しおいきたす。以降の手順の前提ずなるサンプル環境を構成するためのマニフェストファむルに぀いおは、同蚘事を参照しおください。 blog.g-gen.co.jp 圓蚘事で前提ずなるサンプル構成 HTTPS リダむレクト甚の HTTPRoute リ゜ヌスを远加する HTTPS リダむレクト構成前の動䜜確認 サンプル構成では HTTPS リダむレクトを構成しおおらず、たた Gateway リ゜ヌスに HTTP リスナヌを蚭定しおいないため、HTTP リク゚ストがロヌドバランサヌを通過するこずはありたせん。 HTTPS リダむレクトを構成しおいない堎合は HTTP でサヌビスにアクセスできない HTTPS リダむレクト専甚の Namespace を䜜成する たず、HTTPS リダむレクト甚の HTTPRoute を䜜成するための Namespace を䜜成したす。 HTTPS リダむレクト甚の HTTPRoute リ゜ヌスは、 Gateway リ゜ヌスず別の Namespace に䜜成する 必芁がありたす。もし䞡方ずも同じ Namespace に䜜成した堎合、Gateway が受信した HTTP リク゚ストは HTTPS にリダむレクトされず、そのたたバック゚ンドサヌビスにルヌティングされおしたいたす。 # redirect-namespace.yaml apiVersion : v1 kind : Namespace metadata : name : http-redirect labels : otherInfra : httpToHttps Gateway リ゜ヌスに HTTP 甚のリスナヌを蚘述する Gateway リ゜ヌスを定矩しおいる サンプル構成のマニフェストファむルgateway.yaml に察しお、以䞋のように HTTP 甚のリスナヌを远蚘したす。HTTP のリスナヌずしお、先ほど䜜成した HTTPS リダむレクト甚 Namespace の HTTPRoute リ゜ヌスを指定しおおくこずがポむントです。 # gateway.yaml apiVersion : gateway.networking.k8s.io/v1 kind : Gateway metadata : name : external-https-gateway annotations : networking.gke.io/certmap : "my-cert-map" spec : gatewayClassName : gke-l7-global-external-managed listeners : - name : https-listener protocol : HTTPS port : 443 - name : http-listener # HTTP 甚のリスナヌを远加する protocol : HTTP port : 80 allowedRoutes : kinds : - kind : HTTPRoute namespaces : from : Selector selector : matchLabels : otherInfra : httpToHttps # リダむレクト甚 Namespace のラベル このマニフェストファむルを適甚するず、HTTPS 甚のロヌドバランサヌずは別に、HTTP をリダむレクトするためのロヌドバランサヌも䜜成されたす。 リダむレクト甚のロヌドバランサヌが䜜成される リダむレクト甚の HTTPRoute リ゜ヌスを䜜成する HTTPS リダむレクト甚の蚭定を定矩した、新たな HTTPRoute リ゜ヌスを䜜成したす。マニフェストファむルは以䞋のようになりたす。 # http-redirect.yaml kind : HTTPRoute apiVersion : gateway.networking.k8s.io/v1 metadata : name : http-redirect namespace : http-redirect # リダむレクト甚 Namespace に䜜成する spec : parentRefs : - name : external-https-gateway # Gateway リ゜ヌスの名前 sectionName : http-listener # Gateway リ゜ヌスで定矩しおいる HTTP リスナヌの名前 rules : - filters : - type : RequestRedirect # リク゚ストをリダむレクトする蚭定 requestRedirect : scheme : https # HTTPS にリダむレクトする 䜜成した HTTPRoute リ゜ヌスの蚭定を確認するず、 Spec.Rules にリダむレクトの蚭定が存圚するこずが確認できたす。 # 䜜成した HTTPS リダむレクト甚 HTTPRoute の蚭定を確認する $ kubectl describe httproutes -n http-redirect Name: http-redirect Namespace: http-redirect Labels: < none > Annotations: < none > API Version: gateway.networking.k8s.io/v1 Kind: HTTPRoute Metadata: Creation Timestamp: 2025-08-31T07:47:01Z Generation: 2 Resource Version: 1756626613357455008 UID: 143532f1-8f96-4b95-bd28-8294d21e38eb Spec: Parent Refs: Group: gateway.networking.k8s.io Kind: Gateway Name: external-https-gateway Namespace: default Section Name: http-listener Rules: Filters: Request Redirect: Scheme: https Status Code: 302 Type: RequestRedirect Matches: Path: Type: PathPrefix Value: / 動䜜確認 たず、ブラりザから HTTP でアクセスしおみたす。HTTPS でサヌビスに接続できおいるこずがわかりたす。 HTTP リク゚ストが HTTPS にリダむレクトされおいる リダむレクトの動䜜を確認するため、curl コマンドで HTTP リク゚ストを送信しおみたす。 HTTP/1.1 302 Found 、 https://example.com:443/ より、リク゚ストが HTTPS にリダむレクトされおいるこずがわかりたす。 # ロヌドバランサヌに HTTP リク゚ストを送信しおリダむレクトの動䜜を確認する $ curl -v http://example.com ----- 出力䟋 ----- * Trying xxx.xxx.xxx.xxx:80... * Connected to example.com ( xxx.xxx.xxx.xxx ) port 80 ( #0) > GET / HTTP/ 1 . 1 > Host: example.com > User-Agent: curl/ 7 . 88 . 1 > Accept: */* > < HTTP/ 1 . 1 302 Found < Cache-Control: private < Location: https://example.com:443/ < Content-Length: 0 < Date: Sun, 31 Aug 2025 07:53:13 GMT < Content-Type: text/html ; charset =UTF -8 < * Connection #0 to host example.com left intact 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2025 Fellowに遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
アバタヌ
G-genの min です。本蚘事では、BigQuery の INFORMATION_SCHEMA に察するク゚リ䟋を玹介したす。コスト管理、開発の効率化、運甚のために掻甚しおください。 仕様 INFORMATION_SCHEMA ずは 料金 必芁な暩限 制玄事項 泚意点 コスト・リ゜ヌス管理 高額ク゚リを特定する ナヌスケヌス SQL スロット䜿甚量の掚移を分析し、ボトルネックを特定する ナヌスケヌス SQL 組織党䜓のストレヌゞ䜿甚量をプロゞェクト別に把握する ナヌスケヌス SQL 開発・デバッグ効率化 テヌブルのスキヌマ情報を玠早く確認する ナヌスケヌス SQL テヌブルの DDLテヌブル䜜成ク゚リを取埗する ナヌスケヌス SQL パヌティションテヌブルの情報を調査する ナヌスケヌス SQL デヌタセット内のビュヌ定矩を䞀芧で確認する ナヌスケヌス SQL ク゚リの゚ラヌ履歎を確認する ナヌスケヌス SQL 運甹 ストアドプロシヌゞャの実行履歎を調査する ナヌスケヌス SQL プロシヌゞャや UDF の定矩ず匕数を調査する ナヌスケヌス SQL 仕様 INFORMATION_SCHEMA ずは INFORMATION_SCHEMA ずは、BigQuery のゞョブ履歎、テヌブルやビュヌのメタデヌタ、ストレヌゞ䜿甚量などを保持するシステムビュヌです。 これらのビュヌに察しお SQL ク゚リを実行するこずで、BigQuery に関するメタデヌタを網矅的に取埗できたす。コスト管理、パフォヌマンスチュヌニングなど、デヌタ基盀の運甚にあたっお INFORMATION_SCHEMA の理解は必須です。 参考 : INFORMATION_SCHEMA の抂芁 料金 INFORMATION_SCHEMA のビュヌに察するク゚リは、通垞のテヌブルぞのク゚リず同様に課金察象ずなりたす。 ク゚リは キャッシュされない ため、同じク゚リを繰り返し実行した堎合でも、その郜床ク゚リ料金が発生したす。たたプロゞェクトの BigQuery 課金蚭定がオンデマンドの堎合、通垞のク゚リず同様、 最䜎 10 MB が課金バむトずしおカりントされたす。 参考 : INFORMATION_SCHEMA の抂芁 - 料金 必芁な暩限 INFORMATION_SCHEMA の各ビュヌをク゚リするには、特定の IAM 暩限が必芁です。本蚘事に登堎するビュヌずそれに必芁な暩限は以䞋の通りです。 察象ビュヌ スコヌプ      必芁な暩限Permission 䞻な事前定矩ロヌルRole JOBS_BY_USER プロゞェクト bigquery.jobs.list BigQuery ナヌザヌroles/bigquery.user JOBS_BY_PROJECT JOBS_TIMELINE_BY_PROJECT プロゞェクト bigquery.jobs.listAll BigQuery リ゜ヌス閲芧者roles/bigquery.resourceViewer COLUMNS PARTITIONS VIEWS プロゞェクト bigquery.tables.get bigquery.tables.list BigQuery デヌタ閲芧者roles/bigquery.dataViewer PARAMETERS プロゞェクト bigquery.routines.get bigquery.routines.list BigQuery デヌタ閲芧者roles/bigquery.dataViewer TABLE_STORAGE_BY_ORGANIZATION 組織 bigquery.tables.get bigquery.tables.list BigQuery デヌタ閲芧者roles/bigquery.dataViewer 組織やフォルダレベルのビュヌをク゚リするには、暩限がそれぞれのレベルで付䞎されおいる必芁がありたす。たた、これらのビュヌは、プロゞェクトが組織に所属しおいる堎合にのみ利甚可胜です。 詳现に぀いおは、公匏ドキュメントをご参照ください。 参考 : JOBS ビュヌ - 必芁なロヌル 参考 : JOBS_TIMELINE_BY_USER ビュヌ - 必芁な暩限 参考 : COLUMNS ビュヌ - 必芁な暩限 参考 : PARTITIONS ビュヌ - 必芁な暩限 参考 : PARAMETERS ビュヌ - 必芁な暩限 参考 : TABLE_STORAGE_BY_ORGANIZATION ビュヌ - 必芁な暩限 制玄事項 INFORMATION_SCHEMA を甚いたコスト分析にはいく぀かの制玄事項がありたす。これらの点を考慮した䞊で、本蚘事のク゚リ䟋をご利甚ください。 行レベルセキュリティ が蚭定されたテヌブルに察するク゚リでは、課金察象バむト数などの䞀郚の統蚈情報が隠される堎合がありたす。 BigQuery ML のモデル䜜成ゞョブではモデルの皮類によっお料金が異なりたすが、 INFORMATION_SCHEMA.JOBS ではモデルの皮類を刀別できないため、本蚘事のようなコスト蚈算は抂算倀ずなりたす。 Apache Spark プロシヌゞャ の利甚料金も INFORMATION_SCHEMA.JOBS では total_bytes_billed に含たれる堎合がありたすが、通垞のク゚リ利甚ず区別するこずはできたせん。 䞊蚘は INFORMATION_SCHEMA.JOBS ビュヌの泚意点を䟋ずしお挙げたした。詳现は各ビュヌのドキュメントを参照しおください。 参考 : JOBS ビュヌ - 制限事項 泚意点 倚くの INFORMATION_SCHEMA ビュヌは、 region-asia-northeast1.INFORMATION_SCHEMA.JOBS_BY_PROJECT のようにリヌゞョン修食子を付けおアクセスする必芁がありたす。ク゚リを実行する際は、察象リ゜ヌスが存圚するリヌゞョンを正しく指定しおください。 本蚘事のサンプルク゚リでは、 region-asia-northeast1 ず蚘茉しおいる箇所をご自身の環境に合わせお曞き換えおください。 参考 : INFORMATION_SCHEMA の抂芁 - 構文 コスト・リ゜ヌス管理 高額ク゚リを特定する ナヌスケヌス 予期せぬ高額ク゚リスキャン量が倚いク゚リが実行されおいないか定期的にチェックし、コストを最適化したい。 SQL 過去30日間でスキャン量が倚かったク゚リ TOP 20を、実行ナヌザヌやク゚リ内容ずずもにリストアップしたす。 -- 過去30日間でスキャン量が倚かったク゚リ TOP 20 SELECT user_email, job_id, -- TB単䜍に倉換 ROUND (total_bytes_billed / POW( 1024 , 4 ), 4 ) AS terabytes_billed, -- オンデマンド料金東京リヌゞョン: $7.5/TBでコストを抂算 ※2025幎8月時点 (total_bytes_billed / POW( 1024 , 4 )) * 7.5 AS estimated_cost_usd, creation_time, -- ク゚リ内容を確認しやすくするために改行をスペヌスに眮換 REGEXP_REPLACE (query, r ' \n ' , ' ' ) AS query_oneline FROM `region-asia-northeast1`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE creation_time BETWEEN TIMESTAMP_SUB( CURRENT_TIMESTAMP (), INTERVAL 30 DAY) AND CURRENT_TIMESTAMP () AND total_bytes_billed > 0 AND job_type = ' QUERY ' ORDER BY total_bytes_billed DESC LIMIT 20 ; スロット䜿甚量の掚移を分析し、ボトルネックを特定する ナヌスケヌス 特定の時間垯にク゚リが遅くなるこずがあるため、時間垯ごずのリ゜ヌススロット消費量の傟向を分析し、負荷の高い時間垯を特定したい。 SQL JOBS_TIMELINE_BY_PROJECT を䜿っお、1時間ごずの合蚈スロット䜿甚時間 total_slot_ms を集蚈し、負荷の高い時間垯を特定したす。 -- 過去24時間の時間垯別1時間ごずの合蚈スロット䜿甚時間を集蚈 SELECT -- 時間を切り捚おおグルヌピング TIMESTAMP_TRUNC(period_start, HOUR) AS usage_hour, -- スロット䜿甚時間秒に倉換 SUM (period_slot_ms) / 1000 AS total_slot_seconds FROM `region-asia-northeast1`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_PROJECT WHERE period_start >= TIMESTAMP_SUB( CURRENT_TIMESTAMP (), INTERVAL 24 HOUR) GROUP BY usage_hour ORDER BY usage_hour; 組織党䜓のストレヌゞ䜿甚量をプロゞェクト別に把握する ナヌスケヌス 耇数のプロゞェクトをたたいで、組織党䜓のストレヌゞ䜿甚量をプロゞェクト別に集蚈し、コスト管理に圹立おたい。 SQL TABLE_STORAGE_BY_ORGANIZATION ビュヌを䜿い、組織内のプロゞェクト別ストレヌゞ䜿甚量ランキングを䜜成したす。 -- 組織内のプロゞェクト別ストレヌゞ䜿甚量ランキング SELECT project_id, ROUND ( SUM (total_physical_bytes) / POW( 1024 , 4 ), 2 ) AS total_physical_tb FROM `region-asia-northeast1`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION GROUP BY project_id ORDER BY total_physical_tb DESC ; 開発・デバッグ効率化 テヌブルのスキヌマ情報を玠早く確認する ナヌスケヌス 開発䞭に、参照したいテヌブルのカラム名、デヌタ型、NULL蚱容かなどをSQL゚ディタから離れずに確認したい。 SQL COLUMNS ビュヌで、特定テヌブルのカラム情報を䞀芧衚瀺したす。 -- 特定テヌブルのカラム詳现を取埗 SELECT column_name, ordinal_position, data_type, is_nullable, column_default FROM `my-project.my_dataset.INFORMATION_SCHEMA.COLUMNS` WHERE table_name = ' my_table ' ; テヌブルの DDLテヌブル䜜成ク゚リを取埗する ナヌスケヌス 既存のテヌブル定矩を元に新しいテヌブルを䜜成したい堎合などに、テヌブルの DDL CREATE TABLE 文を盎接取埗したす。 SQL TABLES ビュヌの ddl カラムから、特定のテヌブルのDDLを取埗したす。 -- 特定テヌブルのDDLを取埗 SELECT table_name, ddl FROM `my-project.my_dataset.INFORMATION_SCHEMA.TABLES` WHERE table_name = ' my_table ' ; パヌティションテヌブルの情報を調査する ナヌスケヌス パヌティションプルヌニング が意図通りに機胜しおいるか確認したい。たた、どのパヌティションにどれくらいのデヌタが入っおいるか調査したい。 SQL PARTITIONS ビュヌで、パヌティションごずの行数やデヌタサむズを確認したす。 PARTITIONS ビュヌは 2025幎8月珟圚、プレビュヌ機胜です。仕様が倉曎される可胜性がある点にご泚意ください。 -- パヌティションテヌブルのパヌティションごずの情報を取埗 SELECT table_name, partition_id, total_rows, -- MB単䜍に倉換 ROUND (total_logical_bytes / POW( 1024 , 2 ), 2 ) AS logical_mb, last_modified_time FROM `my-project.my_dataset.INFORMATION_SCHEMA.PARTITIONS` WHERE table_name = ' my_partitioned_table ' -- 叀いパヌティションから衚瀺 ORDER BY partition_id ASC ; デヌタセット内のビュヌ定矩を䞀芧で確認する ナヌスケヌス デヌタセット内にどのようなビュヌが存圚し、どのテヌブルを参照しおいるのかを、定矩 SQL゜ヌスコヌドずあわせお䞀芧で確認したい。 SQL VIEWS から、ビュヌの定矩を盎接取埗したす。 -- 特定のデヌタセット内のビュヌ䞀芧ずその定矩を取埗 SELECT table_name AS view_name, view_definition FROM `my-project.my_dataset.INFORMATION_SCHEMA.VIEWS`; ク゚リの゚ラヌ履歎を確認する ナヌスケヌス 「先ほど実行したク゚リが゚ラヌになったが、゚ラヌメッセヌゞを芋倱っおしたった」ずいう状況で、゚ラヌの原因を玠早く特定したい。 SQL JOBS_BY_USER を䜿い、自分が実行しお゚ラヌになったク゚リの履歎を遡りたす。 -- 過去7日間で自分が実行し、゚ラヌになったク゚リの䞀芧 SELECT creation_time, job_id, error_result.reason, error_result.message, query FROM `region-asia-northeast1`.INFORMATION_SCHEMA.JOBS_BY_USER WHERE creation_time BETWEEN TIMESTAMP_SUB( CURRENT_TIMESTAMP (), INTERVAL 7 DAY) AND CURRENT_TIMESTAMP () AND state = ' DONE ' AND error_result IS NOT NULL ORDER BY creation_time DESC ; 運甹 ストアドプロシヌゞャの実行履歎を調査する ナヌスケヌス 特定のバッチ凊理ずしお実装されたストアドプロシヌゞャが、い぀、誰によっお実行されたか、たたぱラヌになっおいないかを監査したい。 SQL JOBS_BY_PROJECT の query カラムをフィルタリングしお、特定のプロシヌゞャの呌び出し履歎を抜出したす。 -- 特定のプロシヌゞャの実行履歎を取埗 SELECT job_id, creation_time, start_time, end_time, TIMESTAMP_DIFF(end_time, start_time, SECOND) AS execution_seconds, user_email, statement_type, -- ゚ラヌが発生した堎合は理由ずメッセヌゞを衚瀺 error_result.reason, error_result.message FROM `region-asia-northeast1`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE -- 調査したいプロシヌゞャ名でフィルタ query LIKE ' %CALL `my-project.my_dataset.my_procedure`% ' AND creation_time >= TIMESTAMP_SUB( CURRENT_TIMESTAMP (), INTERVAL 30 DAY) ORDER BY creation_time DESC ; プロシヌゞャや UDF の定矩ず匕数を調査する ナヌスケヌス リヌゞョン内にどのようなプロシヌゞャや UDFナヌザヌ定矩関数が定矩されおいるか網矅的に棚卞ししたい。たた、特定のプロシヌゞャや UDF に぀いお、その匕数の詳现を調査したい。 SQL ROUTINES ビュヌを䜿うず、リヌゞョン内のプロシヌゞャや関数の䞀芧を取埗できたす。䞀方、 PARAMETERS ビュヌでは、特定のルヌチンの匕数の詳现を確認できたす。 -- プロゞェクト内の党デヌタセットのプロシヌゞャず UDF を䞀芧衚瀺 SELECT routine_schema, routine_name, specific_name, -- パラメヌタ怜玢甚に specific_name を取埗 routine_type, -- PROCEDURE たたは FUNCTION data_type, -- 関数の戻り倀の型 routine_definition FROM `region-asia-northeast1`.INFORMATION_SCHEMA.ROUTINES ORDER BY routine_schema, routine_name; -- 䞊蚘ク゚リで取埗した specific_name を䜿い、特定の関数の匕数情報を取埗 SELECT parameter_name, data_type, parameter_mode -- IN, OUT, INOUT FROM `my-project.my_dataset.INFORMATION_SCHEMA.PARAMETERS` WHERE specific_name = ' my_function_name ' ; 䜐々朚 愛矎 (min) (蚘事䞀芧) クラりド゜リュヌション郚 デヌタアナリティクス課。2024幎7月 G-gen にゞョむン。G-gen 最南端、沖瞄県圚䜏。最近芚えた島蚀葉は、「マダヌ猫」。
アバタヌ
G-genの杉村です。今回は、生成 AI に関しおよくある誀解ず、それに察する事実を玹介したす。これらは生成 AI ず AI ゚ヌゞェントを、組織の業務に適甚しおいくうえで知っおおくべき基本的な知識です。 生成 AI に関するよくある誀解 生成 AI は確率的にテキスト等を生成するだけ 生成 AI ずは 生成 AI の孊習 確率的な特性 モデルは「今」を知らない 思考/掚論 誀解ず事実 生成 AI モデルは1+1すらできない 蚈算も Web サむト読み蟌みもできない AI を助ける tools Gemini アプリや ChatGPT の挙動 誀解ず事実 モデルは「孊習しない」 モデルの䜿甚ず孊習 孊習に芋える挙動 サヌビス改善に䜿われるデヌタ 粟床を䞊げるには 誀解ず事実 AI ゚ヌゞェントの業務適甚 AI ゚ヌゞェントずは AI ゚ヌゞェントず tools AI ゚ヌゞェントができるこず ノヌコヌド゚ヌゞェント AI の業務適甚 本圓に AI である必芁があるのか AI の業務導入 AI アプリケヌションの開発 生成 AI に関するよくある誀解 以䞋の衚に、生成 AI に関しおよく聞かれる誀解ず、それに察する事実をたずめたした。 誀解 事実 生成 AI は思考する。 生成 AI は確率的にテキスト等を生成するだけ。 ただし思考しおいるかのような挙動を芋せるこずはできる 生成 AI は耇雑な問題に察凊できる。 生成 AI は単䜓では1+1すらできない。 tools の助けが必芁。 生成 AI は孊習する。 生成 AI モデルは、新しいデヌタを孊ぶこずは原則的にない。 ただし AI サヌビス提䟛ベンダヌが、ナヌザヌの䜿甚履歎を新しいモデルの孊習に利甚する可胜性はある。 たた AI サヌビスの䜿甚履歎をコンテキストずしお読み蟌むこずで、孊習したかのように芋えるこずはある。 生成 AI ず AI ゚ヌゞェントを適切に組織の業務に適甚しおいくためには、䞊蚘に察する適切な理解が必芁です。 圓蚘事では䞊蚘に぀いお、生成 AI に関する基本的な知識ず共に解説したす。 生成 AI は確率的にテキスト等を生成するだけ 生成 AI ずは 生成 AI Generative AIずは、テキスト、画像、音声、゜ヌスコヌドなど、新しいコンテンツを生成するこずができる人工知胜の䞀皮です。 埓来の AI が䞻にデヌタの分類や予枬、画像認識などを埗意ずしおいたのに察し、生成 AI は孊習したデヌタに基づいお、これたで存圚しなかった新しいコンテンツを生成する胜力を持ちたす。生成 AI を利甚した代衚的なサヌビスずしお、Google の Gemini アプリ や OpenAI の ChatGPT などが挙げられたす。 参考 : Google Gemini 参考 : ChatGPT これらの AI サヌビスの䞭栞ずなっおいるのは、 倧芏暡蚀語モデル LLMです。LLM は、膚倧なテキストデヌタを孊習し、ある単語の次にどの単語が来る確率が最も高いかを 統蚈的に予枬 するこずで文章を生成したす。 生成 AI の孊習 前述の通り、LLM は膚倧なテキストデヌタを孊習しおいたす。このずき、「この単語の埌には、次はこの単語が来やすい」ずいう傟向を 統蚈的に孊習 したす。たた LLM は孊習時に、単玔に隣接した単語の関係性を孊ぶだけでなく、Transformer ずいう仕組みを䜿っお、文章党䜓の文脈を「理解」したす。 参考 : 倧芏暡蚀語モデルの抂芁 - Google for Developers この孊習の結果ずしお、LLMあるいは単に モデル が誕生したす。代衚的なモデルずしお、Google の Gemini 2.5 Pro や Gemini 2.5 Flash 、たた OpenAI の GPT-4o 、 GPT-5 、 GPT-5 mini などがありたす。 参考 : Google models - Google Cloud 参考 : Models - OpenAI API ここで挙げたモデルの名称ず、AI サヌビスの名称を混同しないように泚意しおください。Gemini 2.5 Pro、GPT-5 ずいったモデルを搭茉し、ナヌザヌに AI チャットを提䟛するサヌビスの名前が、Gemini アプリや ChatGPT です。 サヌビス名 サヌビスが䜿うモデル名 Gemini アプリ Gemini 2.5 Pro、Gemini 2.5 Flash 等 ChatGPT GPT-5、GPT-5 mini 等 䞊蚘を暡匏図にするず以䞋のようになりたす。以䞋は Gemini アプリの䟋ですが、ChatGPT でも䌌た図になりたす。 AI サヌビスずモデルの関係 確率的な特性 人間が プロンプト ず呌ばれるテキストあるいは時には画像、音声、動画をモデルに枡すこずで、モデルは凊理を開始したす。モデルは、ある単語の次にどの単語が来る確率が最も高いかを、 統蚈的に予枬 するこずで文章を生成したす。 以䞋の Google の公匏蚘事は、生成 AI モデルは 確率゚ンゞンである ずしおいたす。あくたでモデルは、過去に孊習したデヌタに基づいお確率的に文章を生成しおいるのだ、ずいう点に泚意が必芁です。本質的に、そこに論理や思考は存圚しおいたせん。モデルは人間のように意味を理解しお察話しおいるわけではなく、あくたで確率に基づいた「それらしい」応答を生成しおいるに過ぎたせん。たた同じ質問を耇数回するず、返っお来る答えが同じになるずは限りたせん。 参考 : The Prompt: 確率、デヌタ、そしお生成 AI に向き合うマむンドセットずは この特性により、生成AIはいわゆる ハルシネヌション もっずもらしい嘘を生成するこずがありたす。入力された情報や孊習デヌタにない事柄に぀いお質問された堎合でも、モデルは最も確率の高い単語を繋ぎ合わせお、事実に基づかない情報を生成しおしたう可胜性が十分にあるのです。 参考 : AI ハルシネヌションずは - Google Cloud 最新のモデルや AI サヌビスでは、生成結果の正しさを怜蚌するプロセスが実行されたり、埌述の「RAG」ずいった技術により正しさを補匷する機胜が備わったこずにより、ハルシネヌションを軜枛する詊みがなされおいたす。ずはいえ、生成された内容は必ずファクトチェック事実確認を行う必芁がありたす。 モデルは「今」を知らない たた、モデルは過去に孊習したデヌタをもずに生成を行いたす。よっおモデルは、「珟圚の倩気」や「最新の Web ペヌゞの内容」などを知るこずはできたせん。モデルは、 孊習が行われた時期より埌に起こった出来事を知らない のです。 Gemini シリヌズのモデルでは、モデルがい぀の時点のデヌタを䜿っお孊習されたかが明瀺されおいたす。䟋えば Gemini 2.5 Pro は2025幎1月時点のデヌタを䜿っお孊習しおいるので、それ以降の䞖の䞭の情報を知りたせん。 参考 : Google models - Google Cloud しかし、Gemini アプリや ChatGPT に、最近の時事に぀いお質問するず、適切に答えるこずがありたす。この挙動は、埌述する「tools」や「RAG」ずいったテクニックにより、モデルが 珟実䞖界の新しい情報を随時取埗 しおいるこずにより実珟しおいたす。モデル自䜓は最近のニュヌスを知らないため、倖郚から情報を取埗しおいるのです。 思考/掚論 生成 AI モデルや AI サヌビスの䞭には、あたかも思考しおいるかのような挙動を芋せるものもありたす。これらの挙動は思考thinkingや掚論reasoningず呌ばれ、モデルの特城ずしお䜍眮づけられおいたす。 Gemini 2.5 Pro/Flash/Flash-Lite や、GPT-5、GPT-5 mini はいずれもこれらの思考/掚論の機胜を備えたモデルです。 この機胜の䞭栞にあるのは、Chain-of-ThoughtCoT、思考の連鎖ず呌ばれる技術です。この技術では、モデルは思考の途䞭プロセスをテキストずしお生成し、それを次の生成ぞのむンプットにしお、たた次の生成を行いたす。この連鎖を行うこずで、倚段階の思考を実珟しおいたす。 䟋えば、「倪郎君はリンゎを5個持っおいたした。花子さんから3個もらい、その埌2個食べたした。残りは䜕個ですか」ずいう問題に察しお、LLMは次のように思考を文章化したす。 初期状態: 倪郎君は最初にリンゎを5個持っおいる。 倉化1: 花子さんから3個もらったので、5 + 3 = 8個になる。 倉化2: その埌2個食べたので、8 - 2 = 6個になる。 結論: したがっお、残りのリンゎは6個である。 このアプロヌチは、人間が耇雑な問題を解く際に、頭の䞭や玙の䞊で段階的に考えるプロセスを暡倣しおいたす。ポむントは、あくたで LLM の基本である「確率的にテキストを生成する」ずいう挙動しか行っおいないこずです途䞭で埌述の「tools」を䜿うこずはありたす。 誀解ず事実 誀解 事実 生成 AI は思考する。 生成 AI は確率的にテキスト等を生成するだけ。 ただし思考しおいるかのような挙動を芋せるこずはできる これを理解すれば、以䞋のような誀謬を回避するこずができたす。 生成 AI は思考しおおり、「正しい」答えを導いおくれる 生成 AI は想定どおりの答えを毎回同じように回答しおくれる 生成 AI は感情を持぀かもしれない 䞊蚘の誀謬を避けられれば、AI の適甚察象業務の遞定や適甚のさせ方を適切に怜蚎できたす。 生成 AI モデルは1+1すらできない 蚈算も Web サむト読み蟌みもできない 前述した「生成 AI は確率的にテキスト等を生成するだけ」ずいう特性から、生成 AI モデルは「1+1」ずいう 簡単な蚈算すら行うこずはできたせん 。ずはいえ「1+1」であれば、孊習した蚀語的なデヌタに基づいおあたかも蚈算をしたかのような回答をするこずはありたすが、耇雑な蚈算はできたせん。 圓蚘事ならではの蚀い回しですが、「 生成 AI は根っからの文系である 」ずいうこずもできたす。 同様に、以䞋のような䜜業は、いずれも生成 AI モデル単䜓では、正確に行うこずはできたせん。 数倀の蚈算や集蚈 URL に基づいた Web サむトの読み蟌み 倖郚のアプリケヌションやデヌタベヌスずの連携 モデルが実行できるのは、 確率的にテキスト等を生成するこずだけである ず考えればわかりやすいず蚀えたす。 AI を助ける tools しかし、Gemini アプリや ChatGPT に数孊の問題を䞎えるず、高床な問題も解けるこずがありたす。たた難しい質問や時事に関する質問をするず、Web サむトの情報を取埗しおそれに基づいお回答しおくれるこずもありたす。 これが実珟可胜なのは、これらの Web サヌビスに tools ずいう仕組みが組み蟌たれおいるからだず考えられたす。 tools は、その名のずおり、生成 AI が䜿う道具です。その実䜓はいわゆる 通垞のコンピュヌタプログラム です。通垞のプログラムであれば、四則挔算や Web サむトの取埗などを、速く正確に行うこずができたす。Gemini アプリや ChatGPT などの Web サヌビスは、人間から䞎えられた指瀺に応じお、tools= 倖郚プログラムを呌び出し、必芁な蚈算を行ったり、Web サむト怜玢を行ったりするこずで、タスクを遂行しおいたす。この tools を「い぀呌び出すか」「どのように䜿うか」ずいう䞀芋論理的な刀断は、文系脳の生成 AI モデルでも行うこずができたす。これは、プロンプトに含たれるキヌワヌドや文脈から、どの tool が最適かを確率的に刀断しおいるためです。 なおモデルが tools ずしおプログラムを呌び出す機胜のこずを function calling ず呌びたす。䟋ずしお Gemini や GPT シリヌズは、function calling 機胜を持っおいたす。 参考 : Introduction to function calling - Google Cloud 参考 : Function calling - OpenAI API Gemini アプリや ChatGPT の挙動 Gemini アプリや ChatGPT ずいった各瀟が提䟛する AI サヌビスでは、以䞋のような凊理が行われおいるず考えるこずができたす。 ナヌザヌが「345 × 123は」などずプロンプトを入力する モデルがプロンプトの意図を蚀語的に解釈する モデルが tools を遞択。「これは蚈算が必芁なタスクだ」ず刀断し、内蔵されおいる蚈算ツヌルを遞択する モデルが tools を実行。モデルが蚈算ツヌルに「345 * 123」ずいう蚈算を実行させ、42435 ずいう結果を受け取る モデルが応答を生成。蚈算ツヌルから受け取った結果を基に「345 × 123 の答えは 42,435 です。」ずいった自然な文章を生成しおナヌザヌに返す Gemini アプリや ChatGPT ずいったサヌビスは、単にモデルぞの入出力むンタヌフェむスではなく、様々な tools などの仕組みが組み蟌たれたチャット型アプリケヌションである、ず蚀えたす。 誀解ず事実 誀解 事実 生成 AI は耇雑な問題に察凊できる。 生成 AI は単䜓では1+1すらできない。 tools の助けが必芁。 これを理解すれば、以䞋のような誀謬を回避するこずができたす。 tools を甚意しおいないのにも関わらず、生成 AI モデルに倖郚サむトの URL を䞎えお読み蟌たせようずする tools を甚意しおいないのにも関わらず、生成 AI モデルに数倀の蚈算や分析をさせようずする 䞊蚘の誀謬を避けられれば、AI ゚ヌゞェントや AI アプリケヌションを開発する際に、適切に仕様を怜蚎したり、Gemini Enterprise旧称 Google Agentspaceや Dify ずいった AI プラットフォヌムやロヌコヌド/ノヌコヌド゚ヌゞェント開発ツヌルで、適切に開発を行うこずができたす。 モデルは「孊習しない」 モデルの䜿甚ず孊習 生成 AI に関するよくある誀解の1぀ずしお、「Gemini アプリや ChatGPT ずいったサヌビスを䜿っおいるず、入力したデヌタがモデルに随時、孊習される」ずいったものがありたす。 これは、䜿っおいくうちにモデルがナヌザヌのこずを理解しお、より䜿い勝手がよくなるのであるずいうポゞティブな芋方の偎面もあれば、逆に顧客デヌタや機密デヌタを孊習されおしたう、ずいうネガティブな捉え方をしおいる人もいたす。 しかし実際には、生成 AI モデルは入力されたデヌタを孊習するずいうこずは ありたせん 。「生成 AI の孊習」の項で説明したように、モデルは倧量のデヌタに基づいた孊習のアりトプットずしお誕生したす。そしお䞀床誕生したモデルは、原則的に远加のデヌタを孊習するこずはありたせん埌述のファむンチュヌニングずいった手法を陀く。よっお、Gemini アプリや ChatGPT に入力したデヌタや、出力されたアりトプットが随時孊習され、芋ず知らずの他人に提䟛されおしたうずいうこずはありえたせん。 孊習に芋える挙動 䞀方で、Gemini アプリや ChatGPT がナヌザヌずのやり取りを孊習したず思える挙動を芋せるこずがありたす。 これは、以䞋のいずれかの機胜に由来しおいたす。 コンテキスト メモリ コンテキスト ずは、モデルが生成を行う際に、背景情報ずしお䜿う情報です。Gemini アプリや ChatGPT で、䌚話スレッドを始めるず、同じスレッド内であれば前の䌚話を AI が芚えおいお、䞀貫性のある䌚話が成り立ちたす。これは、AI が生成を行う際に、郜床以前の䌚話をコンテキスト背景情報ずしお参照しお生成を行っおいるためです。生成の郜床、コンテキストを読み蟌んでいるため、これは孊習ではありたせんモデル自䜓は䜕も倉化しおいたせん。モデルぞのむンプットが倉化しおいたす。 たた メモリ ずは、Gemini アプリや ChatGPT の Web アプリケヌションに組み蟌たれた機胜であり、過去のスレッドでの䌚話を AI が芚えおいるかのように䌚話が行える機胜です。AI が最近の䌚話を自動的に参照するため、䜿えば䜿うほど AI がパヌ゜ナラむズされおいき、䜿い勝手がよくなりたすGemini アプリの堎合はこの機胜は「パヌ゜ナルコンテキスト」ず呌ばれおおり、2025幎12月珟圚、個人向けプラン・䞀郚の地域でのみ利甚可胜です。 参考 : Gemini アプリでの゚クスペリ゚ンスをパヌ゜ナラむズする - Gemini アプリ ヘルプ 参考 : ChatGPT のメモリず新しいコントロヌル この機胜は、モデルが最近の䌚話の内容を郜床コンテキストずしお䜿っおいる、もしくは RAG埌述の察象ずしお䜿甚するこずで実珟しおいるず考えられたす。 これらの手段は、モデルが孊習しおいない、倖郚デヌタを䜿甚するため むンプットを充実させる 手法であり、 モデルが孊習しお倉化するわけではありたせん 。よっお、デヌタぞのアクセス暩限が適切に管理されおいる限り、これらの機胜によっおモデルを通じお他人にデヌタが挏掩しおしたう心配もありたせん。 サヌビス改善に䜿われるデヌタ それでは、生成 AI サヌビスを䜿う際によく話題になる「入力したデヌタや出力されたデヌタが、サヌビス提䟛事業者によっおサヌビスの改善やモデルの孊習に䜿われるかどうか」ずいう議論は、䜕のためのものなのでしょうか。 これは、Google や OpenAI ずいったサヌビス提䟛事業者が、 新しいモデルを開発 したり、Gemini アプリや ChatGPT ずいった AI サヌビスの改善にデヌタを利甚するかどうかを指しおいたす。぀たり、ナヌザヌが入力したデヌタや AI によっお出力されたデヌタは、盎ちにそのモデルが孊習するわけではありたせんが、デヌタがサヌビス提䟛事業者によっお蓄積され、 新しいモデルの孊習に䜿われる可胜性 がある、ずいうこずを指しおいたす。 これにより、新しく開発されるであろう次期モデルの孊習には、無償版の AI サヌビスのナヌザヌが入力したデヌタ等が孊習に䜿われる可胜性が十分ありたす。機密デヌタが次期モデルの孊習に䜿われるず、次期モデルではそのアりトプットに孊習デヌタが含たれる可胜性がれロではありたせん。これが、䌁業の AI 利甚者がデヌタのプラむバシヌポリシヌを適切に理解しなければならない理由です。 なお Google が提䟛するモデルに関しおは、有償のサヌビスGoogle Cloud や Google Workspace に含たれる AI 機胜に぀いお、入出力デヌタはモデルの孊習やサヌビス改善に䜿われるこずはない、ずドキュメントや利甚芏玄に明蚘されおいたす。 参考 : 生成 AI ずデヌタ ガバナンス - Google Cloud 参考 : Service Specific Terms - Google Cloud 参考 : Google Workspace with Gemini に関するよくある質問 - Google Workspace 管理者ヘルプ 参考 : Google Workspace の生成 AI に関するプラむバシヌ ハブ - Google Workspace 管理者ヘルプ 䞀方で、個人向け・無償版の Google アカりントで䜿甚する Gemini アプリ等では、デヌタはサヌビス改善に䜿われる可胜性がありたす。 粟床を䞊げるには 既存のモデルが孊習しお倉化するわけではないずしたら、モデルの粟床を䞊げたり、自瀟の業務ぞの適応床を向䞊させるにはどうすればよいでしょうか。 いく぀かの方法がありたすが、以䞋のような代替手段が考えられたす。 コンテキストを䞎える Retrieval-Augmented GenerationRAG ファむンチュヌニング 䞊蚘を、順番に説明したす。 1. コンテキストを䞎える 最も簡単な方法は、モデルぞのむンプットに コンテキスト 背景情報を䞎えるこずです。AI ぞの指瀺だけではなく、その指瀺の背景情報を含たせおプロンプトずしおモデルに䞎えるこずで、モデルは過去に孊習しおいないデヌタも䜿甚しお生成を行うこずができたす。このように、特に背景情報ずしお読み蟌たせるプロンプトのこずを システム指瀺 System Instructionず呌ぶこずもありたす。 䟋えば、モデルに日報を曞かせる堎合は、以䞋のような情報をコンテキストずしおプロンプトに含たせるこずが有甚です。 ペル゜ナどういった人物の立堎から蚘述するか 日報を曞いおいる背景誰のために、䜕のためになど 日報の基になる業務履歎メヌルのやりずり、カレンダヌの予定、成果物等 日報の䜓裁 特に Gemini はロングコンテキストモデルず呌ばれおいたす。Gemini 2.5 Pro や Flash は100䞇トヌクンのコンテキストを受け付けるこずができたす。 トヌクン ずは、LLM が入出力する文字を理解するために分割した結果をカりントする単䜍です。Gemini の堎合、英語の凊理では抂ね「玄4文字が1トヌクン」「玄6080単語が100トヌクン」ずされおいたす。 参考 : トヌクンを理解しおカりントする - Google AI for Developers ぀たりGemini は、英語でいうず80䞇単語ほどのプロンプトを䞀床に受け取るこずができたす。コンテキストずしお十分な情報をむンプットするこずで、アりトプットの粟床が向䞊したす。 2. Retrieval-Augmented GenerationRAG Retrieval-Augmented Generation RAGは、生成 AI モデルが倖郚のデヌタを参照するための手法、たたはアヌキテクチャのこずです。RAG では、モデルにプロンプトずしお盎接情報を䞎えるのではなく、倖郚のデヌタベヌスを参照させたす。䟋ずしお、API 経由で Gemini を呌び出す堎合、Google Cloud ず組み合わせるこずで、Cloud Storage に栌玍した文曞や BigQuery テヌブルを RAG の察象ずしお䜿甚できたす。 特に AI アプリケヌションを開発したり、AI ゚ヌゞェントを開発するずきに、RAG は重芁です。AI が自瀟の業務やデヌタに適応した振る舞いをするには、RAG を構成するこずが有効に働きたす。たた、そのためには RAG の察象ずするデヌタの敎備が必芁です。すなわち、文曞が䞀箇所のストレヌゞに集玄されおいたり、あるいはデヌタベヌスにきれいなフォヌマットで栌玍されおいる必芁がありたす。 3. ファむンチュヌニング ファむンチュヌニング は、モデルに远加の孊習を斜すこずです。特定の業務に特化させたり、振る舞いを特定させるこずができたす。この手法は前述の2぀の手法ず違い、実際に孊習を行い、掟生版のモデルを䜜成する䜜業です。しかし、前述の2぀の手法よりも、より劎力が倧きいものになりたす。Gemini の堎合、有意なファむンチュヌニングを行うには、孊習甚デヌタずしおプロンプトず応答のセットを数癟個甚意する必芁がありたす。たた䞀床モデルを開発するず、粟床を維持するためには、継続しおデヌタセットを準備しお孊習し続ける必芁があるため、その劎力は倧きいものずなりたす。 参考 : About supervised fine-tuning for Gemini models - Google Cloud 参考 : Gemini の教垫ありファむンチュヌニング: ベスト プラクティス ガむド - Google Cloud 誀解ず事実 誀解 事実 生成 AI は孊習する。 生成 AI モデルは、新しいデヌタを孊ぶこずは原則的にない。 ただし AI サヌビス提䟛ベンダヌが、ナヌザヌの䜿甚履歎を新しいモデルの孊習に利甚する可胜性はある。 たた AI サヌビスの䜿甚履歎をコンテキストずしお読み蟌むこずで、孊習したかのように芋えるこずはある。 これを理解すれば、以䞋のような誀謬を回避するこずができたす。 ツヌルを䜿っおいるうちに AI が埐々に賢くなるのを期埅する AI が入力情報を孊習するこずを恐れお、業務導入に吊定的になる 䞊蚘の誀謬を避けお、AI サヌビスのプラむバシヌポリシヌやデヌタの扱いに関する芏玄を適切に理解したしょう。さらに、AI ぞの適切なコンテキスト情報のむンプットを図ったり、デヌタの敎備ず RAG 構成を構築するこずにより、AI の粟床を䞊げ、実業務に適甚させるこずができたす。 AI ゚ヌゞェントの業務適甚 AI ゚ヌゞェントずは 生成 AI の業務適甚を語るにあたり、 AI ゚ヌゞェント の抂念も解説したす。AI ゚ヌゞェントずは、特定の目暙を達成するために、自埋的に状況を刀断し、蚈画を立おお、遂行するシステムのこずです。特に、その思考゚ンゞンずしお生成 AI モデルを䜿甚しおいるものを指したす。 参考 : AI ゚ヌゞェントずは - Google Cloud 単にナヌザヌの指瀺に応答を返すだけの生成 AI チャットボット等ずは異なり、AI ゚ヌゞェントは「出匵の手配をする」ずいった曖昧な指瀺に察しお、必芁なタスク航空刞の予玄、ホテルの予玄、スケゞュヌルの登録などを自ら分解し、それぞれに察応する tools を順番に実行するこずで、目暙を達成したす。 AI ゚ヌゞェントず tools ここで重芁なのが、前述の tools です。繰り返しになりたすが、基本的にモデルが実行できるのは、確率的なテキスト生成です。生成 AI は、1+1ずいう簡単な蚈算すら行うこずはできたせん。AI ゚ヌゞェントは、生成 AI モデルを思考゚ンゞンずしお、tools、すなわち倖郚プログラムを自埋的に刀断しお実行するこずでタスクを実行しおいきたす。 たた、AI ゚ヌゞェントは時ずしお耇数の゚ヌゞェントを内包したマルチ゚ヌゞェントずしお実装されたす。以䞋は、 マルチ゚ヌゞェント ずしお構成された AI ゚ヌゞェントの䟋です。 出匵手配のためのマルチ゚ヌゞェント AI ゚ヌゞェントができるこず AI゚ヌゞェントは、人間が行っおいた定型的な業務や、耇数のシステムを暪断しお行われる耇雑なタスクを自動化するこずができたす。䟋えば、以䞋のようなこずが可胜です。 情報収集ず分析 : 耇数のWebサむトや瀟内デヌタベヌスから情報を収集し、レポヌトずしお芁玄する タスクの自動化 : 経費粟算システムぞの入力、顧客情報のCRMぞの登録、カレンダヌぞの予定登録などを自動で行う 顧客察応 : 顧客からの問い合わせ内容を解釈し、FAQデヌタベヌスを怜玢しお回答したり、必芁に応じお担圓者ぞ゚スカレヌションしたりする 2025幎12月珟圚、AI ゚ヌゞェントはただ倚くの組織で実隓段階であり、業務改善や倧きな RoI に繋がった事䟋は限定的です。以䞋は、株匏䌚瀟G-genが商甚環境で AI ゚ヌゞェントを公開しおいる事䟋です。 参考 : ナレッゞ怜玢・回答AI゚ヌゞェントG-gen Tech AgentをADKで開発した事䟋 - G-gen Tech Blog 参考 : 株匏䌚瀟G-gen、新サヌビス G-gen Tech Suite を提䟛開始 - 株匏䌚瀟G-gen ノヌコヌド゚ヌゞェント ゜ヌスコヌドを蚘述するこずなく AI ゚ヌゞェントを開発できるノヌコヌド゚ヌゞェント゜リュヌションも存圚したす。 Gemini Enterprise のノヌコヌド゚ヌゞェント機胜はその代衚です。ノヌコヌド゚ヌゞェントは、Gemini Enterprise に接続された倖郚デヌタ゜ヌスを取埗したうえで、コンテンツ生成や芁玄などのタスクを行わせるこずができたす。 Gemini Enterprise のノヌコヌド゚ヌゞェント AI の業務適甚 本圓に AI である必芁があるのか 生成 AI や AI ゚ヌゞェントは匷力なツヌルですが、あらゆる課題に察する䞇胜薬ではありたせん。逆説的ではありたすが、AI の導入を怜蚎する前に、その課題が本圓に 生成 AI で 解決すべきものなのかを考えるべきです。 課題によっおは、生成 AI を䜿わずに埓来の技術で十分に、あるいはより効率的に解決できる堎合がありたす。 䟋えば、特定のキヌワヌドが含たれおいたら定型文を返すような単玔な応答であれば、ルヌルベヌスのチャットボットで十分です。たた、Excel のデヌタを別のシステムに転蚘するような䜜業は、RPARobotic Process Automationの方が粟床が高い可胜性がありたす。商品カタログからあいたいな蚀葉で怜玢をかけお、迅速に商品ペヌゞの URL を返すようなシステムでは、セマンティック怜玢意味論怜玢機胜を備えた怜玢システムが適切です。 生成 AI の出力結果は、䞍確実性を䌎うため、より単玔で確実な方法がある堎合はそちらを優先すべきです。ミスが蚱されない業務を、生成 AI で完党に自動化するのは困難です。䞀方で、 人間の業務時間を短瞮するための䟿利な道具 あるいは 人間の刀断等を補助するアシスタント ずしおの甚途であれば、怜蚎の䜙地はありたす。 たた珟状、䟋えば埌述の Agent Development KitADKを䜿っお実装した Gemini 2.5 Flash ベヌスの AI ゚ヌゞェントにおいお、2〜3の゚ヌゞェントがシヌケンシャル盎列に動いた堎合、ク゚リ開始からレスポンスたで、20秒〜40秒のレむテンシがかかりたす。こういった凊理時間が蚱容できるかどうかも、生成 AI や AI ゚ヌゞェントを採甚するかどうかの怜蚎芁玠になりたす。 AI の業務導入 ある皋床は生成 AI による効果が芋蟌めそうだず考えられる堎合、たずは Google Workspace に組み蟌たれおいる AI 機胜Gemini for Google Workspaceなど、ラむセンスを賌入すれば開発䞍芁ですぐに䜿えるOut-of-the-box なサヌビスの䜿甚を怜蚎したす。 Gemini for Google Workspace は、Gmail、Google ドキュメント、スプレッドシヌトなどの日垞的に利甚する Google Workspace アプリに組み蟌たれた生成 AI 機胜の総称です。メヌルの文面䜜成、文曞の芁玄、議事録の䜜成、関数やマクロの自動生成など、専門的な知識がなくおも、誰もがすぐに生成 AI の恩恵を受けるこずができたす。 参考 : Gemini for Google Workspace 以䞋の蚘事も参照しおください。 blog.g-gen.co.jp どうしおも既存サヌビスで実珟できない独特な芁件がある堎合に、AI アプリケヌションの独自開発を怜蚎したす。この考え方に぀いおは、以䞋の蚘事も参照しおください。 blog.g-gen.co.jp AI アプリケヌションの開発 AI アプリケヌションの開発を決断する堎合、Google Cloud や OpenAI など、AI モデル提䟛事業者等が提䟛する API を、むンタヌネット越しにアプリケヌションから呌び出す圢で実珟したす。 参考 : å…šGeminiプロダクトを培底解説 - G-gen Tech Blog あるいは、オヌプンモデルず呌ばれるようなモデルを盎接サヌバヌに配眮するような実珟方法もありたす。どのようにモデルを呌び出すかは、扱うデヌタの機密性、デヌタの所圚に関する芏定、蚱容されるレむテンシなどから刀断したす。 たた前述の AI ゚ヌゞェントを実装するには、䟋ずしお以䞋のような方匏が考えられたす。 1. Agent Development KitADK Agent Development Kit ADKは、AI ゚ヌゞェントの開発、デプロむ、評䟡を効率化するために Google が開発したオヌプン゜ヌスのフレヌムワヌクです。ADK を利甚するこずで、開発者は通垞の゜フトりェア開発ず同じような感芚で、モゞュヌル化された再利甚可胜なコンポヌネントを組み合わせお AI ゚ヌゞェントを開発できたす。ADK は Google の生成 AI モデル Gemini や Vertex AI などの゚コシステムに最適化されおいたすが、特定のモデルやデプロむ環境に䟝存しない蚭蚈思想を持っおおり、高い柔軟性ず拡匵性を備えおいたす。 参考 : Agent Development Kit ADK の仕様や実装䟋に぀いおは、以䞋の蚘事を参照しおください。 blog.g-gen.co.jp blog.g-gen.co.jp 2. Gemini Enterprise - ノヌコヌド゚ヌゞェント Gemini Enterprise は、GoogleGoogle Cloudが提䟛する生成 AI サヌビスです。組織内に分散しおいるドキュメント、メヌル、チャット履歎などのデヌタを暪断怜玢し、情報の発芋を手助けしたす。たた AI ゚ヌゞェント機胜により、カレンダヌの登録やその他のタスクなどを人間の代わりに行いたす。 参考 : Gemini Enterprise ずは䜕ですか Gemini Enterprise の Enterprise Plus ラむセンスには、 ノヌコヌド゚ヌゞェント 開発機胜が搭茉されおいたす。ナヌザヌの1人1人が手元で、゜ヌスコヌドを曞くこずなく、゚ヌゞェントを開発できたす。 䟋えば以䞋のような゚ヌゞェントを開発可胜です。 Cloud Storage 䞊の瀟内芏定集から情報を取埗しお、瀟内芏定の質問に答えおくれる゚ヌゞェント Jira から情報を取埗しお、指定された名称の開発プロゞェクトの状況をタむムラむン順に報告する゚ヌゞェント Gemini Enterprise 自䜓は Out-of-the-box な゜リュヌションです。その䞭に含たれるノヌコヌド開発機胜は、ナヌザヌが自らノヌコヌドで゚ヌゞェントを開発できるため、「Out-of-the-box な゜リュヌションの利甚」ず「独自アプリ開発」の䞭間的な遞択肢ず蚀えたす。以䞋の蚘事も参考にしおください。 blog.g-gen.co.jp 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO 元譊察官ずいう経歎を持぀ IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
アバタヌ
G-gen の菊池です。Looker Studio の期間のディメンションに぀いお解説したす。 期間のディメンションずは ディメンションず指暙 期間のディメンションずは 期間のディメンションの甚途 期間蚭定 期間蚭定ずは 期間蚭定の適甚範囲 デフォルトの期間 デフォルトの期間の蚭定 比范期間 期間グラフの特長 期間蚭定ずデフォルトの期間の䜿甚䟋 コントロヌルで期間を蚭定したい堎合 特定のグラフはコントロヌルの察象倖にしたい堎合 期間のディメンションずは ディメンションず指暙 Looker Studio では、Google スプレッドシヌトや BigQuery をデヌタ゜ヌスずしお䜿甚できたす。レポヌト䞊では、フィヌルド列は ディメンション ず 指暙 の2皮類に分けられたす。 ディメンション ずは、デヌタをグルヌプ化するためのフィヌルドです。䟋ずしお「商品名」「商品ID」「囜名」などが挙げられたす。これらのフィヌルドは、数倀ずしお集蚈合蚈や平均、カりント等されるこずはありたせん。 指暙 ずは、集蚈しお䜿甚するフィヌルドです。䟋ずしお「金額」「賌入数」「人数」などがありたす。ディメンションでグルヌプ化され、合蚈倀や平均倀、あるいは件数ずしおカりントされるフィヌルドです。 グラフの䜜成埌、右偎のプロパティパネルで、フィヌルドをディメンションたたは指暙ずしお遞択し、远加したす。 参考 : デヌタをモデル化する - フィヌルドの皮類 右偎プロパティパネルでディメンションや指暙を遞択 期間のディメンションずは 期間のディメンションずは、グラフのデヌタ衚瀺期間を絞る際に䜿われる日付デヌタのディメンションです。レポヌト䞊で、 期間蚭定 コントロヌルず呌ばれるフィルタを䜿っお衚瀺期間を蚭定䟋えば「2025幎4月から2025幎9月末たでの間にデヌタを絞り蟌んで衚瀺」などする際などに、基準ずなりたす。 期間のディメンション 期間のディメンションずしお有効なのは「幎、月、日」を含む日付型のデヌタです。ただし、元のデヌタ゜ヌスに完党な日付型のフィヌルドがなくおも、蚈算フィヌルド関数で日付型に倉換するこずで、期間のディメンションずしお䜿甚するこずもできたす。 䞀郚のデヌタ゜ヌスタむプGoogle 広告や Google アナリティクスなどでは、期間のディメンションは自動的に蚭定されおしたうため、ナヌザヌが倉曎するこずはできたせん。 グラフを䜜成する際、デヌタ゜ヌスに日付デヌタのフィヌルドがあれば、それが自動的に期間のディメンションずしお遞択されたす。 参考 : レポヌトの期間を蚭定する - 期間のディメンションを遞択 期間のディメンションの甚途 期間のディメンションはグラフにおいお、期間を指定する際の基準になりたす。䞻に以䞋の甚途で䜿われたす。 期間蚭定コントロヌルをグラフに反映する グラフにデフォルトの期間を蚭定する 前者は前述のずおり、レポヌト䞊に「期間蚭定」コントロヌルを配眮した堎合に、衚瀺期間を絞るずきに䜿われるケヌスです。 埌者は、グラフに「デフォルトの期間そのグラフに垞に適甚される期間」を蚭定するずきに䜿われるケヌスです。 期間蚭定 期間蚭定ずは 期間蚭定 コントロヌルは、デヌタの衚瀺期間を蚭定䟋えば「2025幎4月から2025幎9月末たでの間にデヌタを絞り蟌んで衚瀺」などするためのコントロヌルです。コントロヌルずは、レポヌトに衚瀺するデヌタをフィルタできる制埡 UI のこずです。 期間蚭定コントロヌル 期間蚭定コントロヌルでは、カレンダヌ圢匏の画面で日付を遞択するこずで、レポヌトの衚瀺する期間を調敎できたす。 開始日ず終了日を遞択しお期間を蚭定するだけでなく、[昚日]、[盎前の 7 日間今日を含む]、[盎前の四半期] など、事前に定矩された期間を遞択するこずも可胜です。 期間蚭定コントロヌルは、レポヌト線集時に「コントロヌルの远加」から「期間蚭定」を遞択するこずで远加できたす。 参考 : 期間蚭定 期間蚭定の適甚範囲 デフォルトでは、期間蚭定はペヌゞ䞊のすべおのグラフに適甚されたす。期間蚭定コントロヌルを適甚する察象のグラフを制限したい堎合は、次のいずれかの方法を甚いたす。 期間プロパティを個々のグラフに蚭定する 期間蚭定ずグラフをグルヌプ化する 線集画面でグラフをクリックしお遞択し、プロパティパネルの「デフォルトの期間のフィルタ」の蚭定倀を『自動』から『カスタム』に倉曎しおグラフごずに期間蚭定を行うこずで、期間蚭定コントロヌルによる期間蚭定を䞊曞きできたす。 デフォルトの期間のフィルタ たた期間蚭定コントロヌルずグラフをシフトキヌを抌しながらクリックしお2぀ずも遞択した状態で、[配眮] > [グルヌプ] を遞択するこずで、期間蚭定ずグラフをグルヌプ化できたす。 グルヌプ化 期間蚭定ずグラフをグルヌプ化するず、期間蚭定によるフィルタはグルヌプ内のグラフにのみ適甚されたす。 グルヌプ化の結果 期間蚭定が反映されるのは、期間のディメンションを持぀デヌタ゜ヌスで䜜成されたグラフのみです。期間のディメンションが蚭定されおいないず、期間蚭定コントロヌルは機胜したせん。 デフォルトの期間 デフォルトの期間の蚭定 グラフに期間のディメンションを蚭定するず、デフォルトの期間のフィルタを蚭定する項目が衚瀺されるようになりたす。 デフォルトの期間のフィルタ グラフでデフォルトの期間を蚭定するこずで、そのグラフでどの期間のデヌタを衚瀺するか指定できるようになりたす。 この蚭定は埌述する期間蚭定コントロヌルよりも優先されるため、個々のグラフで衚瀺する期間をカスタマむズできたす。グラフにデフォルトの期間を蚭定するず、期間蚭定コントロヌルは効かなくなりたす。 比范期間 デフォルトの期間のフィルタには、前の期間ずデヌタを比范できる比范期間ずいう機胜がありたす。 比范期間は、デフォルトの期間のフィルタの䞋にある比范期間をオンにするこずで有効になりたす。 比范期間を䜿甚できるコンポヌネントは期間グラフ、衚グラフ、面グラフ、スコアカヌドです。 比范期間の蚭定 䟋えば、期間グラフで以䞋の蚭定をするず、前期間8/12〜8/18のデヌタが珟圚のデヌタずは異なる色の線ずしお衚瀺されたす。 デフォルトの期間のフィルタ過去7日間今日を含む 比范期間前の期間 比范期間の衚瀺 参考 : レポヌトの期間を蚭定する - 比范期間を蚭定する 期間グラフの特長 期間グラフは、䞀定期間におけるデヌタの倉化を時系列で衚瀺するグラフです。 レポヌト線集時に「グラフを远加」から「期間」ず分類されおいるグラフを遞択するこずで远加できたす。 期間グラフの远加 暪軞X軞が時間のディメンションで、瞊軞Y軞が倉化を衚瀺したい指暙になりたす。䟋えば、過去1ヶ月間のナヌザヌ数の掚移などを衚瀺できたす。 期間グラフ 折れ線グラフも同様の目的で䜿甚されたすが、期間グラフの䞻な利点は、比范期間を蚭定できる点です。 たた、日付の間が空いおいおも、暪軞の時系列は自動で埋められたす。 参考 : 折れ線グラフず耇合グラフのリファレンス - Looker Studio の折れ線グラフ 期間蚭定ずデフォルトの期間の䜿甚䟋 コントロヌルで期間を蚭定したい堎合 期間蚭定コントロヌルずグラフのデフォルトの期間をどのように䜿い分けるか、具䜓䟋を亀えお解説したす。 以䞋の芁件を実珟したいずしたす。 レポヌトを開いた初期状態では、蚭定した期間過去7日間を衚瀺 ナヌザヌが期間蚭定コントロヌルで任意の期間を指定した際には、指定された期間のデヌタを衚瀺 䞊蚘を実珟するには、以䞋のように蚭定したす。 期間蚭定コントロヌル : デフォルトの期間で「過去7日間」を蚭定 グラフ : デフォルトの期間で「自動」を蚭定 この蚭定でレポヌトを開いた初期状態では、グラフは期間蚭定コントロヌルの期間過去7日間が衚瀺されたす。 レポヌトを開いた初期状態 ナヌザヌが期間蚭定コントロヌルで任意の期間過去14日間を蚭定するず、グラフにもその期間が衚瀺されたす。 期間蚭定コントロヌルの期間を倉曎 デフォルトの期間を期間蚭定コントロヌルのみに適甚すれば、期間蚭定コントロヌルで指定した期間を垞にレポヌト䞊のグラフに反映できたす。 特定のグラフはコントロヌルの察象倖にしたい堎合 ナヌザヌがコントロヌルで任意の期間を指定したずしおも、特定のグラフにその期間を反映したくない堎合は、以䞋のように蚭定したす。 期間蚭定コントロヌル : デフォルトの期間で「過去7日間」を蚭定 グラフ1 : デフォルトの期間で「自動」を蚭定 グラフ2 : デフォルトの期間で「今月」を蚭定 この蚭定でレポヌトを開いた初期状態では、グラフ1は期間蚭定コントロヌルの期間過去7日間が衚瀺されたすが、グラフ2はグラフで蚭定したデフォルトの期間今月が衚瀺されたす。 特定のグラフを期間蚭定コントロヌルの察象倖にする初期状態 ナヌザヌが期間蚭定コントロヌルで任意の期間過去14日間を蚭定するず、グラフ1はその期間過去14日間が衚瀺されたすが、グラフ2はグラフで蚭定したデフォルトの期間今月が衚瀺されたたたです。 特定のグラフを期間蚭定コントロヌルの察象倖にする期間倉曎埌 グラフにデフォルトの期間を蚭定すれば、そのグラフだけ期間蚭定コントロヌルの察象倖にできたす。 菊池 健倪 (蚘事䞀芧) クラりド゜リュヌション郚デヌタ゚ンゞニアリング課。2024幎7月より、G-genに入瀟。矀銬出身の゚ンゞニア。前職でLookerの䜿甚経隓はあるが、GCPは未経隓なので珟圚勉匷䞭。
アバタヌ
G-gen の西田です。Cloud Storage にアップロヌドした CSV ファむルをデヌタ゜ヌスずしお、自動で曎新される Looker Studio レポヌトを䜜成する手順を解説したす。 はじめに 圓蚘事の抂芁 構成図 サンプルデヌタの内容 構築手順の抂芁 Cloud Storage の構築 バケットの䜜成 CSV ファむルの保存 BigQuery の構築 デヌタセットの䜜成 テヌブルの䜜成 Looker Studio の䜜成 動䜜確認 はじめに 圓蚘事の抂芁 圓蚘事では、オブゞェクトストレヌゞの Cloud Storage 、デヌタりェアハりスの BigQuery 、BI ツヌルの Looker Studio の3぀のサヌビスを利甚したす。Cloud Storage に保存した CSV ファむルを BigQuery の倖郚テヌブルずしお参照し、そのデヌタを Looker Studio で可芖化したす。 ① Cloud Storage テキストや画像、動画などの非構造化デヌタなど様々な圢匏のデヌタを、容量無制限で保存できるオブゞェクトストレヌゞサヌビスです。 参考 : Cloud Storage の料金 blog.g-gen.co.jp ② BigQuery BigQuery ずは、Google Cloud のフルマネヌゞドな分析甚デヌタベヌスです。BigQuery のデヌタは衚圢匏で保存され、SQL や Web API 経由でデヌタを操䜜できたす。 参考 : BigQuery の抂芁 blog.g-gen.co.jp ③ Looker Studio Looker Studio ずは、Google Cloud が提䟛する完党クラりドベヌスのダッシュボヌドツヌルであり、圓蚘事で取り扱う BigQuery 以倖にも、Google アナリティクスや Google スプレッドシヌト等、様々なデヌタ゜ヌスぞ接続でき、SQL 等の専門知識がなくおもダッシュボヌド䜜成が可胜です。 参考 : Looker Studio ぞようこそ なお名前がよく䌌おいる Looker ず Looker Studio は、それぞれ別補品ですのでご泚意ください。圓蚘事では Looker Studio を扱いたす。これらの2補品の違いは、以䞋の蚘事も参照しおください。 blog.g-gen.co.jp 構成図 このシステムでは、ナヌザヌは Looker Studio レポヌトを通じお、Cloud Storage 䞊の CSV ファむルを可芖化できたす。システム構成は次の通りです。 デヌタの可芖化は Looker Studio レポヌトによっお行われたす。 このレポヌトからは、BigQuery の 倖郚テヌブル をデヌタ゜ヌスずしお指定したす。倖郚テヌブルずは、BigQuery の倖郚にあるファむルを BigQuery からク゚リできるようにする機胜です。 この BigQuery 倖郚テヌブルは、Cloud Storage バケットの所定のパスをデヌタ゜ヌスずしおいたす。このパスには、瀟内システムなどから゚クスポヌトした CSV ファむルが管理者たたは自動ゞョブによりアップロヌドされる想定です。 これにより、ナヌザヌが Looker Studio レポヌトぞアクセスするず、Looker Studio から BigQuery 倖郚テヌブルに SQL が発行されたす。倖郚テヌブルからは Cloud Storage 䞊のファむルが盎接参照されるため、Cloud Storage から BigQuery ぞのデヌタ転送は䞍芁です。たた、垞に最新のファむルが参照されるこずになりたす。 BigQuery の倖郚テヌブルに぀いおは、以䞋の蚘事でも解説されおいたす。 blog.g-gen.co.jp サンプルデヌタの内容 圓蚘事では、文房具やPCサプラむ品を販売する架空の䌚瀟の、販売実瞟や芋蟌金額のサンプルデヌタを䜿いたす。デヌタは、月ごずに別々の CSV ファむルに栌玍されおいたす。 CSV ファむルのスキヌマは、以䞋のようなものです。 customer_id customer_name stationery pc_supplies estimate industory GS00001 株匏䌚瀟アルファネクスト 4,178 6,153 8,000 情報通信 GS00003 株匏䌚瀟シヌりェヌブ゜リュヌションズ 1,790 2,623 3,000 サヌビス ・・・ ・・・ ・・・ ・・・ ・・・ ・・・ 列名は、巊から「顧客 ID」「顧客名」「文房具の売䞊」「PC サプラむ品の売䞊」「芋蟌金額」「業皮」を瀺しおいたす。 構築手順の抂芁 構築は以䞋の3ステップで完了したす。 Cloud Storage : CSV ファむルを保管する環境を構築する BigQuery : Cloud Storage に保存した CSV ファむルのデヌタを Looker Studio で衚瀺するための倖郚テヌブルを構築する Looker Studio : BigQuery テヌブルのデヌタをレポヌトで可芖化する Cloud Storage の構築 バケットの䜜成 たずは、CSV ファむルを保存する Cloud Storage の準備をしたす。Cloud Storage では、デヌタを バケット ず呌ばれるコンテナに栌玍したす。バケットの䞭にフォルダやファむルを保存できたす。このバケット単䜍でアクセス暩の制埡を行うこずができたす。 Cloud Storage > バケット のペヌゞにアクセスしお、[バケットを䜜成]をクリックしたす。 バケット名やデヌタの保存堎所を指定しお [䜜成] ボタンをクリックしたす。バケットの名称は、グロヌバルで䞀意ずなるようにする必芁がありたす。 圓蚘事では、その他の蚭定項目はデフォルトのたたで最䞋郚の [䜜成] ボタンをクリックしたす。 「公開アクセスの防止」ずいうポップアップが衚瀺された堎合は、右䞋の [続行] ボタンをクリックしたす。 CSV ファむルの保存 バケットが䜜成できたら、CSV ファむルを保存する準備をしたす。 䜜成したバケットにアクセスし、[フォルダの䜜成] をクリックしたす。 Cloud Storage に保存した CSV デヌタを BigQuery の倖郚テヌブルずしお扱う際、フォルダ名を Key=Value の圢匏䟋: ym=202504 で䜜成するず、そのキヌこの堎合は ym をテヌブルの列ずしお自動的に認識させるこずができたす。これを倖郚デヌタの パヌティション分割 たたは Hive パヌティショニングず呌びたす。圓蚘事で扱う CSV デヌタには幎月を衚す列がないため、この仕組みを利甚しおデヌタを分割したす。 倖郚デヌタをパヌティション分割するこずにより、デヌタを月別にフィルタしお衚瀺した際に、Cloud Storage 䞊のすべおのファむルがフルスキャンされるのではなく、特定の月のファむルのみがスキャンされるこずになりたす。これはパフォヌマンス向䞊ず、コスト効率の向䞊に繋がりたす。 参考 : 倖郚でパヌティションに分割されたデヌタを䜿甚する 䜜成したフォルダにアクセスし、[アップロヌド] をクリックし、CSV ファむルをアップロヌドしたす。アップロヌドは、画面にファむルをドラッグアンドドロップする方法もありたす。 BigQuery の構築 デヌタセットの䜜成 次に、BigQuery で先皋の CSV を読み取るための、 倖郚テヌブル を䜜成したす。 BigQuery のテヌブルは、デヌタセットずいう論理的な入れ物の配䞋に䜜成したす。 BigQuery のコン゜ヌル画面で、プロゞェクトIDの右偎にある3点リヌダヌをクリックし、[デヌタセットを䜜成] をクリックしたす。 デヌタセットIDやリヌゞョンを指定しお、[デヌタセットを䜜成] ボタンをクリックしたす。 テヌブルの䜜成 䜜成したデヌタセットの䞭に、テヌブルを䜜成したす。 蚭定手順は衚の通りです。 [Create table from] で Google Cloud Storage を遞択 [GCS バケットからファむルを遞択するか URI パタヌンを䜿甚したす] の欄に <䜜成したバケット名>/* を入力 /* を぀けるこずで、バケット配䞋の党おのファむルフォルダを含むを察象に指定しおいたす。 䟋 sales-data-csv-mnishida-blog/* [ファむル圢匏] で CSV を遞択 [゜ヌスデヌタ パヌティショニング] のチェックをオン [゜ヌス URI の接頭蟞を遞択] の欄に、 gs://<䜜成したバケット名> を入力 䟋 gs://sales-data-csv-mnishida-blog [パヌティション掚論モヌド] で [独自に指定したす] を遞択する [フィヌルドを远加] をクリックし、[フィヌルド名] に ym を入力 4~7の蚭定で、先ほど Cloud Storage で ym=202504 のように䜜成したフォルダ名をパヌティション列ずしお認識させおいたす。 [テヌブル] 欄にテヌブル名を入力 䟋 t_sales_data [テヌブルタむプ] で 倖郚テヌブル を遞択 スキヌマの [自動怜出] のチェックをオン 詳现オプションを開き、[スキップするヘッダヌ行] に 1 を入力 CSV ファむルの1行目が芋出し行であるため、デヌタずしお読み蟌たないように蚭定しおいたす。 [テヌブルを䜜成] ボタンをクリック Looker Studio の䜜成 䜜成したテヌブルを遞択し、[次で開く] の䞭から [Looker Studio] を遞択したす。 Looker Studio のレポヌト画面は、画面䞊郚のメニュヌから任意のグラフやコントロヌルを远加したす。 以䞋は、サンプルレポヌトの画面ず蚭定内容です。 ① テキスト ② グラフ > スコアカヌド ③ グラフ > スコアカヌド ④ コントロヌル > プルダりン リスト â‘€ コントロヌル > プルダりン リスト ⑥ グラフ > 円グラフ ⑩ グラフ > 棒グラフ ⑧ グラフ > 衚 動䜜確認 珟時点では4月分のデヌタのみ保存しおいるため、レポヌトでも4月分のデヌタしか閲芧できたせん。 他の月のデヌタを衚瀺するためには、Cloud Storage のバケット内に4月分のフォルダを䜜成した時ず同様に、 ym=202505 、 ym=202506 などのフォルダを䜜成しおファむルを保存するだけでデヌタの曎新できたす。 各月のファむルを保存した埌に Looker Studio でデヌタを曎新するこずで、远加した月の遞択やデヌタの閲芧が可胜ずなりたす。 西田 匡志 (蚘事䞀芧) クラりド゜リュヌション郚゜リュヌションアヌキテクト課 矎容商瀟→物流→情シスを経お、2025幎6月G-genにゞョむン。Google Cloud を通じお倚くの人に貢献できるよう日々粟進
アバタヌ
G-gen の䜐々朚です。圓蚘事では、GKE で Gateway API を䜿甚する際に、䜜成されたアプリケヌションロヌドバランサヌに察しお Cloud Armor セキュリティポリシヌ ず IAP を構成する方法を解説したす。 はじめに GKE における Gateway API Cloud Armor ずは Identity-Aware ProxyIAPずは 圓蚘事の構成 GCPBackendPolicy に関する泚意点 Gateway リ゜ヌスに察しお Cloud Armor セキュリティポリシヌを構成する手順 Cloud Armor セキュリティポリシヌの䜜成 GCPBackendPolicy の䜜成 動䜜確認 Gateway リ゜ヌスに察しお IAP を構成する手順 OAuth 同意画面の構成 バック゚ンドサヌビスで IAP を有効化 OAuth 2.0 クラむアント ID ずシヌクレットの発行 Secret の䜜成 GCPBackendPolicy の䜜成 動䜜確認 Cloud Armor セキュリティポリシヌず IAP を同時に構成する手順 Ingress API を䜿う堎合 はじめに GKE における Gateway API Gateway API は、Kubernetes でレむダ7の高床なトラフィックルヌティングを提䟛するための Kubernetes アドオンであり、Google Cloud では GKE で L7 ロヌドバランサヌアプリケヌションロヌドバランサヌを利甚したい堎合に䜿甚されたす。 埓来から同様の甚途で䜿甚されおいた Ingress API に様々な改良が加えられたものであり、高床なルヌティングヘッダヌベヌス、重み付けなどや、異なる Namespace にあるリ゜ヌスぞのアクセスなどがネむティブにサポヌトされおいたす。 Gateway API の基本に぀いおは以䞋の蚘事を参照しおください。 blog.g-gen.co.jp 圓蚘事では、この Gateway API から䜜成したアプリケヌションロヌドバランサヌに察しお、 Cloud Armor セキュリティポリシヌ によるバック゚ンド保護ず、 Identity-Aware Proxy IAPによる IAM 認蚌機胜を構成しおいきたす。 Cloud Armor ずは Cloud Armor は Google 補のクラりド型 WAF であり、Cloud Armor の セキュリティポリシヌ をアプリケヌションロヌドバランサのバック゚ンドに玐づけるこずで、バック゚ンドに察するアクセス元の制限をかけるこずができたす。 Cloud Armor の詳现に぀いおは、以䞋の蚘事で解説しおいたす blog.g-gen.co.jp Identity-Aware ProxyIAPずは IAP は、Cloud Run や GKE、Compute Engine 䞊で実行されおいるアプリケヌションに察しお、IAM による認蚌機胜を提䟛するサヌビスです。アプリケヌションにアクセスできるナヌザヌを特定の IAM ロヌルがアタッチされた Google アカりント/グルヌプに制限するこずができたす。 IAP の基本に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp 圓蚘事の構成 圓蚘事では、以䞋の蚘事で䜜成した Gateway API リ゜ヌスず nginx のバック゚ンドを持぀環境に察しお、Cloud Armor セキュリティポリシヌず IAP を远加で構成しおいきたす。以降の手順の前提ずなるサンプル環境を構成するためのマニフェストファむルに぀いおは、同蚘事を参照しおください。 blog.g-gen.co.jp 圓蚘事で前提ずなるサンプル構成 GCPBackendPolicy を䜿甚しお Cloud Armor や IAP を構成する GCPBackendPolicy に関する泚意点 Gateway API で䜜成したロヌドバランサヌに察しお Cloud Armor セキュリティポリシヌや IAP を構成したい堎合、Gateway API リ゜ヌスの1぀である Policy を䜿甚したす。 GKE で利甚できる Gateway API の Policy には以䞋のような皮類がありたす。 GCPGatewayPolicy GCPBackendPolicy HealthCheckPolicy Cloud Armor や IAP を利甚する堎合は、 GCPBackendPolicy を定矩し、Gateway のバック゚ンドルヌティング先である Service リ゜ヌスに玐付けたす。 泚意点ずしお、GCPBackendPolicy は 1぀の Service に察しお1぀しか玐付けるこずはできたせん。そのため、 1぀の Service に察しお Cloud Armor セキュリティポリシヌず IAP の䞡方を構成したい堎合、その䞡方の定矩を1぀の BackendPolicy 内に蚘述する必芁がありたす。 2぀の GCPBackendPolicy を玐づけるず、 kubectl describe gcpbackendpolicies コマンドの出力ずしお以䞋の゚ラヌメッセヌゞが確認できたす。 Warning SYNC 14s (x2 over 63s) sc-gateway-controller Conflicted: Application of GCPBackendPolicy "default/nginx-backend-policy" failed: conflicted with GCPBackendPolicy "default/my-backend-policy" of higher precedence, hence not applied 参考 : Configure Gateway resources using Policies Gateway リ゜ヌスに察しお Cloud Armor セキュリティポリシヌを構成する手順 Cloud Armor セキュリティポリシヌの䜜成 ここでは、サンプル構成に察しお Cloud Armor のセキュリティポリシヌを適甚し、蚱可された IP アドレスからのみ、バック゚ンドのサヌビスにアクセスできるようにしたす。 たず、Cloud Armor のセキュリティポリシヌを䜜成したす。 # セキュリティポリシヌの䜜成 $ gcloud compute security-policies create my-sec-policy 䜜成したポリシヌのデフォルトルヌル優先床2,147,483,647では党おの通信が蚱可されおいるため、デフォルトルヌルを曎新しお党おのアクセス元を拒吊したす。 # デフォルトルヌルの曎新 $ gcloud compute security-policies rules update 2147483647 \ --security-policy my-sec-policy \ --action " deny-403 " 特定の IP アドレス範囲からのアクセスを蚱可するルヌルを远加したす。 ルヌルの優先床は党拒吊のデフォルトルヌルより高ければよいので、ここでは優先床1000で蚭定したす。 # 蚱可ルヌルの远加 $ gcloud compute security-policies rules create 1000 \ --security-policy my-sec-policy \ --src-ip-ranges " <蚱可する IP アドレス範囲> " \ --action " allow " 特定の IP アドレス範囲のみ蚱可するセキュリティポリシヌ 参考 : gcloud compute security-policies create 参考 : gcloud compute security-policies update GCPBackendPolicy の䜜成 䜜成した Cloud Armor セキュリティポリシヌを Gateway のバック゚ンドサヌビスに玐づけるための GCPBackendPolicy を䜜成したす。 以䞋のマニフェストを䜿甚しお、バック゚ンドの Service リ゜ヌスに察しおセキュリティポリシヌを玐づけたす # backend-policy.yaml apiVersion : networking.gke.io/v1 kind : GCPBackendPolicy metadata : name : nginx-backend-policy spec : default : securityPolicy : my-sec-policy # Cloud Armor セキュリティポリシヌの名前 targetRef : group : "" kind : Service name : nginx-service # ルヌルを玐づけるバック゚ンドの Service リ゜ヌス 動䜜確認 Cloud Armor セキュリティポリシヌで蚱可しおいない IP アドレスから、ロヌドバランサヌに蚭定しおいるドメむンにアクセスしおみたす。 セキュリティポリシヌにより、アクセスが拒吊されおいるこずがわかりたす。 セキュリティポリシヌで蚱可されおない IP アドレスからのアクセスが拒吊される 蚱可した IP アドレスからのアクセスは成功する このたた続けお次の IAP の構成手順に進む堎合、䞀床 GCPBackendPolicy リ゜ヌスを削陀しおくださいService に察しお1぀しか玐づけられないため。 Gateway リ゜ヌスに察しお IAP を構成する手順 OAuth 同意画面の構成 䜿甚しおいるプロゞェクトで OAuth 同意画面 をただ構成しおいない堎合は、蚭定を行いたす。 手順は以䞋のドキュメントや蚘事を参照しおください。 参考 : Configure the OAuth consent screen and choose scopes 参考 : GoogleAPI、OAuth2.0の有効化の手順 - サヌバヌワヌクス゚ンゞニアブログ バック゚ンドサヌビスで IAP を有効化 Google Cloud コン゜ヌルから、バック゚ンドサヌビスに察しお IAP を有効化したす。 察象のサヌビスのトグルスむッチを ON にし、「IAP をオンにする」を遞択したす。 バック゚ンドサヌビスで IAP を有効化する 「IAP をオンにする」を遞択 サヌビスぞのアクセスを蚱可する Google アカりントに察しお、 IAP で保護されたりェブアプリ ナヌザヌ IAP-secured Web App Userロヌルを付䞎したす。 アカりント、グルヌプに察しおサヌビスぞの IAP 経由のアクセスを蚱可する OAuth 2.0 クラむアント ID ずシヌクレットの発行 Google Cloud コン゜ヌルの「API ずサヌビス」から、OAuth 2.0 クラむアント ID を䜜成しおいきたす。 「OAuth クラむアント ID」を遞択する 以䞋の項目を入力し、「䜜成」を遞択したす。 項目 倀 アプリケヌションの皮類 りェブ アプリケヌション 名前 任意の名前 OAuth クラむアント ID を䜜成する 䜜成埌、 クラむアント ID ず クラむアントシヌクレット が衚瀺されるので、この2぀はメモしおおきたす。なお、メモするのを忘れおもクラむアントの詳现画面から埌で確認できたす。 クラむアント ID ずクラむアントシヌクレットをメモしおおく 䜜成したクラむアント ID の線集画面を開き、「承認枈みのリダむレクト URI」項目を蚭定したす。 倀には、先ほどメモしおおいたクラむアント ID を含む以䞋の URI を蚭定したす。 「承認枈みのリダむレクト URI」の蚭定倀 https://iap.googleapis.com/v1/oauth/clientIds/{クラむアント ID の倀}:handleRedirect 承認枈みのリダむレクト URI を蚭定する Secret の䜜成 メモしおおいた OAuth クラむアント シヌクレットを以䞋のようにテキストファむルにそのたた蚘述したす。圓蚘事では iap-secret.txt ずいう名前でファむルを䜜成したす。 <クラむアント シヌクレットの倀> このテキストファむルを䜿甚しお、以䞋のコマンドで Secret リ゜ヌスを䜜成したす。 # Secret の䜜成 $ kubectl create secret generic my-secret --from-file = key =iap-secret.txt GCPBackendPolicy の䜜成 䜜成した Secret リ゜ヌスず、メモしおおいた OAuth クラむアント ID を䜿甚し、バック゚ンドの Service に玐づける GCPBackendPolicy を䜜成したす。 マニフェストファむルは以䞋のようになりたす。 # backend-policy.yaml apiVersion : networking.gke.io/v1 kind : GCPBackendPolicy metadata : name : nginx-backend-policy spec : default : iap : enabled : true # IAP を有効化 oauth2ClientSecret : name : my-secret # 䜜成した Secret リ゜ヌスの名前 clientID : <OAuth クラむアント ID> # メモしおおいた OAuth クラむアント ID targetRef : group : "" kind : Service name : nginx-service # ルヌルを玐づけるバック゚ンドの Service リ゜ヌス 動䜜確認 マニフェストファむル適甚埌、ロヌドバランサヌに蚭定しおいるドメむンにアクセスするず、IAP のログむン画面が衚瀺されたす。 IAP が有効化されたサヌビスにアクセスする IAM で蚱可された Google アカりントでログむンするこずで、サヌビスにアクセスするこずができたす。 Cloud Armor セキュリティポリシヌず IAP を同時に構成する手順 先述したように、バック゚ンドサヌビスである Service に察しお、GCPBackendPolicy リ゜ヌスは1぀しか玐づけるこずができたせん。 Cloud Armor セキュリティポリシヌず IAP を同時に構成したい堎合、以䞋のように1぀のマニフェストファむルに察しおそれぞれの定矩をしたす。 # backend-policy.yaml apiVersion : networking.gke.io/v1 kind : GCPBackendPolicy metadata : name : nginx-backend-policy spec : default : securityPolicy : my-sec-policy # Cloud Armor セキュリティポリシヌの名前 iap : enabled : true # IAP を有効化 oauth2ClientSecret : name : my-secret # 䜜成した Secret リ゜ヌスの名前 clientID : <OAuth クラむアント ID> # メモしおおいた OAuth クラむアント ID targetRef : group : "" kind : Service name : nginx-service # ルヌルを玐づけるバック゚ンドの Service リ゜ヌス なお、Cloud Armor セキュリティポリシヌず IAP を同時に構成した堎合、 先にセキュリティポリシヌによるアクセス蚱可/拒吊が評䟡 され、ポリシヌで蚱可されたアクセスに察しお 埌から IAP による認蚌 が行われたす。 Ingress API を䜿う堎合 GKE で Cloud Load Balancing のアプリケヌションロヌドバランサヌを䜿甚する堎合、埓来は Ingress API を䜿甚しおいたした。 Ingress API を䜿甚しおいる堎合、ロヌドバランサヌに察しお Cloud Armor や IAP を構成するには BackendConfig リ゜ヌスをバック゚ンドの Service リ゜ヌスに玐付けたす。 Ingress API を䜿甚する堎合の詳现な手順に぀いおは、以䞋の蚘事を参照しおください。 blog.g-gen.co.jp blog.g-gen.co.jp 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2025 Fellowに遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
アバタヌ
G-gen の䜐々朚です。圓蚘事では、Kubernetes で展開しおいるサヌビスの倖郚公開甚 API リ゜ヌスである Gateway API に぀いお、特に GKE で䜿甚する堎合における基本的な仕様を解説したす。 Gateway API の抂芁 Ingress API ずの違い Ingress からの改良点 GKE における違い Gateway API のリ゜ヌス リ゜ヌスの構成 GatewayClass Gateway HTTPRoute Policy ReferenceGrant Gateway API を䜿っおみる サンプル構成 Gateway API の有効化 SSL 蚌明曞の䜜成 サンプル Pod、Service のデプロむ Gateway のデプロむ DNS レコヌドの蚭定 HTTPRoute のデプロむ 動䜜確認 Gateway API の抂芁 Gateway API は、Kubernetes でレむダ7の高床なトラフィックルヌティングを提䟛するための Kubernetes アドオンであり、 Ingress API 同様、レむダ7ロヌドバランサヌをデプロむするこずでバック゚ンドのサヌビスを公開するこずができたす。 GKE における Gateway API では、GKE クラスタで䜿甚できる Cloud Load Balancing の各皮アプリケヌションロヌドバランサヌを定矩、デプロむするこずができたす。 参考 : Gateway APIKubernetes ドキュメント 参考 : About Gateway APIGoogle Cloud ドキュメント Ingress API ずの違い Ingress からの改良点 䞀般的に、Kubernetes では倖郚公開するアプリケヌションにトラフィックをルヌティングしたい堎合、 Ingress を䜿甚するこずができたす。 Gateway は Ingress よりも埌発の API リ゜ヌスであり、以䞋のような改良が加えられおいたす。 改良点 Ingress API の課題 Gateway API の特城 ロヌル志向 1぀のリ゜ヌスにむンフラの蚭定ずアプリケヌションのルヌティング蚭定をたずめお定矩する必芁がある。そのため、むンフラ担圓者ずアプリケヌション開発者の責任範囲が曖昧になっおいる。 リ゜ヌス定矩を Gatewayむンフラ定矩、HTTPRouteルヌティング定矩 のように分割するこずで、むンフラ担圓者ずアプリケヌション開発者がそれぞれの担圓領域ロヌルでリ゜ヌスを管理できる。 移怍性・衚珟性 パスベヌス以倖のルヌティングなど、高床な機胜はネむティブでサポヌトされおおらず、GKE なら GKE 甚の Ingress Controller が独自に定矩したアノテヌションを甚いお実装する必芁がある。 倚くの高床な機胜がネむティブでサポヌトされおおり、リ゜ヌス定矩がクラりドプロバむダヌやオンプレミスなど環境に䟝存しない。 Namespace 間アクセス Ingress 単䜓の機胜では、異なる Namespace にあるバック゚ンドサヌビスや Secret にアクセスするこずができない。たずえばマむクロサヌビスごずに Namespace を割り圓おおいる環境などで、1぀の Ingress からそれぞれのサヌビスにルヌティングするような構成ができない。 Gateway は異なる Namespace のリ゜ヌスにアクセスするこずができる。 参考 : Ingress の進化版 Gateway API を解説する Part 1 (シングルクラスタ線) GKE における違い GKE における Ingress では、倖郚アプリケヌションロヌドバランサヌ向けの Ingress ず、内郚アプリケヌションロヌドバランサヌ甚の Ingress を䜿甚するこずができたす。前者は Cloud Load Balancing の 埓来の倖郚アプリケヌションロヌドバランサヌ を、埌者は 内郚アプリケヌションロヌドバランサヌ をデプロむしたす。 埌述するように、Gateway API では GatewayClass により、新しい䞖代の「埓来の」ではない倖郚アプリケヌションロヌドバランサヌや、マルチクラスタで利甚できるロヌドバランサヌをデプロむするこずができるようになっおいたす。 Google Cloud の Cloud Load Balancing を利甚する堎合、ロヌドバランサヌの各コンポヌネントず Ingress API、Gateway API の関係は以䞋の図のようになっおいたす。 Cloud Load Balancing の各コンポヌネントず Ingress API、Gateway API の関係 参考 : GKE Ingress for Application Load Balancers Gateway API のリ゜ヌス リ゜ヌスの構成 Gateway API は䞻に以䞋のリ゜ヌスから構成されたす。 GatewayClass Gateway HTTPRoute Gateway API の基本的なリ゜ヌス構成 たた、以䞋のような補助的なリ゜ヌスがありたす。 Policy RefernceGrant GatewayClass Gateway から参照されるリ゜ヌスで、クラスタに䜜成するロヌドバランサヌのテンプレヌトずしお機胜したす。GKE の堎合、Google Cloud によっおクラスタで利甚できるロヌドバランサヌが GatewayClass ずしお事前定矩されおいたす。 以䞋は、GKE クラスタで利甚可胜な GatewayClass の䟋です。 GatewayClass の名前 察応する Cloud Load Balancing のロヌドバランサヌ gke-l7-global-external-managed グロヌバル倖郚アプリケヌションロヌドバランサ gke-l7-regional-external-managed リヌゞョン倖郚アプリケヌションロヌドバランサ gke-l7-rilb 内郚アプリケヌションロヌドバランサ gke-l7-global-external-managed-mc マルチクラスタ甚のグロヌバル倖郚アプリケヌションロヌドバランサ gke-l7-regional-external-managed-mc マルチクラスタ甚のリヌゞョン倖郚アプリケヌションロヌドバランサ gke-l7-rilb-mc マルチクラスタ甚の内郚アプリケヌションロヌドバランサ 䞊蚘の GatewayClass の名前を Gateway のリ゜ヌス定矩で指定するこずで、察象のロヌドバランサヌを䜜成するこずができたす。 apiVersion : gateway.networking.k8s.io/v1 kind : Gateway metadata : name : internal-http spec : gatewayClassName : gke-l7-rilb # 内郚アプリケヌションロヌドバランサを䜜成する listeners : - name : http protocol : HTTP port : 80 詳现な仕様やその他の GatewayClass に぀いおは、以䞋の公匏ドキュメントもご䞀読ください。 参考 : GatewayClass capabilities Gateway トラフィックを凊理するロヌドバランサヌの皮類GatewayClass、プロトコル、ポヌト、TLS 蚭定などを定矩したす。 apiVersion : gateway.networking.k8s.io/v1 kind : Gateway metadata : name : external-http spec : gatewayClassName : gke-l7-global-external-managed # ロヌドバランサヌの皮類GatewayClass listeners : # プロトコル、ポヌト、TLS 蚭定など、リスナヌの蚭定 - name : https protocol : HTTPS port : 443 tls : mode : Terminate certificateRefs : - name : store-example-com HTTPRoute Gateway が受信したリク゚ストを、バック゚ンドの Service リ゜ヌスにルヌティングするためのルヌルを定矩したす。 apiVersion : gateway.networking.k8s.io/v1 kind : HTTPRoute metadata : name : store-external labels : gateway : external-http spec : parentRefs : - name : external-http # ルヌティング蚭定を玐付ける Gateway リ゜ヌスの名前 hostnames : # ルヌティング蚭定を適甚するホスト名 - "store.example.com" rules : - backendRefs : # Gateway が受信したリク゚ストをルヌティングするバック゚ンドサヌビス - name : store-v1 # Service リ゜ヌスの名前 port : 8080 Policy バック゚ンドサヌビスに察するヘルスチェックやトラフィック分散の方法、リク゚ストのタむムアりト、Identity-Aware Proxy や Cloud Armor バック゚ンドセキュリティポリシヌの玐付けなどを定矩したす。 蚭定する Policy の皮類によっお、Policy リ゜ヌスを Gateway リ゜ヌスや Service リ゜ヌスに察しお玐付けたす。 䟋えば以䞋のマニフェストファむルでは、Gateway リ゜ヌスずしお䜜成したロヌドバランサヌに察する SSL ポリシヌの玐付けが定矩されおいたす。 apiVersion : networking.gke.io/v1 kind : GCPGatewayPolicy metadata : name : my-gateway-policy namespace : team1 spec : default : sslPolicy : gke-gateway-ssl-policy # SSL ポリシヌの名前 targetRef : group : gateway.networking.k8s.io kind : Gateway name : my-gateway # Policy を玐付ける Gateway リ゜ヌスの名前 参考 : Configure Gateway resources using Policies ReferenceGrant Gateway や HTTPRoute が、異なる Namespace にあるバック゚ンドサヌビス、Secret などを参照できるようにするリ゜ヌスです。 以䞋のマニフェストファむルは、 frontend Namespace の HTTPRoute から backend Namespace の Service にトラフィックをルヌティングできるような ReferenceGrant を定矩しおいたす。 apiVersion : networking.gke.io/v1 kind : ReferenceGrant metadata : name : allow-frontend-to-access-backend namespace : backend # Namespace間アクセスを蚱可するアクセス先のNamespace spec : from : # どこからのアクセスを蚱可するか - group : gateway.networking.k8s.io kind : HTTPRoute namespace : frontend to : # 䜕に察するアクセスを蚱可するか - group : "" kind : Service Gateway API を䜿っおみる サンプル構成 圓蚘事ではサンプル構成ずしお、nginx をバック゚ンドサヌビスずする Gateway、HTTPRoute リ゜ヌスを䜜成しおいきたす。Gateway には Certificate Manager で䜜成した Google マネヌゞド SSL 蚌明曞を玐づけ、Gateway で䜜成されたロヌドバランサヌに HTTPS でアクセスできるようにしたす。 圓蚘事のサンプル構成 Gateway API の有効化 GKE クラスタで Gateway API が有効化されおいない堎合は有効化したす。 # クラスタで Gateway API を有効化する $ gcloud container clusters update < GKEクラスタ名 > \ --location =< クラスタのロケヌション > \ --gateway-api = standard SSL 蚌明曞の䜜成 Gateway API で䜜成するロヌドバランサヌで TLS を蚭定するために、Certificate Manager 管理の蚌明曞を䜜成したす。 圓蚘事では Google マネヌゞド SSL 蚌明曞を䜿甚したす。 # Google マネヌゞド SSL 蚌明曞を䜜成する $ gcloud certificate-manager certificates create my-cert \ --domains =" <䜿甚するドメむン> " \ --scope = DEFAULT # 蚌明曞マップを䜜成する $ gcloud certificate-manager maps create my-cert-map # 蚌明曞マップの゚ントリヌを䜜成する $ gcloud certificate-manager maps entries create [ ENTRY_NAME ] \ --map =" my-cert-map " \ --certificates =" my-cert " \ --hostname =" <䜿甚するドメむン> " 参考 : Manage certificates サンプル Pod、Service のデプロむ サンプルアプリケヌションずしお、以䞋のマニフェストを䜿甚しお nginx の Pod ず Service をデプロむしたす。 # deployment.yaml apiVersion : apps/v1 kind : Deployment metadata : name : nginx-deployment spec : replicas : 2 selector : matchLabels : app : nginx-server template : metadata : labels : app : nginx-server spec : containers : - name : nginx image : nginx:latest ports : - containerPort : 80 --- apiVersion : v1 kind : Service metadata : name : nginx-service spec : selector : app : nginx-server ports : - protocol : TCP port : 80 targetPort : 80 Gateway のデプロむ ロヌドバランサヌのフロント゚ンドずしお機胜する Gateway リ゜ヌスを䜜成したす。 以䞋のサンプルマニフェストでは、先ほど䜜成した蚌明曞を䜿甚するグロヌバル倖郚アプリケヌションロヌドバランサヌを䜜成する Gateway リ゜ヌスをデプロむしたす。 # gateway.yaml apiVersion : gateway.networking.k8s.io/v1 kind : Gateway metadata : name : external-https-gateway annotations : networking.gke.io/certmap : "my-cert-map" # 䜜成した蚌明曞マップの名前 spec : gatewayClassName : gke-l7-global-external-managed # グロヌバル倖郚アプリケヌションロヌドバランサヌを䜿甚 listeners : - name : https-listener protocol : HTTPS port : 443 デプロむした Gateway リ゜ヌスは以䞋のコマンドで確認できたす。 # デプロむした Gateway の確認 $ kubectl get gateways NAME CLASS ADDRESS PROGRAMMED AGE external-https-gateway gke-l7-global-external-managed xxx.xxx.xxx.xxx True 74s Google Cloud コン゜ヌルを確認するず、アプリケヌションロヌドバランサヌが䜜成されおいるこずがわかりたす。 Gateway のデプロむ埌、ロヌドバランサヌが䜜成されおいる DNS レコヌドの蚭定 䜿甚するドメむンに察しお、先ほど kubectl get gateways コマンドで確認したロヌドバランサヌの倖郚 IP アドレスを解決できる A レコヌドを䜜成したす。 以䞋のスクリヌンショットは、Cloud DNS を䜿甚する堎合のレコヌドの蚭定䟋です。 DNS で A レコヌドを蚭定する HTTPRoute のデプロむ Gateway が受信したトラフィックをバック゚ンドサヌビスにルヌティングするために、HTTPRoute をデプロむしたす。 以䞋のサンプルマニフェストでは、バック゚ンドである nginx サヌビスの80番ポヌトにトラフィックをルヌティングする HTTPRoute リ゜ヌスを䜜成したす。 apiVersion : gateway.networking.k8s.io/v1 kind : HTTPRoute metadata : name : nginx-http-route spec : parentRefs : - name : external-https-gateway # Gatewayリ゜ヌスの名前 hostnames : - "<䜿甚するドメむン>" rules : - matches : - path : type : PathPrefix value : / backendRefs : - name : nginx-service # バック゚ンドの Service の名前 port : 80 デプロむした HTTPRoute リ゜ヌスは以䞋のコマンドで確認できたす。 $ kubectl get httproutes NAME HOSTNAMES AGE nginx-http-route [" <䜿甚するドメむン> "] 13s 動䜜確認 䜜成した Gateway 関連リ゜ヌスは、GKE のコン゜ヌルからも確認するこずができたす。 GKE コン゜ヌルから Gateway の蚭定を確認する それでは、䜿甚しおいるドメむンに察しお、curl コマンドやブラりザから HTTPS でアクセスしおみたす。 Gateway API で䜜成したアプリケヌションロヌドバランサヌ経由で、HTTPS でバック゚ンドサヌビスにアクセスできおいたす。 Gateway API で䜜成したロヌドバランサヌ経由で HTTPS アクセスができおいる 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2025 Fellowに遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
アバタヌ
G-gen の min です。BigQuery のためのデヌタ倉換ワヌクフロヌサヌビスである Dataform における、「ワヌクスペヌスコンパむルオヌバヌラむド」「リリヌス構成」「ワヌクフロヌ構成」ずいう3぀の機胜に぀いお解説したす。 はじめに 圓蚘事に぀いお Dataform のワヌクフロヌラむフサむクル 構成機胜 ワヌクスペヌスコンパむルオヌバヌラむド 機胜抂芁 蚭定方法 泚意点 リリヌス構成 機胜抂芁 蚭定方法 ワヌクフロヌ構成 機胜抂芁 蚭定方法 開発ず管理 ラむフサむクルの党䜓像 ベストプラクティス 必芁なロヌル リ゜ヌスの有効期限 はじめに 圓蚘事に぀いお BigQuery のためのデヌタ倉換ワヌクフロヌサヌビスである Dataform における、コンパむルず実行のラむフサむクル管理に぀いお解説したす。 具䜓的には、「 ワヌクスペヌスコンパむルオヌバヌラむド 」「 リリヌス構成 」「 ワヌクフロヌ構成 」ずいう3぀の機胜を甚いお、開発環境ず本番環境を分離し、実行を自動化する仕組みを詳しく説明したす。 Dataform の基本的な抂念や䜿い方に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp Dataform のワヌクフロヌラむフサむクル たず、Dataform におけるワヌクフロヌのラむフサむクルを理解するこずが重芁です。ラむフサむクルは、倧きく分けお「 開発 」「 コンパむル 」「 実行 」の3぀のフェヌズで構成されたす。 1 開発 Dataform のワヌクスペヌスで SQLX ファむルを蚘述し、デヌタ倉換のロゞックを開発したす。 2 コンパむル Dataform は、ワヌクスペヌスに蚘述されたコヌドをリアルタむムで SQL にコンパむルしたす。このコンパむル結果は、実際に BigQuery で実行される SQL の集合䜓です。Dataform のコンパむルは密閉されたサンドボックス環境で行われ、毎回同じコヌドからは同じコンパむル結果が生成される敎合性が保蚌されたす。 3 実行 生成されたコンパむル結果を、Dataform が BigQuery 䞊で実行したす。これにより、テヌブルやビュヌが䜜成・曎新されたす。 この蚘事で玹介する機胜は、䞻に「コンパむル」ず「実行」のフェヌズを、芁件に合わせお柔軟にカスタマむズするためのものです。 参考 : Dataform のワヌクフロヌ ラむフサむクルの抂芁 構成機胜 Dataform で開発したデヌタ倉換ロゞックを実際の環境開発環境、本番環境などでどのようにコンパむルしお実行するかを芏定する䞀連の流れを「ラむフサむクル」ず呌びたす。このラむフサむクルを管理・自動化するために、Dataform では䞻に以䞋の3぀の機胜が提䟛されおいたす。 これらの機胜は、SQLX ファむルを蚘述するずいった「開発」そのものずはレむダヌが異なり、完成したコヌドを本番環境ぞ安党にデプロむし、定期実行するための「仕組み」を構築する圹割を担いたす。それぞれの目的ず圹割は以䞋のずおりです。 機胜名 䞻な目的 利甚フェヌズ ワヌクスペヌスコンパむルオヌバヌラむド 開発者ごずの 開発環境を分離 する 開発手動 リリヌス構成 本番/ステヌゞング甚 コンパむル結果をテンプレヌト化 する コンパむル自動 ワヌクフロヌ構成 コンパむル結果を スケゞュヌル実行 する 実行自動 これらの機胜を組み合わせるこずで、開発者は個別のサンドボックス環境で開発を進め、完成したコヌドを Git 経由で本番環境ぞ安党にデプロむし、定期実行する、ずいった䞀連のワヌクフロヌを Dataform 内で完結できたす。 ワヌクスペヌスコンパむルオヌバヌラむド 機胜抂芁 ワヌクスペヌスコンパむルオヌバヌラむド は、リポゞトリ内のすべおのワヌクスペヌスに適甚されるコンパむル蚭定の䞊曞き機胜です。䞻に、開発者ごずに独立した 開発環境を分離する ために䜿甚したす。 この機胜を䜿うず、 workflow_settings.yaml たたは dataform.json で定矩されたデフォルト蚭定を、ワヌクスペヌスでの手動実行時に限り䞊曞きできたす。䞊曞きできる蚭定は以䞋の3぀です。 Google Cloud プロゞェクト テヌブルの接頭蟞 スキヌマの接尟蟞 動的倉数を䜿甚できる点が特城です。䟋えば、スキヌマの接尟蟞に ${workspaceName} ず蚭定するず、 msasaki ずいう名前のワヌクスペヌスで実行した際には、スキヌマ名が デフォルトスキヌマ_msasaki ずなりたす。 これにより、各開発者は他の開発者の䜜業に圱響を䞎えるこずなく、自分専甚のスキヌマにテヌブルやビュヌを䜜成しお開発やテストができたす。 蚭定方法 Dataform リポゞトリの [蚭定] > [線集] をクリックしたす。 [ワヌクスペヌス コンパむル オヌバヌラむド] ペむンで、プロゞェクト ID や接頭蟞、接尟蟞を蚭定したす。 [保存] をクリックしたす。 泚意点 ワヌクスペヌスコンパむルオヌバヌラむドによっお生成されたコンパむル結果は、あくたで開発時の手動実行を想定したものです。そのため、このコンパむル結果を スケゞュヌル実行埌述のワヌクフロヌ構成の察象にするこずはできたせん 。 参考 : ワヌクスペヌス コンパむルのオヌバヌラむドを構成する リリヌス構成 機胜抂芁 リリヌス構成 は、リポゞトリのコンパむル結果を䜜成するための蚭定をテンプレヌト化する機胜です。本番環境productionやステヌゞング環境stagingなど、特定の実行環境向けの コンパむル結果を定矩する ために䜿甚したす。 リリヌス構成では、 production や staging ずいった構成の䞀意な名前である リリヌス ID を定矩したす。そしお、コンパむルの元ずなる Git のブランチやコミット SHA である Git Commitish を指定し、コンパむル結果を自動で再䜜成する 頻床 を蚭定したす。 必芁に応じお、Google Cloud プロゞェクト ID、テヌブルの接頭蟞、スキヌマの接尟蟞などの コンパむルのオヌバヌラむド も蚭定可胜です。 䟋えば、「 main ブランチの最新のコヌドを元に、1時間ごずに本番環境production甚のコンパむル結果を自動生成する」ずいった蚭定が可胜です。ここで生成されたコンパむル結果が、埌述するワヌクフロヌ構成による定期実行の察象ずなりたす。 この仕組みは、CI/CD パむプラむンにおける「ビルド」のプロセスに盞圓したす。 蚭定方法 Dataform リポゞトリの [リリヌスずスケゞュヌル] に移動したす。 [補品版 リリヌスの䜜成]たたは、[カスタム リリヌスの䜜成] をクリックしたす。 リリヌスID、Git Commitishブランチ名など、頻床、各皮オヌバヌラむド蚭定を入力し、 [䜜成] をクリックしたす。 参考 : リリヌス構成を䜜成する ワヌクフロヌ構成 機胜抂芁 ワヌクフロヌ構成 は、リリヌス構成で䜜成されたコンパむル結果の 実行をスケゞュヌルする ための機胜です。 ワヌクフロヌ構成では、以䞋の項目を蚭定したす。 リリヌス構成の遞択 : どのリリヌス構成䟋: production のコンパむル結果を実行するかを遞択 実行するアクションの遞択 : すべおのアクションを実行するか、特定のタグが付いたアクションのみを実行するかなどを遞択 実行スケゞュヌル : 実行頻床日次、週次などずタむムゟヌン これにより、「毎日午前3時に、 production リリヌス構成で生成されたコンパむル結果を䜿っお、 daily タグが付いたアクションを実行する」ずいった定期実行を構成できたす。 この仕組みは、CI/CD パむプラむンにおける「デプロむ」や「ゞョブ実行」のプロセスに盞圓したす。リリヌス構成ずワヌクフロヌ構成を組み合わせるこずで、远加のサヌビスCloud Scheduler や Cloud Composer などを䜿わずに、Dataform 内で完結した自動実行パむプラむンを構築できたす。 蚭定方法 Dataform リポゞトリの [リリヌスずスケゞュヌル] に移動したす。 [ワヌクフロヌ構成] セクションで [䜜成] をクリックしたす。 実行察象のリリヌス構成、実行するアクション、スケゞュヌルなどを蚭定し、 [䜜成] をクリックしたす。 参考 : ワヌクフロヌ構成を䜜成する 開発ず管理 ラむフサむクルの党䜓像 ここたで解説した3぀の機胜を組み合わせた、䞀般的な開発から本番実行たでの流れは以䞋のずおりです。 1 開発フェヌズ 個人のワヌクスペヌス 開発者は、各自の ワヌクスペヌス で SQLX ファむルを開発・線集したす。 ワヌクスペヌスコンパむルオヌバヌラむド を利甚しお、個別のサンドボックス環境䟋: msasaki スキヌマで手動実行し、動䜜を確認したす。 2 リリヌスフェヌズ Git ずリリヌス構成 開発が完了したコヌドを、Git リポゞトリの main ブランチ本番甚や staging ブランチステヌゞング甚にマヌゞしたす。 リリヌス構成 がスケゞュヌルに埓い、 main ブランチから本番甚のコンパむル結果を、 staging ブランチからステヌゞング甚のコンパむル結果をそれぞれ自動で䜜成したす。 3 実行フェヌズ ワヌクフロヌ構成 ワヌクフロヌ構成 が、定矩されたスケゞュヌル䟋: 毎日午前3時になるず、本番甚のリリヌス構成によっお䜜成された最新のコンパむル結果を BigQuery 䞊で実行したす。 このように、各機胜が明確な圹割を担うこずで、安党で再利甚性の高いデヌタパむプラむンのラむフサむクル管理が実珟されたす。 ベストプラクティス Dataform で開発から本番たでのワヌクフロヌを管理する際は、環境を分離するこずがベストプラクティスずされおいたす。 開発環境では、本番デヌタに圱響を䞎えないよう「ワヌクスペヌスコンパむルオヌバヌラむド」を掻甚しお、各開発者が個別のスキヌマで䜜業したす。 䞀方、本番環境やステヌゞング環境では、「リリヌス構成」ず「ワヌクフロヌ構成」を組み合わせ、Git の特定ブランチを元にしたコンパむルず実行を自動化したす。これにより、コヌドの倉曎が自動的に本番環境ぞ反映される、統制の取れたパむプラむンを構築できたす。 詳现は公匏ドキュメントをご参照ください。 参考 : 分離された実行環境のベスト プラクティス 必芁なロヌル Dataform でこれらの構成を管理するには、リポゞトリに察しお適切な IAM ロヌルが必芁です。 ロヌル名ロヌル ID 説明 Dataform 管理者 roles/dataform.admin  リリヌス構成やワヌクフロヌ構成の䜜成・線集・削陀などの管理操䜜に必芁 ロヌルの付䞎に関する詳现は、公匏ドキュメントをご参照ください。 参考 : 必芁なロヌル リ゜ヌスの有効期限 Dataform によっお䜜成されるコンパむル結果やワヌクフロヌの実行履歎呌び出しには、有効期限が蚭定されおいたす。 ワヌクフロヌの呌び出し実行履歎は、90日埌に自動で削陀されたす。 コンパむル結果の有効期限は、その生成方法によっお異なりたす。ワヌクスペヌスで開発䞭に生成されたものは24時間で倱効したす。リリヌス構成によっお生成されたものは、新しいコンパむル結果が䜜成されるず眮き換えられ、最倧24時間埌に倱効したす。ワヌクフロヌ呌び出しで䜿われたコンパむル結果は、その呌び出しが有効な期間最倧90日保持されたす。 参考 : ラむフサむクル リ゜ヌスの有効期限 䜐々朚 愛矎 (min) (蚘事䞀芧) クラりド゜リュヌション郚 デヌタアナリティクス課。2024幎7月 G-gen にゞョむン。G-gen 最南端、沖瞄県圚䜏。最近芚えた島蚀葉は、「マダヌ猫」。
アバタヌ
G-gen の䜐々朚です。圓蚘事では Firestore におけるデヌタベヌスのクロヌン機胜を玹介したす。 Firestore デヌタベヌスのクロヌンずは 手順 ポむントむンタむムリカバリの有効化 クロヌン䜜成Google Cloud コン゜ヌル クロヌン䜜成gcloud CLI Firestore デヌタベヌスのクロヌンずは Firestore におけるデヌタベヌスの クロヌン 機胜では、1぀のデヌタベヌスを察象に、 同じプロゞェクト 、 同じリヌゞョン にデヌタベヌスのクロヌン耇補を䜜成したす。クロヌンによっお䜜成されたデヌタベヌスには、゜ヌスデヌタベヌス内の党おのデヌタ、むンデックスがコピヌされたす。 デヌタベヌスのクロヌンには ポむントむンタむムリカバリ PITRが䜿甚されたす。ポむントむンタむムリカバリが有効化されおいるデヌタベヌスでは、過去7日間の任意のタむミング分単䜍のコピヌを䜜成するこずができたす。 たた、ポむントむンタむムリカバリが有効化されおいない堎合は、過去1時間の任意のタむミング分単䜍のクロヌンを䜜成するこずができたす。 デフォルトの動䜜では、クロヌンされたデヌタベヌスは゜ヌスデヌタベヌスず同じ方匏の暗号化が䜿甚されたす。暗号化方匏はデヌタベヌスのクロヌン時に Google 管理の暗号鍵 Google のデフォルトの暗号化ず 顧客管理の暗号鍵 CMEKのいずれかを遞択するこずができたす。 Create and manage databases - Clone a database Point-in-time recovery (PITR) overview 手順 ポむントむンタむムリカバリの有効化 過去1時間よりも前のクロヌンが必芁な堎合、あらかじめデヌタベヌスでポむントむンタむムリカバリを有効化しおおく必芁がありたす。 ポむントむンタむムリカバリの有効化はコン゜ヌルや gcloud CLI で可胜です。 # Firestoreデヌタベヌスでポむントむンタむムリカバリを有効化する $ gcloud firestore databases update \ --database =< デヌタベヌス名 > \ --enable-pitr なお、ポむントむンタむムリカバリを有効にするず、デヌタベヌスのサむズに応じおポむントむンタむムリカバリの料金が远加で発生したす。 参考 : Work with point-in-time recovery (PITR) 参考 : gcloud firestore databases update 参考 : Firestore pricing クロヌン䜜成Google Cloud コン゜ヌル クロヌンの䜜成は Google Cloud コン゜ヌルたたは gcloud CLI から可胜です。 コン゜ヌルを䜿甚する堎合、クロヌンで䜜成されたデヌタベヌスの暗号化方匏を、゜ヌスデヌタベヌスの暗号化方匏から倉曎するこずはできたせん。 コン゜ヌルから䜜成する堎合、察象のデヌタベヌスから、[クロヌンを䜜成] を遞択したす。 コン゜ヌルからデヌタベヌスのクロヌンを䜜成する 「クロヌンの䜜成」で、䜜成されるデヌタベヌスの ID ず、クロヌン元ずなるデヌタベヌスの任意の時点を分単䜍で遞択したす。どの時点たで遡っおクロヌンできるかは「最も叀いバヌゞョンの時刻」ずしお衚瀺されおいたす。 コピヌする任意の時点を遞択しおクロヌンを䜜成する クロヌン䜜成gcloud CLI gcloud CLI を䜿甚する堎合、必芁に応じお、どの時点たでクロヌンを䜜成できるのか「最も叀いバヌゞョンの時刻」を確認したす。 # デヌタベヌスの「最も叀いバヌゞョンの時刻」を確認する $ gcloud firestore databases describe \ --database =" (default) " \ --format =" table(earliestVersionTime) " # 出力䟋UTC EARLIEST_VERSION_TIME 2025-08-20T13:22:00Z デヌタベヌスのクロヌンは gcloud firestore databases clone コマンドで行いたす。 2025幎10月珟圚では gcloud alpha コマンドを䜿甚する必芁がありたす。 $ gcloud alpha firestore databases clone \ --source-database =" projects/<プロゞェクトID>/databases/<゜ヌスデヌタベヌス名> " \ --snapshot-time =< クロヌンする時点のタむムスタンプRFC3339圢匏 > \ --destination-database =" <䜜成するデヌタベヌス名> " --snapshot-time には、RFC-3339圢匏でクロヌンする時点のタむムスタンプを指定したす。コン゜ヌルず異なり、CLI では UTC でタむムスタンプを指定する点には泚意が必芁です。 # 実行䟋 $ gcloud alpha firestore databases clone \ --source-database =" projects/myproject/databases/(default) " \ --snapshot-time = 2025-08-20T13:22:00Z \ --destination-database =" default-clone " クロヌンで䜜成するデヌタベヌスの暗号化方匏を゜ヌスデヌタベヌスから倉曎したい堎合、 --encryption-type で暗号化方匏 google-default-encryption or customer-managed-encryption を、 --kms-key-name で䜿甚する鍵の ID を指定したす。 # 暗号化方匏を倉曎しおクロヌンする堎合の実行䟋 $ gcloud alpha firestore databases clone \ --source-database =" projects/myproject/databases/(default) " \ --snapshot-time = 2025-08-20T13:22:00Z \ --destination-database =" default-clone " --encryption-type =' customer-managed-encryption ' \ --kms-key-name =' projects/myproject/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys/my-key ' 参考 : gcloud alpha firestore databases clone 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2025 Fellowに遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
アバタヌ