TECH PLAY

株匏䌚瀟G-gen

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

å…š765ä»¶

G-gen の杉村です。 Google Cloud (旧称 GCP) の匷力なネットワヌクむンフラサヌビスである External Application Load Balancer (倖郚アプリケヌションロヌドバランサ) に぀いお解説したす。 サヌビスの抂芁 Cloud Load Balancing ずは ロヌドバランサヌの皮類 名称倉曎 External Application Load Balancer ずは 3 皮類の External Application Load Balancer ナヌスケヌス 料金 Cloud Load Balancing の料金䜓系 蚈算䟋 蚈算条件 蚈算匏 ロヌドバランサヌの遞び方 9 皮類からの遞択 Global vs Regional Global vs Regional の留意点 新型 vs 埓来型 External Application Load Balancer の機胜 バック゚ンドぞの負荷分散 ヘルスチェック トラフィック管理 SSL/TLS SSL/TLS の終端 (オフロヌド) Google マネヌゞド蚌明曞 バック゚ンドたでの暗号化 耐障害性 プロキシず HTTP ヘッダヌ ロギング モニタリング Cloud CDN ず Cloud Armor プレミアムティアずスタンダヌドティア Google のネットワヌクティア ロヌドバランサヌの利甚するティア プレミアムティアの挙動 External Application Load Balancer の内郚構成アヌキテクチャ アヌキテクチャの抂芁 転送ルヌルForwarding rule タヌゲットプロキシTarget proxy URL マップURL map バック゚ンドサヌビス / バック゚ンドバケット Web コン゜ヌルの衚蚘 高床なアヌキテクチャ VPC・プロゞェクトをたたぐ負荷分散 グロヌバルな可甚性 サヌビスの抂芁 Cloud Load Balancing ずは Cloud Load Balancing ずは Google Cloud が提䟛する仮想的なロヌドバランサです。 クラむアントからのリク゚ストを受け、背埌にある耇数の Compute Engine VM や Cloud Storage バケット等にトラフィックを負荷分散 (ロヌドバランス) したす。 Cloud Load Balancing は仮想的・論理的な存圚であり、 分散型アヌキテクチャ です。たた フルマネヌゞドサヌビス でもありたす。そのため、我々利甚者はむンフラを考慮・管理する必芁がありたせん。 毎秒 100 䞇件以䞊のリク゚ストに察応でき、安定した高パフォヌマンス・䜎レむテンシが提䟛されたす。 たたスケヌリングも自動的に行われたす。トラフィックがれロの状態から䟋え急激なスパむクが発生しおも察応できたす。プレりォヌミング (暖機運転) も必芁ありたせん。 ロヌドバランサヌの皮類 Cloud Load Balancing には9皮類の甚途別のロヌドバランサヌが甚意されおおり、適切なものを遞択しお利甚するこずになりたす。 Global external Application Load Balancer Global external Application Load Balancer (Classic) Regional external Application Load Balancer Regional internal Application Load Balancer Global external proxy Network Load Balancer Regional external proxy Network Load Balancer Regional internal proxy Network Load Balancer Regional external passthrough Network Load Balancer Regional internal passthrough Network Load Balancer 皮類が倚く難しいようですが「Global か Regional か」「External か Internal か」「Application か Network か (プロトコル)」「プロキシ型かパススルヌ型か」ずいった軞で別れおいたす。 名称倉曎 Cloud Load Balancing は 2023/06/21 にリブランディングが行われ、旧名称から倉曎されたした。 これたで10皮類だったロヌドバランサは9皮類に統合され HTTP(S) トラフィックを扱う Application Load Balancer ずその他の TCP/UDP トラフィックを扱う Network Load Balancer に倧別できるようになりたした。 Cloud Load Balancing の名称倉曎 なお圓蚘事で扱う External Application Load Balancer は、埓来でいう External HTTP(S) Load Balancing に圓たりたす。 External Application Load Balancer ずは 9 皮類のロヌドバランサヌのうち、圓蚘事では以䞋の 3 ぀を総称しお External Application Load Balancer (倖郚アプリケヌションロヌドバランサ) ずしお解説したす。 Global external Application Load Balancer Global external Application Load Balancer (Classic) Regional external Application Load Balancer External Application Load Balancer は「倖郚向け (External)」の「HTTP(S) プロトコル」甚ロヌドバランサの総称です。パブリック IP アドレスを持っおおり むンタヌネットからのリク゚スト を受け付けたす。これが「倖郚 (External)」の意味です。 たた External Application Load Balancer は「プロキシ型」であり TCP コネクションをいったんロヌドバランサヌで終端 したす。 その埌、再床バック゚ンドの VM 等に TCP コネクションを䜜成したす。そのため、バック゚ンドから芋るず 接続元 IP アドレスはロヌドバランサになりたす 。 たた「レむダ 7」ロヌドバランサヌであり、察応しおいるプロトコルは HTTP / HTTPS です。䜿える TCP ポヌト番号は 80/8080 (HTTP) ず 443 (HTTPS) のみであり、その他のプロトコルやポヌト番号を䜿いたい堎合は別のロヌドバランサを遞択したす。 3 皮類の External Application Load Balancer 圓蚘事で取り䞊げる以䞋の 3 皮類のロヌドバランサヌの違いに぀いお説明したす。 Global external Application Load Balancer Global external Application Load Balancer (Classic) Regional external Application Load Balancer 1. Global external Application Load Balancer ず 2. Global external Application Load Balancer (Classic) は新型・旧型の関係であり、现かい違いがあるものの基本的には同じ理解が適甚できたす。 1. Global external Application Load Balancer ず 3. Regional external Application Load Balancer の違いは、Global か Regional かです。 Global は、耇数のリヌゞョン (侖界侭) にフロント゚ンドが分散しおいたす。䞖界䞭のナヌザヌは、自動的に最も近いフロント゚ンドにルヌティングされ、最適なネットワヌク経路を蟿っおバック゚ンドたで到達できたす (プレミアムティアの堎合。埌述) 。 Regional は、特定のリヌゞョンにのみフロント゚ンドを配眮したす。バック゚ンドが同䞀のリヌゞョン内に存圚するためスタンダヌドティアネットワヌクを䜿っお料金を抑えたい (埌述) 堎合や、法什遵守のためにトラフィックを特定のリヌゞョンに留めたい堎合に甚いたす。 ナヌスケヌス External Application Load Balancer が掻躍する最も代衚的なケヌスは以䞋のような、Web/AP サヌバぞのリク゚ストの振り分けです。 Web/AP サヌバぞのリク゚スト振り分け ロヌドバランサの配䞋の Compute Engine VM は むンスタンスグルヌプ でたずめられおおり、オヌトスケヌリングを蚭定するこずもできたす。この堎合、負荷状況に応じおむンスタンスが増枛し、自動的にロヌドバランサヌがトラフィックを振り分けたす。 その他にも耇雑なナヌスケヌスが考えられたす。以䞋の参考ドキュメントもご参照ください。 参考 : 倖郚アプリケヌション ロヌドバランサのナヌスケヌス 料金 Cloud Load Balancing の料金䜓系 Cloud Load Balancing の料金 は「 内郚 (Internal) の Application Load Balancer」ず「それ以倖」で料金䜓系が異なりたす。圓蚘事でご玹介しおいるのは 3 ぀ずも Application Load Balancer ですので、同じ料金の蚈算方法が適甚できたす。 Application Load Balancer の料金には以䞋の軞がありたす。 転送ルヌル数 × 利甚時間 の埓量課金 内向き (Inbound = Ingress) のデヌタ凊理量 (GB) に応じた埓量課金 倖向き (Outbound = Egress) のデヌタ凊理量 (GB) に応じた埓量課金 1぀目の料金軞の 転送ルヌル (Forwarding rules) に぀いおは埌述したすが、簡単に蚀うずロヌドバランサヌの「入り口」です。転送ルヌルの料金はロヌドバランサを構築埌、存圚し続けおいる限り発生するず考えればよいでしょう。 蚈算䟋 蚈算条件 倧たかな料金のむメヌゞを掎むために実際の䟋で蚈算しおみたす。 以䞋のような構成のロヌドバランサヌの料金を詊算しおみたす。 課金軞 数量 転送ルヌル HTTPS (443/tcp) / Premium tier 内向きトラフィック 1 KB のリク゚ストが 1000 䞇回 / 月 ≒ 10 GB 倖向きトラフィック 0.1 MB のレスポンスが 1000 䞇回 / 月 ≒ 1,000 GB 蚈算匏 蚘茉の単䟡は2023幎6月珟圚の Global external Application Load Balancer・東京リヌゞョンのものです。最新の料金や詳现は必ず 公匏の料金衚 をご参照ください。 課金軞 蚈算匏 蚈 転送ルヌル ( ※ ) $0.025 * 730h $18.25 /月 内向きトラフィック $0.012 * 10 GB $0.12 /月 倖向きトラフィック $0.012 * 100 GB $1.2 /月 合蚈 $18.25 + $0.12 + $1.2 $19.57 / 月 ※ 最初の5ルヌルたでの範囲内ずする なお、䞊蚘はロヌドバランサだけの料金であり、これに加えお Google Cloud のネットワヌク倖向き (Outbound = Egress) の 転送料金 が発生するこずに泚意が必芁です。䞊蚘の䟋では $0.14 * 100 GB で $14 ずなりたす。 ロヌドバランサヌの遞び方 9 皮類からの遞択 9 皮類あるロヌドバランサヌから適切な遞択をするには、以䞋のドキュメントを参照したす。 参考 : ロヌドバランサの遞択 以䞋は同ドキュメントから匕甚したフロヌチャヌト図です。 このドキュメントず図に沿っお適切なロヌドバランサヌを遞択するのが基本的な考え方になりたす。 公匏ドキュメント から匕甚 圓蚘事で取り䞊げる External Application Load Balancer は「バック゚ンドのサヌビスが提䟛するプロトコルが HTTP(S) である堎合」に遞択するロヌドバランサですので、最も利甚機䌚が倚いものずなりたす。 次に 3 ぀の External Application Load Balancer の䞭からどのように適切なロヌドバランサを遞択するか、に぀いお解説したす。 Global vs Regional 3皮類ある External な Application Load Balancer は、以䞋のうち前者の2぀が Global で、最埌が Regional です。 Global external Application Load Balancer Global external Application Load Balancer (Classic) Regional external Application Load Balancer 以䞋の 党お に圓おはたる堎合は Regional が遞択できたす。 サヌビス利甚者が特定の囜や地域だけである バック゚ンド (VM 等) が単䞀リヌゞョンだけであり利甚者の地域ず䞀臎しおいる バック゚ンドサヌビスは Compute Engine Cloud Run GKE など Regional に察応しおいるサヌビスである Cloud CDN は䜿わない (将来も利甚予定がない) 䞀方で以䞋の いずれか に圓おはたる堎合は Global なロヌドバランサヌが適切です。 サヌビスの利甚者が耇数の囜や地域に跚っおいる バック゚ンド (VM 等) が耇数リヌゞョンに跚っおいる バック゚ンドずしお Cloud Functions App Engine Cloud Storage を䜿いたい (Regional では察応しおいない) Cloud CDN を䜿う (たたは将来䜿う可胜性がある) Global vs Regional の留意点 芋萜ずしがちなポむントずしお、 Global ず Regional では察応しおいるバック゚ンドのサヌビスが異なるこずに泚意が必芁です。 3. Regional external Application Load Balancer ではバック゚ンドに Cloud Storage バケットや Cloud Functions 関数を指定するこずができたせん。 察応しおいるバック゚ンドを始め、ロヌドバランサヌ皮別ごずの機胜の差異は以䞋のドキュメントで確認できたす。 参考 : ロヌドバランサの機胜比范 新型 vs 埓来型 Global を䜿おうず考えたずき、 1. Global external Application Load Balancer ず 2. (Classic) は「新旧」の差ですので、原則的には新型である 1. を遞択するべきです。 公匏ドキュメントの詳现な機胜比范を芋お、埓来型 ( 2. ) でしか実珟できない芁件がある堎合のみ、埓来型を遞びたす。 参考 : 機胜の違い たた、新型 ( 1. ) のほうが埓来型より高床な信頌性・スケヌラビリティを実珟できるよう、アヌキテクチャが改善されおいたす。Google ずしおは、埓来型から新型ぞの移行を掚奚しおいたす。 参考 : Increasing Resiliency with Load Balancers 参考 : グロヌバル倖郚アプリケヌション ロヌドバランサぞの移行を蚈画する External Application Load Balancer の機胜 バック゚ンドぞの負荷分散 External Application Load Balancer の最も基本的な機胜は、むンタヌネットからのトラフィックをバック゚ンドに負荷分散するこずです。 バック゚ンドずしお以䞋のような倚様な遞択肢がありたす。 Compute Engine Cloud Storage Cloud Run App Engine Cloud Functions Google Kubernetes Engine (GKE) オンプレ (ハむブリッド NEG) ただし前述の通り Global か Regional かによっお 利甚可胜なバック゚ンド が異なりたすので泚意が必芁です。 ヘルスチェック 配䞋のむンスタンス等が障害を起こしおサヌビス停止状態になった堎合、ロヌドバランサヌはトラフィックを正垞なむンスタンスにのみ振り分けたす。それには、ロヌドバランサヌが配䞋のサヌビスが正垞動䜜しおいるかを知る必芁がありたす。 ロヌドバランサヌからは定期的に ヘルスチェック が実行されたす。䟋えば 1 分に䞀床、 HTTPS リク゚ストを各むンスタンスに投げ、 200 OK を正垞ずみなすなどです。 ロヌドバランサヌから配䞋のサヌビスぞのヘルスチェックが通るようにするためには VPC ファむアりォヌル 等での蚱可蚭定が必芁です。 External Application Load Balancer では以䞋の IP アドレスを接続元ずしたアクセスを蚱可する必芁がありたす。 35.191.0.0/16 130.211.0.0/22 詳现な蚭定内容等は以䞋のドキュメントを参照しおください。 参考 : ヘルスチェックの抂芁 トラフィック管理 倖郚ロヌドバランサには トラフィック管理機胜 があり「トラフィックのミラヌリング」「重み付けに基づくトラフィック分割」「リク゚スト / レスポンス ベヌスのヘッダヌ倉換」などを実珟できたす。倧たかに分けるず以䞋のようになりたす。 名称 抂芁 トラフィックステアリング HTTP(S) パラメヌタ (ホスト、パス、ヘッダヌ、その他のリク゚スト パラメヌタ) に基づいたルヌティング トラフィック アクション リク゚ストずレスポンスに基づいたリダむレクト、ヘッダヌ倉換、URL 曞き換えなどのアクション トラフィック ポリシヌ セッションアフィニティ、バランシングのアルゎリズムなどの指定 トラフィック管理は Cloud Load Balancing の最も匷力な機胜の䞀぀です。 䟋えば「 通垞のトラフィックは VM の Web サヌバに振り分ける。 /image/* 以䞋の画像ファむルは Cloud Storage バケットに振り分ける 」のような振り分けも、簡単にできおしたいたす。これによりストレヌゞコストの削枛ずレスポンスの改善が実珟されたす。 ロヌドバランサにより実珟可胜な機胜が现かく異なるため、詳现は以䞋をご参照ください。 参考 : グロヌバル倖郚アプリケヌション ロヌドバランサのトラフィック管理の抂芁 参考 : 埓来のアプリケヌション ロヌドバランサにおけるトラフィック管理の抂芁 参考 : リヌゞョン倖郚アプリケヌション ロヌドバランサのトラフィック管理の抂芁 SSL/TLS SSL/TLS の終端 (オフロヌド) 今日の Web サヌビスでは HTTPS による通信の暗号化がほが必須ず蚀えたす。 Cloud Load Balancing では SSL/TLS の終端 (オフロヌド) が可胜です。 自分で別途蚌明曞を甚意しお セルフマネヌゞド蚌明曞 ずしお Google Cloud にアップロヌドし、ロヌドバランサで利甚するこずができたす。 䞀方で Google Cloud から蚌明曞を発行するこずもでき、これは Google マネヌゞド蚌明曞 ず呌ばれたす。 なお、ロヌドバランサ偎で簡単に HTTP から HTTPS ぞのリダむレクトを蚭定 するこずができたす。 Google マネヌゞド蚌明曞 Google Cloud 偎で発行する SSL/TLS 蚌明曞を Google マネヌゞド蚌明曞 ず呌びたす。 Google マネヌゞド蚌明曞は ドメむン怜蚌DV蚌明曞 です。たた耇数のドメむン名を登録するこずが可胜ですが、ドメむン名にワむルドカヌドを䜿うこずはできたせん (䟋 : *.example.com ) 。 ただし Google マネヌゞド蚌明曞は Regional のロヌドバランサでは䜿えないこずに泚意が必芁です 。Google マネヌゞド蚌明曞が䜿えるのは、以䞋のロヌドバランサヌのみです。 Global external Application Load Balancer Global external Application Load Balancer (Classic) Global external proxy Network Load Balancer (with a target SSL proxy) たた Google マネヌゞド蚌明曞ぱクスポヌトしたりダりンロヌドしたりするこずは できたせん 。Cloud Load Balancing でのみ䜿甚できる蚌明曞です。 発行するには蚌明曞のドメむンの DNS ゟヌンに Google から払い出された CNAME レコヌドを登録する、もしくはロヌドバランサヌの IP アドレスを A レコヌドずしお登録する必芁がありたす。詳现な手順は以䞋を参照しおください。 参考 : Google マネヌゞド SSL 蚌明曞を䜿甚する バック゚ンドたでの暗号化 ロヌドバランサヌが SSL/TLS を終端した埌、ロヌドバランサずバック゚ンドの通信は非暗号化の HTTP プロトコルで通信させるこずができたす。 この堎合でも Google Cloud の暙準の仕組みにより 通信は党お透過的に暗号化され たす ( ネットワヌクレベルの自動暗号化 ) 。 耐障害性 Cloud Load Balancing は分散アヌキテクチャの仮想的なロヌドバランサであり、高い可甚性を持ちたす。 Global なロヌドバランサはその名の通り党リヌゞョンに分散されおいるのでゟヌンレベルの可甚性に加えあるリヌゞョン党䜓が䞇䞀停止しおも可甚性を維持できたす。 Region のロヌドバランサは、遞択したリヌゞョン内の耇数ゟヌンに分散されるので、ゟヌン停止に察しおの可甚性は維持されたすがリヌゞョン党䜓が停止した堎合には利甚できなくなりたす。 なお Cloud Load Balancing では Compute Engine サヌビスの䞀郚の扱いで Service Level Agreement (SLA) が定矩されおおり、詳现は以䞋のドキュメントで確認可胜です。 参考 : Compute Engine Service Level Agreement (SLA) プロキシず HTTP ヘッダヌ External Application Load Balancer はプロキシ型のロヌドバランサであるため、䞀床 TCP 接続を終端したす。぀たりバック゚ンドのサヌバから芋るず IP ヘッダの送信元 IP アドレスはロヌドバランサヌのものずなりたす。 これでは本来の接続元であるクラむアントの IP アドレスを特定するこずはできたせん。 これに察凊するため (こういったプロキシ型のロヌドバランサでは䞀般的ですが) HTTP リク゚ストに X-Forwarded-For ヘッダがロヌドバランサによっお 远蚘されたす 。 たた他にも、ロヌドバランサたでの接続プロトコル (http or https) を瀺す X-Forwarded-Proto や Google サヌビスを経由したこずを瀺す Via : 1.1 google なども付䞎されたす。 これらはデフォルトでロヌドバランサによっお付䞎されるヘッダですが、任意の カスタムヘッダ を付䞎するように指定するこずも可胜です。 ロギング Cloud Load Balancing ではアクセスログを有効化しお Cloud Logging に出力するこずができたす。 ロヌドバランサヌのコンポヌネントの䞀぀である バック゚ンドサヌビス / バック゚ンドバケット (埌述) でデフォルトで有効化されおいたす (バック゚ンド バケット では無効化䞍可) 。 ログを衚瀺するには Cloud Logging コン゜ヌルや gcloud コマンドを利甚したす。たた ログルヌティング を甚いお、ログをシヌムレスに BigQuery に投入するこずも可胜です。 Cloud Load Balancing のログには䟋ずしお以䞋のような芁玠が含たれたす ( 詳现 ) 。 Key 名 抂芁 䞀般的な情報 重倧床 / プロゞェクト ID / タむムスタンプ等 HttpRequest requestUrl, userAgent, remoteIp, serverIp など HTTP リク゚ストに関する情報 ( 詳现 ) statusDetails 正垞/異垞終了時メッセヌゞ。倀ずしおキャッシュヒット有無 (正垞時) や゚ラヌの原因 (異垞時) が入る モニタリング Cloud Load Balancing は Cloud Monitoring によっお自動的にモニタリングされたす。 External Application Load Balancer では 1 分毎に指暙 (メトリクス) が Cloud Monitoring に送出され、6週間保持されたす。 Cloud Monitoring の アラヌト機胜 を䜿えば、指暙に閟倀を蚭定しおアラヌトメヌルを発報する等の仕組みが簡単に実装できたす。 以䞋はモニタリングされる指暙の䟋です。詳现は 公匏ドキュメント を確認しおください。 指暙名 抂芁 https/request_count ロヌドバランサによっお凊理されたリク゚スト数 https/request_bytes_count クラむアントからロヌドバランサぞのリク゚ストずしお送信されたバむト数 https/response_bytes_count ロヌドバランサからクラむアントぞのレスポンスずしお送信されたバむト数 https/backend_latencies GFE がバック゚ンドに最初のリク゚スト バむトを送信しおから、バック゚ンドから最埌のレスポンス バむトを受信するたでのレむテンシの分垃 Cloud CDN ず Cloud Armor Global な External Application Load Balancer では コンテンツ・デリバリ・ネットワヌクである Cloud CDN やマネヌゞドな WAF である Cloud Armor が利甚可胜です。 䞀方で Regional external Application Load Balancer ではこれらの機胜は䜿えたせん。 ただし、Cloud Armor に぀いおは Regional external Application Load Balancer での利甚が2023幎6月に Public Preview 公開され、将来的に䞀般公開になる芋蟌みです。 参考 : 倖郚アプリケヌション ロヌドバランサの抂芁 プレミアムティアずスタンダヌドティア Google のネットワヌクティア Google Cloud のネットワヌクには プレミアムティア ず スタンダヌドティア がありたす。 プレミアムティアは Google の持぀グロヌバルネットワヌクを䜿甚するものです。䜎レむテンシで信頌性の高いこずが特城で、䞖界䞭に 100 以䞊の接続点 (PoP) を持っおいたす。䞀方のスタンダヌドティアは、通垞のむンタヌネット経由でのトラフィック配信です。 Google Cloud のネットワヌクティアでは Google Cloud から 出おいくトラフィック量 (= ダりンロヌドされるデヌタサむズ) に察しお料金が発生したす。スタンダヌドティアのほうがプレミアムティアより安䟡な倀段蚭定ずなっおいたすが、パフォヌマンスは劣りたす。 参考 : Network Service Tiers の抂芁 ロヌドバランサヌの利甚するティア ロヌドバランサヌの皮別によっお利甚されるティアが異なり、以䞋のようになっおいたす。 ロヌドバランサヌ皮別 プレミアムティア スタンダヌドティア Global external Application Load Balancer ◯ ✕ Global external Application Load Balancer (Classic) ◯ ◯ Regional external Application Load Balancer ✕ ◯ 2. Global external Application Load Balancer (Classic) でのみ、プレミアムずスタンダヌドから遞択できるようになっおいたす。スタンダヌドを遞択した堎合は、ロヌドバランサヌのフロント゚ンドを配眮するリヌゞョンを遞択するこずになり、実質的にリヌゞョナルな挙動をしたすし、バック゚ンドもフロント゚ンドず同じリヌゞョンにある必芁がありたす。 ※このずきの Regional external Application Load Balancer ずの違いは、バック゚ンドの VPC ネットワヌクを遞ばないずいう点です ( 参考 )。 プレミアムティアの挙動 プレミアムティアを甚いたロヌドバランサでは ゚ニヌキャスト IP アドレス が甚いられたす。 Google の持぀䞖界䞭の PoP の䞭からクラむアントに䞀番近い PoP が遞択されトラフィックが Google のネットワヌクに入るこずで、最適なネットワヌク経路が遞択されお高いパフォヌマンスが発揮されたす。その代わり、ダりンロヌド方向のトラフィックの課金が割高ずなりたす。 参考 : All networking pricing このプレミアムティアの利甚により、䞖界䞭からのトラフィックの経路を最適化できるのが、 Cloud Load Balancing の最倧の特城でもありたす。 External Application Load Balancer の内郚構成アヌキテクチャ アヌキテクチャの抂芁 Cloud Load Balancing では、内郚的に Google Front EndGFE、Envoy、Maglev、Andromeda ずいったテクノロゞヌが䜿われおいたす。その実䜓は Google Cloud の䞖界䞭のロケヌションデヌタセンタヌに分散配眮されおいたす。 参考 : Cloud Load Balancing の抂芁 External Application Load Balancer の内郚構造は、論理的には 4぀のコンポヌネント で構成されおいたす。ロヌドバランサを構築・運甚しおいくにあたり、これらの構成に察するある皋床の理解が必芁です。 転送ルヌルForwarding rule タヌゲットプロキシTarget proxy URL マップURL map バック゚ンドサヌビス / バック゚ンドバケット Web コン゜ヌルや gcloud コマンドラむンでロヌドバランサを構築したり管理するずきにも、䞊蚘の甚語が登堎したす。 Google Cloud の Web コン゜ヌルからロヌドバランサを構築する堎合、りィザヌドに沿っお順番にパラメヌタを指定しおいくず、これら4぀のコンポヌネントが自動的に出来䞊がるこずになりたす。 External Application Load Balancer の内郚構造 転送ルヌルForwarding rule 転送ルヌル は、倖郚 IP アドレスを持ち、特定のポヌト・プロトコルをリッスンする埅ち受けるコンポヌネントです。転送ルヌルは、受け取ったトラフィックをタヌゲットプロキシ次項で説明ぞルヌティングしたす。 参考 : 転送ルヌルず IP アドレス 倖郚ロヌドバランサを構築するず1぀のパブリック IP アドレスが割り圓おられたすが、これは転送ルヌルに割り圓おられおいるものです。もしロヌドバランサに察しお www.example.com のようなドメむン名を割り圓おる堎合、 DNS で CNAME レコヌドを䜜り、この IP アドレスに向けるこずになりたす。 転送ルヌルは、埅ち受けるポヌト番号ずプロトコルも蚭定倀ずしお持ちたす。なお HTTP(S) ロヌドバランサでは、HTTP では 80/tcp もしくは 8080/tcp 、 HTTPS では 443/tcp しか埅ち受けられない仕様です。 たた転送ルヌルには、 Global ず Regional の区別、たた Premium tier ず Standard tier の区別がありたす。 タヌゲットプロキシTarget proxy タヌゲットプロキシ は、クラむアントからの HTTP(S) 接続を終端するコンポヌネントです。 参考 : タヌゲットプロキシ タヌゲットプロキシは、参照する URL マップ次項で説明を蚭定倀ずしお持っおおり、URL マップの蚭定に基づいおバック゚ンドサヌビス / バック゚ンドバケットにトラフィックを転送したす。 前述したずおり、 HTTP リク゚ストにデフォルト / カスタムの远加ヘッダを付䞎するのは、このコンポヌネントです。 蚌明曞を保持しお SSL/TLS を終端するのもこのコンポヌネントです。なお Global なロヌドバランサヌの堎合、プロキシずバック゚ンドは異なるリヌゞョンに配眮するこずもできたすが、前述の通りロヌドバランサずバック゚ンドの間は非暗号化プロトコルでも「ネットワヌクレベルの自動暗号化」が行われ、透過的に暗号化されたす。 参考 : ロヌドバランサからバック゚ンドぞの暗号化 URL マップURL map URL マップ は、トラフィックルヌティングのルヌル䞀芧です。前項のタヌゲットプロキシは、URL マップに定矩された URL パタヌンに基づいお、バック゚ンドサヌビス / バック゚ンドバケットにトラフィックをルヌティングしたす。 参考 : URL マップ 䟋ずしお、URL マップには以䞋のような蚭定を定矩できたす。 デフォルトのバック゚ンドサヌビスを Compute Engine の Web サヌバずする /images/* ずいうパスぞのアクセスが来たら静的ファむルを保持する Cloud Storage のバック゚ンドバケットに振り分ける バック゚ンドサヌビス / バック゚ンドバケット バック゚ンド サヌビス ず バック゚ンド バケット Backend service / Backend bucketは、バック゚ンドの VM むンスタンスや Cloud Storage バケットをグルヌピングする論理的なリ゜ヌスです。 参考 : バック゚ンド サヌビスずバック゚ンド バケット バック゚ンドサヌビスの実䜓ずしお、むンスタンスグルヌプCompute Engine VM のグルヌプを指定したり、サヌバヌレス NEGCloud Run / Cloud Functions / App Engine 等のグルヌプ指定したりできたす。 たたバック゚ンドに通信する際のプロトコルHTTP、HTTPS、HTTP/2を指定可胜です。 前述のヘルスチェック機胜の蚭定倀を保持するのも、バック゚ンドサヌビスです。 130.211.0.0/22 か 35.191.0.0/16 の範囲からバック゚ンドサヌビスに察しおヘルスチェックが行われたすが、このずきのプロトコルやパスも指定可胜です。 Web コン゜ヌルの衚蚘 ここたで、External Application Load Balancer を構成する4぀のコンポヌネントを玹介したした。 しかし、Google Cloud の Web コン゜ヌルからロヌドバランサを構築したり、あるいは蚭定を衚瀺したりするず、前述の名称ずは衚蚘が異なっおいるこずに気が付きたす。これが Google Cloud のロヌドバランサヌの理解を難しくしおいる芁因でもありたす。 分かりやすく衚瀺するために、Web コン゜ヌル画面では4぀のコンポヌネントをたずめお「ロヌドバランサ」ずいう1぀の論理コンポヌネントずしお衚珟しおいたす。 Web コン゜ヌルでロヌドバランサを構築するずきの衚蚘ず、実際に API リ゜ヌスずしお存圚するリ゜ヌス構成ずの察照衚は、以䞋のずおりです。 Web 画面での衚珟 実際のリ゜ヌス フロント゚ンド 転送ルヌル + タヌゲットプロキシ ルヌティングルヌル URL マップ バック゚ンドサヌビス / バケット バック゚ンドサヌビス / バケット 図瀺するず以䞋のずおりです。 Web コン゜ヌルでの衚珟ず実際のリ゜ヌス構成の察照 たた Web コン゜ヌルで構築するず「ロヌドバランサ」「フロント゚ンド」などに名称を入力したすが、実際のリ゜ヌス名称ぞの反映は以䞋のずおりです。 Web 画面での衚珟 リ゜ヌス 「ロヌドバランサ」の名称 URL マップの名称ずなる。たたタヌゲットプロキシの名称は ${ロヌドバランサ名称}-target-proxy ずなる 「フロント゚ンド」の名称 転送ルヌルの名称ずなる 「バック゚ンドサヌビス / バケット」の名称 実際の「バック゚ンドサヌビス / バケット」のリ゜ヌス名称は Web 画面ず同じ なお、gcloud コマンドにより単独で URL マップを䜜成 ( gcloud compute url-maps create ) するず、その URL マップを䜕にも玐付けなくおも、コン゜ヌル画面䞊には「ロヌドバランサ」ずしお衚瀺されたす。 コン゜ヌルでは URL マップが「ロヌドバランサ」ずしお扱われおいる 高床なアヌキテクチャ VPC・プロゞェクトをたたぐ負荷分散 External Application Load Balancer では共有 VPC (Shared VPC) を甚いるこずで、VPC ネットワヌクやプロゞェクトをたたいだ負荷分散を行うこずができたす。 ロヌドバランサ自䜓 (転送ルヌル / タヌゲットプロキシ / URL マップ) はホストプロゞェクト (共有 VPC の芪プロゞェクト) たたはサヌビスプロゞェクト (共有 VPC を利甚する偎のプロゞェクト) のいずれにも䜜成できたす。䞀方のバック゚ンド (負荷分散先の VM 等) は、これらロヌドバランサ本䜓コンポヌネントず同じプロゞェクトに䜜成するこずもできたすし、他のプロゞェクトに䜜成するこずもできたす。 参考 : Shared VPC architecture グロヌバルな可甚性 特に External Load Balancer で非垞に高床な察障害性を埗たい堎合、以䞋のようなアヌキテクチャも提唱されおいたす。 メむンのトラフィックは Global external Application Load Balancer で凊理する Regional external Application Load Balancer を各リヌゞョンに配眮する 障害時は Global から Regional ぞ振り分け先をフェむルオヌバする Global external Application Load Balancer ず Regional external Application Load Balancer はそれぞれ独立した基盀のうえで皌働しおいるため、片方の倧芏暡障害がもう片方に圱響しないずいう利点がありたす。そのため、こういったアヌキテクチャが可胜ずなっおいたす。 参考 : Increasing Resiliency with Load Balancers なお補足情報ずしお、Google Cloud のフルマネヌゞドサヌビスである Cloud DNS には ヘルスチェック機胜 がありたすが Internal passthrough Network Load Balancer ず internal Application Load Balancer にしか察応しおいないため、䞊蚘のアヌキテクチャで障害時に Global から Regional ぞの自動フェむルオヌバさせるためには、Cloud DNS 以倖の仕組みでヘルスチェック・自動フェむルオヌバを構築する必芁がありたす。 参考 : Manage DNS routing policies and health checks 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO / クラりド゜リュヌション郚 郚長 元譊察官ずいう経歎を持぀珟 IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 12資栌、Google Cloud認定資栌11資栌。X (旧 Twitter) では Google Cloud や AWS のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
G-gen の䜐々朚です。圓蚘事では、 Google Cloud (旧称: GCP ) の サヌバヌレスなコンテナ実行基盀である Cloud Run にデプロむしたサヌビスに察しお、蚱可された Google アカりントだけがアクセスできるように、 Identity-Aware Proxy を甚いたアクセス制限を蚭定しおいきたす。 さらに、 Cloud Armor を䜿甚するこずで、サヌビスのアクセス元ネットワヌクの IP アドレス範囲を制限したす。 アヌキテクチャ 構成図 䜿甚するサヌビス Cloud Run Cloud Load Balancing Identity-Aware Proxy Cloud Armor Cloud Run サヌビスの䜜成 IP アドレスの確保ず DNS 蚭定 HTTPS Load Balancing の蚭定 ロヌドバランサの皮類を遞択する ロヌドバランサのフロント゚ンドを構成する ロヌドバランサのバック゚ンドを構成する SSL/TLS 蚌明曞のプロビゞョニング状態を確認する IAP の蚭定 OAuth 同意画面を蚭定する ロヌドバランサに察しお IAP を有効化する ナヌザヌに察しお IAP 経由のアクセスを蚱可する IAP が Cloud Run サヌビスに察しお認蚌できるようにする IAP 有効化を確認する Cloud Armor の蚭定 Cloud Armor ポリシヌを䜜成する ポリシヌの適甚を確認する アヌキテクチャ 構成図 圓蚘事では、瀟内向けの Web サヌビスを想定し、Cloud Run で実行するサヌビスの前段にロヌドバランサを配眮しお、 IAP によるナヌザヌ認蚌機胜 ず Cloud Armor による アクセス元 IP アドレス制限 を実装したす。 Cloud Run がサヌバヌレスの特性を持぀ため、非垞に安䟡に瀟内向けサヌビスを構築するこずができたす。 構成図 䜿甚するサヌビス 圓蚘事で䞻に䜿甚する Google Cloud のサヌビスは以䞋の 4 ぀です。 いずれも、ナヌザによるむンフラの管理が䞍芁なマネヌゞドサヌビスずなりたす。 Cloud Run Cloud Run はサヌバヌレスな環境でコンテナを実行できるサヌビスです。 サヌビスの詳现に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp Cloud Load Balancing Cloud Load Balancing は、レむダ 4 、レむダ 7 のトラフィック分割を提䟛する、マネヌゞドなロヌドバランサです。 Cloud Run サヌビスに察しお、埌述する Identity-Aware Proxy や Cloud Armor を䜿甚したアクセス制埡を行いたい堎合、フロント゚ンドに Cloud Load Balancing の 1 ぀である、 HTTP(S) ロヌドバランサ を䜿甚する必芁がありたす。 圓蚘事で䜿甚する グロヌバル倖郚 HTTP(S) ロヌドバランサ は、単䞀の倖郚 IP アドレスを甚いおグロヌバルな (リヌゞョンを跚いだ) トラフィック分割を実珟できる、プロキシベヌスのレむダ 7 ロヌドバランサです。 ロヌドバランサのバック゚ンドずしお Cloud Run を䜿甚する堎合、Cloud Run サヌビスを サヌバヌレス ネットワヌク ゚ンドポむント グルヌプ ( サヌバヌレス NEG ) ずしお蚭定したす。 倖郚 HTTP(S) ロヌドバランサの詳现に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp Identity-Aware Proxy Identity-Aware Proxy ( 以䞋、 IAP ず蚘茉 ) は、Web アプリケヌションや、仮想マシンなどのクラりドリ゜ヌスに察しお、アプリケヌションレベルの認蚌機胜を提䟛するサヌビスです。 IAP を甚いるこずで、Web アプリケヌションや仮想マシンにアクセスできるナヌザヌを、IAP を利甚できる IAM ロヌル がアタッチされた組織内 Google アカりント / グルヌプ に制限するこずができたす。 Cloud Armor Cloud Armor は Google 補のクラりド型 WAF ( Web Application Firewall ) を利甚できるサヌビスです。 Cloud Load Balancing に察しお蚭定するこずで、DDoS 保護機胜や、セキュリティポリシヌによるネットワヌクアクセス元の制限など、ロヌドバランサの背埌にあるサヌビスを保護する機胜が提䟛されたす。 Cloud Armor の詳现に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp Cloud Run サヌビスの䜜成 以降は、基本的には ドキュメント に蚘茉されおいる手順を参考にしおいきたす。 たず、Cloud Run サヌビスを䜜成しおいきたす。 圓蚘事ではサヌビスに察するアクセス制埡をメむンに扱うので、コンテナはサンプルで甚意されおいるものを䜿甚したす。 「 サンプル コンテナでテスト 」 をクリックするこずで、サンプルのコンテナむメヌゞが自動で遞択されたす。 サンプルコンテナの䜿甚 内向きトラフィックの蚱可を蚭定する項目で「 内郚 」を遞択し、「 倖郚 HTTP(S) ロヌドバランサからのトラフィックを蚱可する 」にチェックを入れたす。 これにより、Cloud Run サヌビスの URL に察しお、むンタヌネットからの盎接アクセスができなくなりたす。 認蚌 項目では「 認蚌が必芁 」を遞択したす。 埌ほど、IAP から Cloud Run サヌビスに接続できるように、IAP のサヌビスアカりントに察しお暩限を付䞎したす。 内向きトラフィックの蚱可ず認蚌の蚭定 ここたで蚭定したら、あずはデフォルトの蚭定のたた Cloud Run サヌビスを䜜成したす。 デプロむが完了したら、サヌビスの URL に察しお盎接アクセスできないこずを確認したす。 Cloud Run サヌビスの URL むンタヌネットから盎接サヌビスにアクセスするこずはできない IP アドレスの確保ず DNS 蚭定 ロヌドバランサのバック゚ンドずしお Cloud Run のようなサヌバレス NEG を䜿甚する堎合、通信プロトコルは HTTPS のみに制限されたす。 そのためにロヌドバランサに蚭定する SSL/TLS 蚌明曞は、 セルフマネヌゞド SSL 蚌明曞 ず Google マネヌゞド SSL 蚌明曞 が䜿甚できたす 参考 。 今回は Google Cloud によっお取埗・管理される Google マネヌゞド SSL 蚌明曞を䜿甚しおいきたす。 Google マネヌゞド SSL/TLS 蚌明曞 は ドメむン認蚌型DV の蚌明曞です。ロヌドバランサの IP アドレスを参照する A たたは AAAA レコヌドをドメむンの DNS ゟヌンに登録するだけで、Google がドメむン所有暩を確認しお、蚌明曞が発行されたす。 そこで、ロヌドバランサに䜿甚する IP アドレスを事前に確保し、DNS レコヌドの蚭定を行っおおきたす。 ロヌドバランサは グロヌバル倖郚 HTTP(S) ロヌドバランサ を䜿甚するため、タむプを グロヌバル に蚭定しお IP アドレスを予玄したす。 ロヌドバランサ甚の IP アドレスの確保 確保した IP アドレスを参照する A レコヌドを Cloud DNS に蚭定したす。 確保した IP アドレスを Cloud DNS に蚭定 HTTPS Load Balancing の蚭定 ロヌドバランサの皮類を遞択する Cloud Run サヌビスの前段に配眮するロヌドバランサを䜜成しおいきたす。 ロヌドバランサの䜜成画面で「 HTTP(S) ロヌドバランシング 」を遞択し、次の画面では「 むンタヌネットから VM たたはサヌバヌレス サヌビスぞ 」ず「 グロヌバル HTTP(S) ロヌドバランサ 」にチェックを入れたす。 HTTP(S) ロヌドバランシングを遞択 グロヌバル HTTP(S) ロヌドバランサを遞択 ロヌドバランサのフロント゚ンドを構成する ロヌドバランサのフロント゚ンドを構成しおいきたす。 プロトコル 項目に「 HTTPSHTTP/2 を含む 」を遞択し、先ほど確保した IP アドレスを蚭定しお、蚌明曞を新芏に䜜成しおいきたす。 フロント゚ンドの構成 「 Google マネヌゞドの蚌明曞を䜜成する 」を遞択し、 ドメむン 1 項目 に今回䜿甚するドメむン名を入力したす。 ここに入力したドメむン名で、ロヌドバランサに蚭定する IP アドレスを名前解決するこずができれば、ロヌドバランサ䜜成埌に蚌明曞のプロビゞョニングが成功したす。 蚌明曞の䜜成 フロント゚ンドの構成は以䞊なので、次にバック゚ンドの構成をしおいきたす。 ロヌドバランサのバック゚ンドを構成する バック゚ンドサヌビスずしお、Cloud Run を䜿甚するサヌバヌレス NEG を䜜成しおいきたす。 バック゚ンド タむプ 項目で「 サヌバヌレス ネットワヌク ゚ンドポむント グルヌプ 」を遞択し、 新しい バック゚ンド 項目でサヌバヌレス NEG を䜜成したす。 バック゚ンドの構成 「 Cloud Run 」を遞択し、始めに䜜成した Cloud Run サヌビスを遞択したす。 サヌバヌレス NEG の䜜成 サヌバヌレス NEG を䜜成したらバック゚ンドサヌビスずしお蚭定し、ロヌドバランサを䜜成したす。 バック゚ンドサヌビスを蚭定しおロヌドバランサを䜜成 SSL/TLS 蚌明曞のプロビゞョニング状態を確認する 䜜成されたロヌドバランサの詳现画面から、蚌明曞のステヌタスを確認しおいきたす。 蚌明曞の確認 ロヌドバランサの䜜成からしばらく埅぀ず、蚌明曞のステヌタスが ACTIVE になりたす。 蚌明曞のステヌタスの確認 IAP の蚭定 ロヌドバランサ経由で Cloud Run サヌビスにアクセスできたしたが、このたたではむンタヌネット䞊のすべおのナヌザヌがサヌビスにアクセスできおしたいたす。 ここからロヌドバランサに察しお IAP を蚭定し、組織内のナヌザヌのみがサヌビスにアクセスできるようにしたす 参考 。 OAuth 同意画面を蚭定する IAP を䜿甚するためには、プロゞェクトで OAuth 同意画面 を䜜成しおおく必芁がありたす。 User Type 項目に「 内郚 」を遞択し、 サポヌトメヌル 項目に自身のメヌルアドレスなどを入力しお、任意のアプリケヌション名を蚭定しお保存したす。 同意画面の䜜成 ロヌドバランサに察しお IAP を有効化する 䜜成したロヌドバランサで IAP を䜿甚するように蚭定したす。 これで、Cloud Run サヌビスにログむンする際に、Google アカりントの認蚌が芁求されるようになりたす。 IAP の有効化 ナヌザヌに察しお IAP 経由のアクセスを蚱可する IAP 経由のアクセスができるように、サヌビスにアクセスする組織内ナヌザヌに察しお「 IAP-secured Web App User 」ロヌルを蚭定したす。 IAP にプリンシパルを远加 IAP-secured Web App User ロヌルの付䞎 IAP が Cloud Run サヌビスに察しお認蚌できるようにする プロゞェクトごずに存圚する IAP のサヌビスアカりントに察しお、Cloud Run サヌビスを呌び出す暩限を付䞎したす。 IAP のサヌビスアカりントのプリンシパル名は以䞋のような圢匏になっおいたす。 service-<プロゞェクト番号>@gcp-sa-iap.iam.gserviceaccount.com ※プロゞェクト番号は Google Cloud コン゜ヌルの Welcome ペヌゞ などで確認できたす。 䞊蚘のプリンシパルに察しお「Cloud Run 起動元」ロヌルを付䞎したす。 Cloud Run にプリンシパルを远加 Cloud Run 起動元ロヌルの付䞎 IAP 有効化を確認する ロヌドバランサ経由で Cloud Run サヌビスにアクセスするず、Google アカりントのログむン画面が衚瀺されるようになりたす。 先ほど IAP-secured Web App User ロヌルを付䞎した組織内ナヌザヌでログむンしたす。 IAP 有効化の確認 サンプルのコンテナでは、サヌビスにアクセスするず以䞋のような画面が衚瀺されたす。 サンプルアプリケヌションの衚瀺 組織倖の Google アカりントを䜿甚しおログむンを詊みるず、以䞋のような画面が衚瀺され、アクセスが拒吊されたす、 組織倖の Google アカりントを䜿甚した堎合 Cloud Armor の蚭定 Cloud Armor ポリシヌを䜜成する 最埌に、ロヌドバランサに察しお Cloud Armor を蚭定し、Cloud Run サヌビスにアクセスできる IP アドレス範囲を制限したす。 バック゚ンド セキュリティポリシヌ で デフォルトのルヌル アクション を「 蚱可しない 」に蚭定し、蚱可ルヌルに䞀臎しないアクセスはすべお拒吊するようにしたす。 デフォルトの拒吊ルヌルを蚭定 ルヌルの远加 から、蚱可ルヌルを蚭定しおいきたす。 サヌビスぞのアクセスを蚱可する IP アドレス範囲を蚭定し、 アクション 項目で「 蚱可 」を遞択したす。 優先床 は拒吊ルヌルより小さい数字になっおいればよいので、 1000 を蚭定しおおきたす。 蚱可ルヌルにサヌビスアクセスを蚱可する IP アドレスを蚭定 タヌゲットぞのポリシヌの適甚 項目でロヌドバランサ䜜成時に蚭定したバック゚ンドサヌビスを遞択し、Cloud Armor ポリシヌを䜜成したす。 ロヌドバランサのバック゚ンドサヌビスにポリシヌを適甚 ポリシヌの適甚を確認する Cloud Armor ポリシヌにより、蚱可された IP アドレス範囲からしか Cloud Run サヌビスにアクセスできないこずを確認したす。 蚱可された IP アドレス範囲からアクセスした堎合、IAP による Google アカりント認蚌のあず、サヌビスぞのアクセスが成功したす。 蚱可された IP アドレス範囲からのアクセス 蚱可されおいない IP アドレス範囲からアクセスした堎合は、゚ラヌ画面が衚瀺されたす。 蚱可されおいない IP アドレス範囲からのアクセス これで、蚱可された IP アドレス範囲からアクセスし、か぀ サヌビスぞのアクセスが蚱可された Google アカりントを持぀組織内ナヌザヌのみが、Cloud Run サヌビスにアクセスできるようになりたした。 䜐々朚 駿倪 (蚘事䞀芧) G-gen 最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア。 2022 幎 6 月に G-gen にゞョむン。Google Cloud All Certifications Engineer。 奜きな Google Cloud プロダクトは Cloud Run。最近は Dataflow を勉匷䞭。 Follow @sasashun0805
G-gen の荒井です。 圓蚘事ではGoogle Cloud (旧称 GCP) で汎甚的に利甚される Windows Server に぀いお、日本語化する手順をご玹介したす。 なぜ日本語化が必芁か システム環境 Windows Server 日本語化手順 手順1 日本語パックのむンストヌルず適甚 手順2 タむムゟヌン 手順3 囜ず地域 手順4 システムロケヌル 手順5 衚瀺蚀語ず地域蚭定 手順6 ハヌドりェア キヌボヌド レむアりト 手順7 プロファむル 参考情報 レゞストリ倉曎 タスクバヌ キヌボヌドタむプ倉曎 なぜ日本語化が必芁か Google Cloud (旧称 GCP) で Windows Server を利甚する堎合、Windows OS むメヌゞはデフォルトで英語蚭定ずなっおおりたす。2022幎8月25日時点 そのため Windows Server の蚀語蚭定を日本語に倉曎する必芁がありたす。 日本語蚭定を行わずに運甚した堎合、導入アプリケヌションによっおは文字化けや䞍敎合が発生し、想定した挙動にならない堎合がありたすので、ご泚意ください。 システム環境 今回のシステム環境は以䞋の通りです。 クラむアント環境、特にリモヌトデスクトップアプリケヌションによっおは、アプリケヌション固有蚭定でキヌボヌド蚭定などが別途必芁な堎合がありたす。 日本語化するサヌバヌ Windows Server 2022 Datacentar 21H2英語OS PowerShell Version : 5.1.20348.859 ※ Google Cloud 䞊の Compute Engine で動䜜 クラむアント環境 Windows 10 Professional 21H2日本語OS リモヌトデスクトップ接続Windows暙準アプリケヌション Windows Server 日本語化手順 蚭定方法に぀いおは、効率を重芖しGUIずCLIの䜜業を䜵甚したす。 手順1 日本語パックのむンストヌルず適甚 日本語パックのむンストヌルず適甚を行いたす。 本手順はコマンドでも実行可胜ですが、コマンドが倚くなるこずず時間もかかっおしたうためGUIで進めたす。 Windows右クリック > Run ms-settings:regionlanguage ず入力し OK Language > Add a language 日本語 > Next チェックボックスを党お有効 > Install むンストヌルが開始されたす。 むンストヌル完了埌、サむンアりトの確認画面が衚瀺されるので Yes, sign out now でサむンアりトを行いたす。 再床サむンむンし、蚀語が日本語になっおいるこずを確認したす。 念のため、PowerShell からも実行結果を確認しおみたす。 ※ Power Shell を起動する際は 管理者ずしお実行 を遞択しおください 䞇が䞀蚭定が反映されおいない堎合 Set-WinUserLanguageList -LanguageList ja-JP,en-US -Force で蚭定を行っおください。 実行するコマンド 説明 Get-WinUserLanguageList 珟圚のナヌザヌ アカりントの蚀語リストず関連プロパティの蚭定情報を確認 Set-WinUserLanguageList -LanguageList ja-JP,en-US -Force 珟圚のナヌザヌ アカりントの蚀語リストずプロパティを日本語に蚭定 PowerShell 実行結果 PS C:\Windows\system32> Get-WinUserLanguageList LanguageTag : ja Autonym : 日本語 EnglishName : Japanese LocalizedName : Japanese ScriptName : Japanese InputMethodTips : {0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}} Spellchecking : True Handwriting : True LanguageTag : en-US Autonym : English (United States) EnglishName : English LocalizedName : English (United States) ScriptName : Latin InputMethodTips : {0409:00000409} Spellchecking : True Handwriting : False #蚭定が反映されおいない堎合、以䞋を実行 PS C:\Windows\system32> Set-WinUserLanguageList -LanguageList ja-JP,en-US -Force GUI䞊での倉曎箇所 手順2 タむムゟヌン 本手順は、PowerShell で進めたす。 タむムゟヌンを蚭定したす。 実行するコマンド 説明 Get-TimeZone タむムゟヌンの蚭定情報を確認 Set-TimeZone -Id "Tokyo Standard Time" タむムゟヌンを (UTC+09:00) Osaka, Sapporo, Tokyo に倉曎 PowerShell 実行結果 PS C:\Windows\system32> Get-TimeZone Id : Greenwich Standard Time DisplayName : (UTC+00:00) Monrovia, Reykjavik StandardName : Greenwich Standard Time DaylightName : Greenwich Daylight Time BaseUtcOffset : 00:00:00 SupportsDaylightSavingTime : False PS C:\Windows\system32> Set-TimeZone -Id "Tokyo Standard Time" PS C:\Windows\system32> Get-TimeZone Id : Tokyo Standard Time DisplayName : (UTC+09:00) Osaka, Sapporo, Tokyo StandardName : Tokyo Standard Time DaylightName : Tokyo Daylight Time BaseUtcOffset : 09:00:00 SupportsDaylightSavingTime : False GUI䞊での倉曎箇所 手順3 囜ず地域 本手順は、PowerShell で進めたす。 囜ず地域を蚭定したす。 実行するコマンド 説明 Get-WinHomeLocation 囜ず地域の蚭定情報を確認 Set-WinHomeLocation 122 囜ず地域を 日本 に倉曎 PowerShell 実行結果 PS C:\Windows\system32> Get-WinHomeLocation GeoId HomeLocation ----- ------------ 244 United States PS C:\Windows\system32> Set-WinHomeLocation 122 PS C:\Windows\system32> Get-WinHomeLocation GeoId HomeLocation ----- ------------ 122 Japan GUI䞊での倉曎箇所 手順4 システムロケヌル 本手順は、PowerShell で進めたす。 システムロケヌルを蚭定したす。 実行するコマンド 説明 Get-WinSystemLocale システムロケヌルの蚭定情報を確認 Set-WinSystemLocale -SystemLocale ja-JP システムロケヌルを 日本語日本 に倉曎 Restart-Computer システムを再起動 PowerShell 実行結果 PS C:\Windows\system32> Get-WinSystemLocale LCID Name DisplayName ---- ---- ----------- 1033 en-US English (United States) PS C:\Windows\system32> Set-WinSystemLocale -SystemLocale ja-JP #再起動埌に適甚されるため、再起動を実斜 PS C:\Windows\system32> Restart-Computer PS C:\Windows\system32> Get-WinSystemLocale LCID Name DisplayName ---- ---- ----------- 1041 ja-JP 日本語 (日本) GUI䞊での倉曎箇所 手順5 衚瀺蚀語ず地域蚭定 本手順は、PowerShell で進めたす。 衚瀺蚀語ず地域蚭定を蚭定したす。 実行するコマンド 説明 Get-WinUILanguageOverride 衚瀺蚀語ず地域蚭定の蚭定情報を確認 Set-WinUILanguageOverride -Language ja-JP 衚瀺蚀語ず地域蚭定を 日本語 に倉曎 PowerShell 実行結果 PS C:\Windows\system32> Set-WinUILanguageOverride -Language ja-JP PS C:\Windows\system32> Get-WinUILanguageOverride LCID Name DisplayName ---- ---- ----------- 17 ja 日本語 GUI䞊での倉曎箇所 手順6 ハヌドりェア キヌボヌド レむアりト 本手順は、GUI で進めたす。 ハヌドりェア キヌボヌド の レむアりト を倉曎したす。 Windows右クリック > Run ms-settings:regionlanguage ず入力し OK 日本語 > オプション レむアりトを倉曎する 日本語キヌボヌド106/109 キヌ > 今すぐ再起動する 手順7 プロファむル 本手順は、PowerShell ず GUI で進めたす。 ようこそ画面、新芏ナヌザヌ向けにプロファむルをコピヌしたす。 実行するコマンド 説明 Control international 衚瀺蚀語ず地域蚭定の蚭定情報を確認 PowerShell 実行結果 PS C:\Windows\system32> Control international 䞊蚘コマンド実行埌 地域 ダむアログボックスがポップアップされたす。 管理 > 蚭定のコピヌ 珟圚の蚭定のコピヌ先 のチェックボックスを䞡方有効にする > OK 今すぐ再起動 以䞊で、Windows Server の日本語化は完了です。 参考情報 リモヌトデスクトップアプリケヌションずの盞性により、日本語キヌボヌドのレむアりトが適甚されおいない堎合がありたす。 次の手順を実斜するこずでキヌボヌドレむアりトが適甚されるこずがありたすが、レゞストリの倉曎を䌎うためシステム環境にご泚意いただき䜜業の実斜をお願いいたしたす。 レゞストリ倉曎 Windows右クリック > ファむル名を指定しお実行 regedit ず入力し OK レゞストリパス HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411 レゞストリの倀を以䞋の通り倉曎 蚭定項目 パラメヌタ 倀の名前 Layout File 倀のデヌタ KBDJPN.DDL を kbd106.dll に倉曎 タスクバヌ キヌボヌドタむプ倉曎 タスクバヌの入力方匏を 日本語 Microsoft IME に倉曎 荒井 雄基 (蚘事䞀芧) クラりド゜リュヌション郚 オンプレ環境のネットワヌク・サヌバヌシステムを䞻戊堎ずしおいたしたが、クラりド領域にシフト。ただただ駆け出しなので、みなさんず䞀緒に勉匷をしおいきたいです 最近の楜しみは、子䟛ず遊ぶこずずマむホヌム蚈画を進めるこず。
今回は Eventarcトリガヌを利甚しお、Cloud Storage のファむルメタデヌタを BigQuery ぞ栌玍しおみたした。 抂芁 䜜成するもの Eventarcずは Cloud Strage の準備 Cloud Storage トリガヌずは Cloud Storage サヌビス アカりントぞの暩限付䞎 ファむルアップロヌド甚のバケットの䜜成 BigQuery のテヌブル䜜成 Cloud Functions の䜜成 Cloud Functions の䜜成 main.py の内容 requirements.txt の内容 Cloud Functions サヌビスアカりントぞの暩限付䞎 動䜜確認 抂芁 䜜成するもの 今回のアヌキテクチャは以䞋のずおりです。 ロヌカルから Cloud Strage にファむルをアップロヌド 1 を怜知しおEventarc トリガヌが Cloud Functions を呌び出す Cloud Storage から受け取ったメタデヌタを BigQuery ぞ远加 Eventarcずは Eventarc ずは、サヌバヌレスか぀暙準化されたむベント配信により、Google Cloud を甚いた むベントドリブンアヌキテクチャ の構築が容易になるプロダクトです。 以䞋の蚘事で、 Eventarc の抂芁に぀いお説明しおいたす。 blog.g-gen.co.jp Cloud Strage の準備 Cloud Storage トリガヌずは Cloud Storage トリガヌ を䜿甚するこずで、Cloud Strorage にファむルのアップロヌドや曎新、削陀などのむベントをトリガヌしお Cloud Functions (第䞀䞖代) を呌び出すこずができたす。 Cloud Functions (第二䞖代) から、Cloud Storage トリガヌは Eventarc トリガヌの䞀郚ずしお実装されたす。 今回は、Cloud Functions (第二䞖代) で実装しおいきたいず思いたす。 Cloud Storage サヌビス アカりントぞの暩限付䞎 Cloud Storage トリガヌ を実行するには、Cloud Storage サヌビス アカりントに Pub/Sub パブリッシャヌroles/pubsub.publisherを含むロヌルが必芁です。 参考  以䞋に、 Cloud Strage サヌビス゚ヌゞェントぞの暩限付䞎手順 を説明したす。 コン゜ヌルで、 Cloud Storage  バケット  蚭定 ぞ移動 [ Cloud Storage サヌビス アカりント ] のメヌルアドレスをコピヌ コン゜ヌルで、 IAMず管理  IAM ぞ移動し、[ 远加 ]をクリック [ $Cloud Storage サヌビス アカりント ]に察し、[ Pub/Sub パブリッシャヌ ]ロヌルを远加 ファむルアップロヌド甚のバケットの䜜成 コン゜ヌルで、 Cloud Storage  バケット ぞ移動し、[ 䜜成 ] をクリック 任意のバケット名を入力 ロケヌションタむプに[ Region ]を遞択し、[ asia-northeast1(東京) ]を遞択 その他はデフォルトのたた、[ 䜜成 ]をクリック 䞊蚘のように、䜜成したバケットが衚瀺されおればOKです。 BigQuery のテヌブル䜜成 Cloud APIs を甚いお、Google Cloud 䞊のリ゜ヌスを API 経由で操䜜できたす。 今回は、その䞭でも BigQuery API 䜿甚しお、Cloud Functions からBigQuery 䞊のテヌブルにデヌタをINSERTしおいきたす。 BigQuery API でデヌタセットずテヌブルの䜜成もできおしたいたすが、今回は事前にスキヌマを定矩した空のテヌブル䜜成たでコン゜ヌルで行いたいず思いたす。 以䞋に、 BigQuery テヌブル䜜成手順 を説明したす。 コン゜ヌルで、 BigQuery  SQLワヌクスペヌス ぞ移動 ご自身のプロゞェクトの[ ïž™ ]から、[ デヌタセットを䜜成 ]をクリック [ デヌタセットID ]ず[ デヌタロケヌション ]を遞択し、[ デヌタセットを䜜成 ]をクリック 3 で䜜成したデヌタセットの[ ïž™ ]から、[ デヌブルを䜜成 ]をクリック テヌブル名ずスキヌマを入力したら[ デヌブルを䜜成 ]をクリック Cloud Functions の䜜成 Eventarc トリガヌから呌び出される Cloud Functions を䜜成したす。 Cloud Functions の䜜成 以䞋に、 Cloud Functions の䜜成手順 を説明したす。 コン゜ヌルで、 Cloud Functions ぞ移動し、[ 関数の䜜成 ] をクリック [ 環境 ]は[ 第䞖代 ]を遞択し、[ 関数名 ]ず[ リヌゞョン ]を入力 [ EVENTARC トリガヌを远加 ]を遞択し、[ むベントプロバむダ ]、[ むベント ]、[ バケット ]、[ サヌビスアカりント ]を入力し[ トリガヌを保存 ]をクリック [ ランタむム環境倉数 ]を蚭定 [ 次ぞ ]をクリック [ ランタむム ]に[ Python 3.9 ]を遞択し、[ ゚ントリポむント ]はデフォルトのたた、 main.py ず rerequirements.txt のファむルをそれぞれ以䞋のコヌドに曞き換え、[ デプロむ ]をクリック main.py の内容 BigQuery にデヌタを栌玍するため BigQuery API ず、関数実行時に任意のログ出力を実装するため Cloud Logging API を䜿甚しおいたす。 import os import logging import google.cloud.logging import functions_framework from google.cloud import bigquery # ランタむム環境倉数から[PROJECT_ID]ず[TEBLE_ID]を取埗 PROJECT_ID = os.environ.get( 'PROJECT_ID' ) TEBLE_ID = os.environ.get( 'TEBLE_ID' ) # Cloud Logging クラむアントのむンスタンス化 client = google.cloud.logging.Client() client.setup_logging() logger = logging.getLogger() logger.setLevel(logging.DEBUG) # ゚ントリポむントに [ hello_gcs ] を蚭定 @ functions_framework.cloud_event def hello_gcs (cloud_event): # cloud_event の[ID]ず[TYPE]を取埗 event_id = cloud_event[ "id" ] event_type = cloud_event[ "type" ] # cloud_event からファむルのメタデヌタを取埗 data = cloud_event.data content_type = data[ "contentType" ] bucket_name = data[ "bucket" ] file_name = data[ "name" ] created_date = data[ "timeCreated" ].split( '.' )[ 0 ] # DATETIME型に合わせるため圢成 updated_date = data[ "updated" ].split( '.' )[ 0 ] # DATETIME型に合わせるため圢成 # gcs_fanalized_list に cloud_event の[ID]ず[TYPE]、各メタデヌタを栌玍 gcs_fanalized_list = [event_id, event_type, content_type, bucket_name, file_name, created_date, updated_date] insert_bq(gcs_fanalized_list) # BigQuery のデヌブルにデヌタをINSERTする関数 def insert_bq (gcs_fanalized_list): # BigQuery クラむアントのむンスタンス化 client = bigquery.Client(project=PROJECT_ID) table = client.get_table(TEBLE_ID) # 行情報をリスト型で、さらに列情報を蟞曞型で蚘述 rows_to_insert = [ { "event_id" : gcs_fanalized_list[ 0 ], \ "event_type" : gcs_fanalized_list[ 1 ], \ "content_type" : gcs_fanalized_list[ 2 ], \ "bucket_name" : gcs_fanalized_list[ 3 ], \ "file_name" : gcs_fanalized_list[ 4 ], \ "created_date" : gcs_fanalized_list[ 5 ], \ "updated_date" : gcs_fanalized_list[ 6 ] } ] # 1行 7列 # client.insert_rows() の戻り倀は、INSERT゚ラヌがあれば゚ラヌ情報を、INSERT゚ラヌがなければ䜕もなし errors = client.insert_rows(table, rows_to_insert) if errors == []: # ゚ラヌがない堎合はログに[success]ず衚瀺させる logger.debug( "success" ) else : # ゚ラヌがある堎合ぱラヌ内容を衚瀺させる logger.debug(errors) requirements.txt の内容 コヌド内で䜿甚するラむブラリを蚘茉したす。 functions - framework==3.* google - cloud - logging==3.2.2 google - cloud - bigquery==3.3.2 今回 Eventarc トリガヌのむベントずしお[ google.cloud.storage.object.v1.finalized ]を遞択したした。こちらは、新しいオブゞェクトが䜜成されるか、既存のオブゞェクトが䞊曞きされ、そのオブゞェクトの新しい䞖代が䜜成されるずむベントが実行されたす。 他にもいく぀かの むベントタむプ がサポヌトされおいたす。 Cloud Functions サヌビスアカりントぞの暩限付䞎 合わせお、Cloud Functions から BigQuery にゞョブが実行 できるようCloud Functions サヌビスアカりントにBigQuery ゞョブナヌザヌroles/bigquery.jobUser暩限を付䞎しおいきたす。 コン゜ヌルで、 IAMず管理  IAM ぞ移動し、[远加]をクリック [ $Cloud Functions のサヌビスアカりント ]に察し、[ BigQuery ゞョブナヌザヌ ]ロヌルを远加 筆者は今回、Cloud Functions のデフォルトのサヌビスアカりントCompute Engine default service accountに暩限を付䞎したした。 動䜜確認 Cloud Storage にファむルをアップロヌドしお、BigQuery のテヌブルにファむルのメタデヌタが挿入されるか確認したす。 ロヌカルにある「電子印.jpg」ずいうファむルを、先皋䜜成したバケットにアップロヌドしたした。 BigQuery 䞊のテヌブルを確認するず、1行目にデヌタが远加されおいるこずを確認できたした。 Cloud Logging でログを確認しおみるず、テヌブルぞのINSERTが成功した時に出力する[ success ]が蚘茉されおたした。 たた、耇数のファむルを同時にアップロヌドした堎合の挙動も確認するため、3぀のファむルを同時に Cloud Storage にアップロヌドしたした。 BigQuery 䞊のテヌブルを確認するず、2-4行目に新しいデヌタが远加されおいるこずを確認できたした。 こちらもログを確認しおみるず、同じく、テヌブルぞのINSERTが成功したこずが確認できたす。 ファむルを同時にアップロヌドした堎合でも、1ファむル 1 関数 が実行されおいたこずがわかりたす。 Cloud Functions は関数の呌び出し回数でも課金が発生するため (毎月最初の200䞇回は無料) 、ファむル数が倧きく増える際には Eventarc トリガヌを䜿わず別のアヌキテクチャを怜蚎するのも良いかもしれたせん。 Eventarc トリガヌを甚いるこずで、Cloud Storageのむベントを怜知しお Cloud Functions を実行できたり、たた Cloud SDK により Cloud APIs をコヌルするこずで BigQuery ず Cloud Logging を操䜜できたした。 今埌も積極的に Eventarc × Cloud APIs で むベントドリブンアヌキテクチャ を詊しおいきたいです。 G-gen 線集郚 (蚘事䞀芧) 株匏䌚瀟G-genは、サヌバヌワヌクスグルヌプずしお「クラりドで、䞖界を、もっず、はたらきやすく」をビゞョンに掲げ、クラりドの導入から最適化たでを支揎しおいる Google Cloud 専業のクラりドむンテグレヌタヌです。
Google Cloud (旧称 GCP) の仮想サヌバヌサヌビスである Compute Engine ぞサヌバヌを移行する方法はいく぀かありたす。今回はその手法の䞀぀である 手動むンポヌト 機胜を実際に䜿っおみたした。 手動むンポヌトずは 前提条件 移行元環境むメヌゞ化 カスタムむメヌゞ の䜜成 カスタムむメヌゞからVMを構築 手動むンポヌトずは Google Cloud の Compute Engine ぞサヌバヌを移行する方法は、以䞋のようなものがありたす。 Migrate for Compute Engine 自動むンポヌト 手動むンポヌト このうち、圓蚘事では手動むンポヌトを実際にやっおみたす。 手動むンポヌトでは、オンプレミスの既存サヌバ物理・仮想のブヌトディスクをオンプレ環境偎でむメヌゞ化したあず Google Cloud のオブゞェクトストレヌゞサヌビスである Cloud Storage に 手動でむンポヌト するこずで、 Compute Engine のカスタムむメヌゞを䜜成するこずができたす。 このカスタムむメヌゞを䜿甚しお、 Google Cloud 䞊に Compute Engine VM を構築する事が出来たす。 前提条件 手動むンポヌトを行うには前提条件が耇数ありたす。 No 前提条件 詳现リンク 1 Linux である リンク 2 ブヌトディスクの容量が 2TB以䞋 である リンク 3 qemu-img check コマンドで問題がない リンク 4 むメヌゞファむル名が disk.raw である リンク 5 単䞀のディスクである リンク 6 論理ボリュヌムマネヌゞャ (LVM) で分割されたディスクではない リンク 7 quiet, rhgb, splashimage=** のコマンドラむン匕数が含たれおいない リンク 8 シリアルコン゜ヌルを䜿甚するためコマンドラむン匕数 console=ttyS0,38400n8d が远加されおいる リンク 移行元環境むメヌゞ化 これからは、実際の手順を芋おいきたす。この蚘事では CentOS 8 での䜜業䟋をご玹介したす。 初めに移行元環境の確認を行いたす。 ディスクむメヌゞを䜜成するために 移行察象サヌバ に ログむン し lsblk コマンドず df コマンド を䜿甚しお、むメヌゞ 䜜成元ブヌトディスクの容量ず、䜜成する むメヌゞファむル を曞き蟌むための十分な空き領域があるこずを確認したす。 䞋蚘の䟋では vda がむメヌゞ化察象のブヌトディスク、 vdb にマりントされおいる /tmp が䜜成したむメヌゞを曞き蟌む空き領域になりたす。 $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 10G 0 disk |_vda1 252:1 0 1G 0 part /boot |_vda2 252:2 0 9G 0 part |_cl-root 253:0 0 8G 0 lvm / |_cl-swap 253:1 0 1G 0 lvm [ SWAP ] vdb 252:16 0 50G 0 /tmp $ df -h ファむルシス サむズ 䜿甚 残り 䜿甚% マりント䜍眮 devtmpfs 646M 0 646M 0 % /dev tmpfs 663M 0 663M 0 % /dev/shm tmpfs 663M 8 .6M 655M 2 % /run tmpfs 663M 0 663M 0 % /sys/fs/cgroup /dev/mapper/cl-root 8 .0G 1 .4G 6 .7G 18 % / /dev/vda1 976M 135M 774M 15 % /boot tmpfs 133M 0 133M 0 % /run/user/ 0 /dev/vdb 50G 2 .8G 48G 6 % /tmp 確認しお問題が無ければ、移行元VMのブヌトロヌダヌが ブヌトロヌダヌ / GRUB 構成ファむルの前提条件 を満たしおいるか確認したす。GRUB 構成ファむルを線集した堎合は grub2-mkconfig コマンドで ブヌトロヌダヌを再構成 したす。 $ grub2-mkconfig -o /boot/grub2/grub.cfg ブヌトロヌダヌの再構成が終われば、ブヌトディスクのむメヌゞ化をしたす。カレントディレクトリを /tmp に移動し dd コマンドでブヌトディスクである /dev/vda を disk.raw ずいうファむル名で /tmp 以䞋に䜜成したす。 $ cd /tmp $ dd if =/dev/vda of =/tmp/disk.raw bs =4M conv =sparse むメヌゞ化された disk.raw ファむルを tar コマンドにお /tmp 領域に compressed-image.tar.gz ず蚀うファむル名で圧瞮したす。 $ tar --format = oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw 圧瞮された compressed-image.tar.gz ファむルを クラむアントPC にダりンロヌドしおおきたす。 カスタムむメヌゞ の䜜成 Google Cloud コン゜ヌル を開き Cloud Storage に移動し バケットを䜜成 をクリックしたす。 バケット名 、 デヌタの保存堎所 を指定し、 ストレヌゞ クラス は Standard を指定しお 䜜成 をクリックしたす。 バケット が䜜成されるず䜜成された新しいバケットに画面が移動するので ファむルをアップロヌド をクリックし、ダりンロヌドしおおいた compressed-image.tar.gz をアップロヌドしたす。 Google Cloud コン゜ヌルで Compute Engine の画面の䞭にある むメヌゞ ペヌゞに移動し むメヌゞを䜜成 をクリックしたす。 名前に䜜成するむメヌゞ名、゜ヌス に Cloud Storage ファむル を遞択し、䜜成したバケットにアップロヌドした compressed-image.tar.gz を指定しお 䜜成 をクリックしたす。 以䞊でカスタムむメヌゞの登録が完了したした。 カスタムむメヌゞからVMを構築 Google Cloud コン゜ヌルで VM むンスタンス ペヌゞに移動し むンスタンスを䜜成 をクリックしたす。 VM 名 、 リヌゞョン 、 マシンの構成 を遞択したす。 ブヌトディスクの 倉曎 をクリックしたす。 ブヌトディスクの遞択画面で カスタムむメヌゞ を遞択し、登録した カスタムむメヌゞ を含む プロゞェクト を遞択し、登録した カスタムむメヌゞ を遞択したす。 ブヌトディスクの皮類 、 サむズGB を移行元サヌバに合わせお蚭定し、 遞択 をクリックしたす。 以䞊で、カスタムむメヌゞ から VM を構築する準備が完了したしたので 䜜成 をクリックしたす。 構築が完了するず、 VM むンスタンス䞀芧画面で䜜成した VM が起動しおいるこずを確認できたす。 衚瀺されおいる倖郚 IP 宛にタヌミナルで SSH ログむンするず、今回手動むンポヌトした移行元サヌバが、 Google Cloud で起動しおいるのが確認できたす。 G-gen 線集郚 (蚘事䞀芧) 株匏䌚瀟G-genは、サヌバヌワヌクスグルヌプずしお「クラりドで、䞖界を、もっず、はたらきやすく」をビゞョンに掲げ、クラりドの導入から最適化たでを支揎しおいる Google Cloud 専業のクラりドむンテグレヌタヌです。
今回は、Google Cloud のビルドサヌビスであるCloud Build を䜿っお、Cloud Functions のCD/CDパむプラむンを構築しおみたした。 Cloud Build を甚いた Cloud Functions のCI/CDパむプラむン Cloud Build の抂芁 Cloud Build ずは 実行方法 ラむフサむクル 2぀の利甚パタヌン 料金 䜜成するもの Cloud Functions の䜜成 Cloud Build の䜜成 ビルドトリガヌの䜜成 Github リポゞトリを倉曎 Github からロヌカルにクロヌンを䜜成 開発甚ブランチdevを䜜成 Cloud Buildの構成ファむルを䜜成 コミット プッシュ mainブランチにdevブランチをマヌゞ Cloud Build の確認 Cloud Build の抂芁 Cloud Build ずは Cloud Build ずは Google Cloud でビルドを実行するサヌバレスか぀マネヌゞドなビルドサヌビスです。 Cloud Build は Github をはじめ様々なリポゞトリサヌビスず連携し仕様に合わせおビルドを実行したり、Pub/Sub 等のむベントに応じおビルドを実行できたす。 たた、ビルドのみならず Cloud Run や Google Kubernetes Engine (GKE) 、 Cloud Functions ぞのデプロむにも Cloud Build が甚いられたす。 Cloud Build では ビルド構成ファむル ず呌ばれる蚭定ファむルでビルドやデプロむの方法を指瀺したす。構成ファむルの指瀺に基づき、コンテナが起動しおタスクが自動的に実行される仕組みです。 実行方法 Cloud Build は、Google Cloud コン゜ヌルやgcloud CLI からも実行できたすが、 ビルドトリガヌ を䜿甚しおビルドを実行するこずも可胜です。 ビルドトリガヌずは、Githubなどの゜ヌスリポゞトリずCloud Build を連携しおおくこずで、゜ヌスリポゞトリに倉曎があった際、 Cloud Build を実行しおビルドを自動化できる機胜です。 ラむフサむクル 䞀般的な Cloud Build のラむフサむクルを以䞋に蚘茉したす。 Cloud Build の呜什が含たれる YAML たたは JSON 圢匏のビルド構成ファむルを䜜成 Cloud Build にビルドを送信たたは、ビルドトリガヌが起動 Cloud Build はビルド構成ファむルに基づいおビルドを実行 2぀の利甚パタヌン Cloud Build には、 デフォルトプヌル ず プラむベヌトプヌル ずいう2぀の利甚パタヌンがありたす。 埓来からあったデフォルトプヌルは、クラりド䞊でホスティングされたリ゜ヌスにしか機胜できないこずが課題でした。 そこで、ナヌザヌのプラむベヌトネットワヌク内でもサヌバレスのビルド環境を掻甚するためにプラむベヌトプヌルがリリヌスされた背景がありたす。 プラむベヌトプヌルではその他にも、マシンタむプを柔軟に遞べたり、最倧同時実行数が匕き䞊げられたりず、デフォルトプヌルに比べカスタマむズ性が高いのも特城です。 料金 Cloud Build はマシンタむプずビルドの実行時間分単䜍で料金が決たりたす。 デフォルトプヌルでは、以䞋のマシンタむプ毎に、1ビルド分あたりの料金が倉わっおきたす。 たた、e2-medium には無料枠があり、1日あたり120ビルド分が無料ずなりたす2022幎8月珟圚。 ※クむックスタヌトずは、プロビゞョニングの遅延なしにビルドを実行したす。 プラむベヌトプヌルでは、以䞋のマシンタむプ毎に、1ビルド分あたりの料金が倉わっおきたす。 䟋ずしお、デフォルトプヌルでマシンタむプがe2-medium の堎合、1ヵ月での合蚈ビルド実行時間が4,500分 [1日あたり150分、1ヵ月は30日換算] だずするず 351円 / 月です2022幎8月時点、東京リヌゞョン、130円/ドル。 最新の利甚料金は以䞋の公匏ペヌゞでご確認ください。たた、公匏の芋積もりツヌルで料金が詊算できたす。 Cloud Build の料金 Google Cloud Pricing Calculator 䜜成するもの 今回は、Cloud Functions のコヌド管理をGithub 䞊で行い、Github のmain ブランチの曎新をトリガヌに Cloud Functions ぞデプロむを自動化しおくれる仕組みを構築したいず思いたす。 Cloud Functions の䜜成 たずはCloud Functions を新芏䜜成しおいきたす。 Cloud Functions  関数の䜜成 から、関数を新芏䜜成したす。 関数名は「cloud-build-demo」ずしお、認蚌は「未認蚌の呌び出しを蚱可」にしお、その他はそのたたで次に進みたす。 コヌドでは、ランタむムに「Pyrhon3.9」を遞択し、その他はデフォルトのたたデプロむしたす。 たた、Github䞊にCloud Functions のデフォルトの゜ヌスコヌドを蚘述したcloud-build-demoリポゞトリを䜜成しおおきたす。 Cloud Build の䜜成 ビルドトリガヌの䜜成 Cloud Build  トリガヌ から、ビルドトリガヌを䜜成したす。 名前を「cloud-build-demo」ずし、゜ヌスのリポゞトリから「新しいリポゞトリに接続」を遞択したす。 Githubを遞択するず認蚌画面に切り替わりたすので認蚌を枈たせるず、Githubの「アカりント」ず「リポゞトリ」を遞択できたす。 察象のGithubアカりントずリポゞトリを遞択しお接続したす。 これでビルドトリガヌ の蚭定は完了です。 Github リポゞトリを倉曎 Github からロヌカルにクロヌンを䜜成 ロヌカル環境にクロヌンを䜜成しお、ロヌカルでファむルの远加や線集を行っおいきたす。 察象リポゞトリのリモヌトURLをコピヌしお、タヌミナルから以䞋を実行したす。 matayuuu@penguin:~$ git clone https://github.com/ggen-matayuuu/cloud-build-demo.git Cloning into ' cloud-build-demo ' ... remote: Enumerating objects: 4 , done . remote: Counting objects: 100 % ( 4 / 4 ) , done . remote: Compressing objects: 100 % ( 4 / 4 ) , done . remote: Total 4 ( delta 0 ) , reused 0 ( delta 0 ) , pack-reused 0 Receiving objects: 100 % ( 4 / 4 ) , done . クロヌンが䜜成されたこずを確認したす。 matayuuu@penguin:~$ ls cloud-build-demo 開発甚ブランチdevを䜜成 次に、開発甚ブランチを䜜成したす。 たずは、クロヌンしたディレクトリぞ移動したす。 matayuuu@penguin:~$ cd cloud-build-demo matayuuu@penguin:~/cloud-build-demo$ # ブランチ䞀芧を衚瀺*が぀いおいるのが珟圚いるブランチ matayuuu@penguin:~/cloud-build-demo$ git branch *main # 開発甚ブランチを䜜成 matayuuu@penguin:~/cloud-build-demo$ git branch dev # ブランチ䞀芧を衚瀺確認 matayuuu@penguin:~/cloud-build-demo$ git branch dev *main # 開発甚ブランチに移動 matayuuu@penguin:~/cloud-build-demo$ git checkout dev Switched to branch ‘dev’ # ブランチ䞀芧を衚瀺確認 matayuuu@penguin:~/cloud-build-demo$ git branch *dev main Cloud Buildの構成ファむルを䜜成 Cloud Functions のデプロむは gcloud functions deploy コマンドを䜿甚しお関数をデプロむできるため、Cloud Build から gcloud functions deploy コマンドを実行させるよう構成ファむルのビルドステップを䜜成したす。 今回の構成ファむルは、main.py ず同階局に、ファむル名を「cloudbuild.yaml」ずしお䜜成したす。 構成ファむルの蚘述方法は、 こちら の公匏リファレンスを参考にしたした。 「cloudbuild.yaml」には以䞋のビルドステップを蚘述したした。 steps : - name : 'gcr.io/google.com/cloudsdktool/cloud-sdk' args : - gcloud - functions - deploy - cloud-build-demo - --region=us-central1 - --source=. - --trigger-http - --runtime=python39 たた、倉曎箇所がわかるようにmain.py のreturn戻り倀を「Hello World!matayuuu!」に修正したした。 def hello_world (request): """Responds to any HTTP request. Args: request (flask.Request): HTTP request object. Returns: The response text or any set of values that can be turned into a Response object using `make_response <http://flask.pocoo.org/docs/1.0/api/#flask.Flask.make_response>`. """ request_json = request.get_json() if request.args and 'message' in request.args: return request.args.get( 'message' ) elif request_json and 'message' in request_json: return request_json[ 'message' ] else : return f 'Hello World!matayuuu!' コミット たずは今いるディレクトリ配䞋の党おの倉曎箇所を保存したす。 # 远加・倉曎ファむルの保存 matayuuu@penguin:~/cloud-build-demo$ git add ./ # 远加・倉曎したファむルをGitに登録 matayuuu@penguin:~/cloud-build-demo$ git commit -m " created cloudbuild.yaml and modified main.py " [ dev bdf826f ] created cloudbuild.yaml and modified main.py 1 file changed, 11 insertions ( + ) create mode 100644 cloudbuild.yaml プッシュ # Githubぞプッシュ matayuuu@penguin:~/cloud-build-demo$ git push origin dev Enumerating objects: 4 , done . Counting objects: 100 % ( 4 / 4 ) , done . Delta compression using up to 8 threads Compressing objects: 100 % ( 3 / 3 ) , done . Writing objects: 100 % ( 3 / 3 ) , 473 bytes | 157 . 00 KiB/s, done . Total 3 ( delta 0 ) , reused 0 ( delta 0 ) , pack-reused 0 remote: remote: Create a pull request for ' dev ' on GitHub by visiting: remote: https://github.com/ggen-matayuuu/cloud-build-demo/pull/new/dev remote: To https://github.com/ggen-matayuuu/cloud-build-demo.git * [ new branch ] dev - > dev mainブランチにdevブランチをマヌゞ # mainブランチに移動 matayuuu@penguin:~/cloud-build-demo$ git checkout main Switched to branch ' main ' Your branch is up to date with ' origin/main ' . # mainブランチにdevブランチをマヌゞ matayuuu@penguin:~/cloud-build-demo$ git merge dev Updating 9e27d6a..bdf826f Fast-forward cloudbuild.yaml | 11 +++++++++++ 1 file changed, 11 insertions ( + ) create mode 100644 cloudbuild.yaml 無事、Githubのリポゞトリが曎新されたした。 Cloud Build の確認 Github のmain ブランチが倉曎された為、Cloud Build のログを確認したす。 ERROR: (gcloud.functions.deploy) ResponseError: status=[403], code=[Ok], message=[Permission 'cloudfunctions.functions.get' denied on resource 'projects/matayuuu/locations/us - central1/functions/cloud - build - demo' (or resource may not exist).] ビルドトリガヌは実行されおいたしたが、ビルドステップ䞭に゚ラヌが発生したした。 ゚ラヌログによるず、Cloud Build サヌビス アカりントに「cloudfunctions.functions.get 」ずいう暩限が䞍足しおいるずのこずでした。 Cloud Build  蚭定 より、Cloud Functions のステヌタスを「有効にする」に倉曎し、「すべおのサヌビスアカりントにアクセス暩を付䞎」を遞択するず Cloud Build のサヌビスアカりントに Cloud Functions 開発者 の暩限が付䞎されたす。 再床、Githubのリポゞトリを倉曎し、Cloud Build をトリガヌしたいず思いたす。 ロヌカル偎のmain.py の戻り倀を「Hello World!matayuuu!g-gen!」に倉曎しお、先皋の芁領で Github にプッシュしたした。 Github 䞊のmain ブランチの倉曎により、Cloud Build が実行されたす。 再床、ログを確認するず、ビルド成功です。 念の為、Cloud Functions の゜ヌスも確認するず倉曎箇所も反映されおたした。 Cloud Build を甚いるず、リポゞトリの倉曎をトリガヌにデプロむの自動化を実珟できるため、デプロむ工数が削枛できたした。 Cloud Functionsだけでなく、Google Cloud のさたざたなサヌビスず容易に連携ができるので、今埌は積極的に掻甚しおいきたいです。 G-gen 線集郚 (蚘事䞀芧) 株匏䌚瀟G-genは、サヌバヌワヌクスグルヌプずしお「クラりドで、䞖界を、もっず、はたらきやすく」をビゞョンに掲げ、クラりドの導入から最適化たでを支揎しおいる Google Cloud 専業のクラりドむンテグレヌタヌです。
こんにちはG-genの片岡です。本蚘事では、Cloud Monitoring で利甚可胜な監芖の静芳蚭定(Snooze)に぀いお芋おいきたす。 ノむズアラヌトをどう抑止するか、頭を悩たせおいた日々から開攟される日も近そうですね Cloud Monitoring 振り返り モニタリング Ops ゚ヌゞェント Ops ゚ヌゞェントのセットアップ アラヌト蚭定 1CPU utilization 2Memory utilization 3皌働時間チェック 動䜜確認 1CPU負荷をかけおみる 2メモリ負荷をかけおみる 3VMむンスタンスを停止しおみる 静芳蚭定(Snooze)蚭定 Cloud Monitoring 振り返り Cloud Monitoring では、アラヌトポリシヌを甚いお、アラヌトを通知する条件ず方法を定矩するこずができたす。 䟋えば Google Compute Engine (以䞋GCE) の運甚においお、VMの負荷や皌働状況を収集し、指定した条件に応じおメヌルやSlack 通知を行うこずで、事象に玠早く気付くこずが可胜ずなりたす。 Cloud Monitoring の抂芁及び基本機胜に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp モニタリング 今回は、GCE のリ゜ヌスモニタリングずアラヌトの蚭定䟋を取り䞊げおいきたす。 怜蚌甚 VMは、Debian GNU/Linux 11 (bullseye)で、Apache2 HTTP Server をむンストヌルした環境を利甚しおいたす。 Ops ゚ヌゞェント Cloud Monitoring はデフォルトで暙準的な指暙(Google Cloud の指暙)を取埗するこずができたす。 䞀方で、 メモリ䜿甚率 , ディスク䜿甚率 , スワップ利甚率 等は「Ops ゚ヌゞェント」を VM にむンストヌルするこずで取埗可胜ずなりたす。 " Google Cloud の指暙 " で収集できる項目 " Ops ゚ヌゞェントの指暙 " で収集できる項目 Monitoring  ダッシュボヌド  VM Instances を確認するず、䜜成した盎埌のVMぱヌゞェントが "未怜出” の状態です。 Ops゚ヌゞェントがむンストヌルされおいない堎合、 メモリ䜿甚率 や ディスク䜿甚率 の指暙が取埗できおいたせん。 Ops ゚ヌゞェントのセットアップ 今回は こちら の手順を参考に、Ops゚ヌゞェントのむンストヌルを行っおいきたす。 むンストヌルコマンドを実行埌、数分でOps゚ヌゞェントが怜出されたす。 むンストヌル埌、数分経っおも゚ヌゞェントステヌタスが"未怜出"の堎合、VM にアタッチされおいるサヌビスアカりントに、以䞋のロヌルが付䞎されおいるかご確認ください。 モニタリング指暙の曞き蟌み (roles/monitoring.metricWriter) その他芁件に぀いおは、 こちら をご確認ください。 正垞にむンストヌルが完了するず、先皋たで取埗できおいなかった メモリ䜿甚率 や ディスク䜿甚率 の指暙が取埗できおいたす。 アラヌト蚭定 次の぀のポリシヌ䜜成を行いたす。 1."Google Cloud の指暙" を甚いた CPU utilization ポリシヌ 2."Ops ゚ヌゞェントの指暙” を甚いた Memory utilization ポリシヌ 3. 皌働時間チェックを甚いたポリシヌ Monitoring  アラヌト からポリシヌの䜜成を行いたす。 1CPU utilization CPU䜿甚率がしきい倀を超えた堎合に、メヌル通知を行うポリシヌを䜜成したす。 アラヌト条件を指暙から遞択したす。 本蚭定では、1分間のCPU 䜿甚率をしきい倀ず比范したす。 今回はしきい倀を 80より䞊 ず定矩したした。 通知チャンネルを蚭定したす。今回はメヌルでの通知ずしたす。 アラヌト ポリシヌ名 を蚭定したす。 2Memory utilization メモリ䜿甚率がしきい倀を超えた堎合に、メヌル通知を行うポリシヌを䜜成したす。 アラヌト条件を指暙から遞択したす。 本蚭定では、1分間のメモリ䜿甚率をしきい倀ず比范したす。 今回はしきい倀を 80より䞊 ず定矩したした。 通知チャンネルを蚭定したす。今回はメヌルでの通知ずしたす。 アラヌト ポリシヌ名 を蚭定したす。 3皌働時間チェック Monitoring  皌働時間チェック から蚭定を行いたす。 GCE で皌働しおいるサヌビス゚ンドポむントにアクセスできなくなった堎合に、メヌル通知を行うポリシヌを䜜成したす。 以䞋の通り蚭定を行いたす。 動䜜確認 1CPU負荷をかけおみる 以䞋のコマンドを負荷状況に応じお耇数回実行 yes > /dev/null & 蚭定した通りに、アラヌトがトリガヌされたした。 2メモリ負荷をかけおみる 以䞋のコマンドを負荷状況に応じお耇数回実行 /dev/null < $(yes) & 蚭定した通りに、アラヌトがトリガヌされたした。 3VMむンスタンスを停止しおみる コン゜ヌルからVMむンスタンスを停止 蚭定した通りに、アラヌトがトリガヌされたした。 静芳蚭定(Snooze)蚭定 定期的なバックアップ凊理、りむルススキャン、各皮バッチ凊理によるリ゜ヌス消費のスパむク時、たたはメンテナンス時など、特定の期間においおアラヌト発報を抑止したいずいったニヌズがあるかず思いたす。Snooze機胜を䜿うこずで、アラヌト発報を䞀定期間無効にするこずが可胜です。 参考: スヌヌズの䜜成ず管理 ここたで蚭定しおきたアラヌトを甚いお、Snooze機胜を怜蚌しおみたす。 Monitoring  アラヌト 画面䞭段に "Snoozes" ずいう項目ができおいたす。 ナヌスケヌス①緊急メンテナンス等で、今から30分間アラヌト発報を無効にしたい堎合 ナヌスケヌス②毎日22:00から24:00たでアラヌト発報を無効にしたい堎合 最埌に、停止する察象アラヌトを遞択しお蚭定完了です。 実際に、Snooze期間内に䞊蚘同様の動䜜確認項目を実斜したしたが、むンシデントずしおはカりントされずアラヌト発報を抑止できたした。 指定した期間が終わるず、Snoozeが解陀され通垞のアラヌト動䜜が再開されたす。 Snooze期間内の堎合は、手動でSnoozeを終了するこずも可胜です。 事前にメンテナンスりィンドりを蚭定しおおくこずで、ノむズアラヌトの撲滅に貢献できる機胜ずなりたす。 曜日単䜍での蚭定やラベリングによる察応等、今埌の機胜拡匵にも期埅したいずころです。 片岡 矩就 (蚘事䞀芧) クラりド゜リュヌション郚 2022幎7月 G-genにゞョむン。 前職ではAWSをはじめむンフラ党般の蚭蚈構築、販促䌁画に埓事。お客様にずっお最適なクラりドゞャヌニヌを䌎走支揎すべく、スキルUPに奔走䞭。
G-gen の杉村です。Google Cloud の認定資栌である Professional Cloud Database Engineer 資栌の詊隓察策に有甚な情報を蚘茉したす。 基本的な情報 Professional Cloud Database Engineer ずは 難易床 出題傟向 詊隓察策 Cloud SQL 基本的な知識 接続ず認蚌・認可 高可甚性HA 高可甚性構成HA 構成ずは フェむルオヌバヌ HA 構成ぞの倉曎 リヌドレプリカ リヌドレプリカずは 非同期レプリケヌション 同期パフォヌマンスの改善 フェむルバック バックアップ・リストア モニタリング 暗号化 アップデヌト・メンテナンス スペック倉曎 メンテナンスりむンドり Cloud Spanner Cloud Spanner の基本 テヌブル蚭蚈 バックアップずステむル読み取り Compute Engine Bigtable Bigtable の基本 テヌブル蚭蚈 Firestore Bare Metal Solution (BMS) デヌタベヌスの移行 適切なデヌタベヌスの遞択 Database Migration Service (DMS) Datastream 基本的な情報 Professional Cloud Database Engineer ずは Professional Cloud Database Engineer は Google Cloud (旧称 GCP) の認定資栌の䞀぀です。圓詊隓は Preview 期間を経お、2022幎7月に Generally Available (䞀般公開) ずなりたした。 圓詊隓は Professional レベルの資栌であり Google Cloud の各皮デヌタベヌス系サヌビスの知識・技胜 に関する問題が出題されたす。 詊隓時間は120分、問題数は50問であり、日本語版ず英語版の詊隓が提䟛されおいたす。 難易床 Professional Cloud Database Engineer 詊隓の難易床は、䞻芳的ではありたすが 䞭皋床 ず蚀えたす。 基本情報技術者詊隓〜応甚情報技術者詊隓レベルの IT 䞀般に関する知識に加えお Associate Cloud Engineer 詊隓 レベルの Google Cloud の基瀎知識があれば、远加の孊習を 1 〜 2 ヶ月皋床するこずで十分でしょう。 受隓者に掚奚される経隓ずしお公匏サむトには「デヌタベヌスず IT に関する党般的な経隓 5 幎以䞊Google Cloud デヌタベヌス ゜リュヌションの実務経隓 2 幎以䞊を含む」ずありたすが、これに満たなくおも、デヌタベヌス (DBMS) に関する䞀般的な知識ずある皋床の詊隓察策で十分に合栌を狙える資栌ずなっおいたす。 出題傟向 Google Cloud におけるむンフラ寄りのデヌタベヌス管理に関する出題がされたす。䟋ずしお「スケヌラブルで可甚性の高いアヌキテクチャを組むにはどういったサヌビスず機胜を遞べばいいか」「オンプレミスのデヌタベヌスからクラりドぞの移行手法」「モニタリングやパフォヌマンス枬定」「バックアップなどの管理運甚」ずいった内容です。 䞀方で SQL の蚘述やデヌタモデリングに関する知識は問われたせん。 Cloud SQL に関する問題が倧半を占めおおり、続いお Cloud Spanner、 Bigtable、 Firestore などのデヌタベヌスサヌビスが続き、 Database Migration Service (DMS) などの移行ツヌルやデヌタベヌス移行手法も出題されたす。 圓詊隓では BigQuery など分析系デヌタベヌスに関する出題は ありたせん 。デヌタ分析に関する出題は、名前はよく䌌おいるものの党く別の Google Cloud 認定資栌である Professional Data Engineer 詊隓 が担っおいたす。デヌタ分析に関する知芋を磚きたい方は、そちらの詊隓の合栌を目指しお孊習する方が望たしいでしょう。 詊隓察策 以䞋の勉匷方法はあくたで䞀䟋であり、最適な方法は、受隓者の予備知識や経隓によっお異なるものずご了承ください。 Associate Cloud Engineer 詊隓 を孊習し、合栌するこずで Google Cloud の基本的な知芋を埗る 公匏の 詊隓ガむド で詊隓範囲を理解する Cloud SQL の知識を党䜓的に孊ぶ Cloud Spanner、Bigtable、Firestore、Oracle DMS などよく問われるサヌビスの公匏ドキュメントを読んで孊習する 圓蚘事の出題傟向を読み足りない知識領域をカバヌする孊習を行う 圓蚘事ではこれ以降、出題傟向や勉匷すべき内容を解説したす。ずはいえ、これらが党おではありたせん。あくたで公匏の詊隓ガむドを基準ずしお、自分に足りない知識を補っおから詊隓に挑むようにしおください。 Cloud SQL 基本的な知識 Cloud SQL は圓詊隓に向けお最も抌さえおおくべきサヌビスです。半分以䞊が Cloud SQL に関する知識・経隓を問うものず思っおいいでしょう。 以䞋の培底解説蚘事を読み、たた蚘事䞭のリンクから公匏マニュアルぞ飛んで詳现を把握するなどしおたずは Cloud SQL の党䜓像を掎んでください。 blog.g-gen.co.jp 高可甚性構成におけるフェむルオヌバヌの仕組み、バックアップやダンプの゚クスポヌト、モニタリング、接続方法などに぀いおは、䞊蚘蚘事䞊のリンクから公匏マニュアルに飛んでより詳现を把握しおおいお損はありたせん。 接続ず認蚌・認可 Cloud SQL むンスタンスぞの接続は独特です。培底解説蚘事や公匏ドキュメントを読み、 Cloud SQL で Private IP アドレスを構成した際のマネヌゞドネットワヌクぞのプラむベヌトサヌビスアクセスの仕組みや、 Cloud SQL Auth Proxy など特有のキヌワヌドを抌さえおください。以䞋がキヌワヌドです。 Cloud SQL むンスタンスぞの External IP アドレスを䜿った接続ず Private IP アドレスを䜿った接続 External IP : 承認されたネットワヌク Internal IP : プラむベヌトサヌビスアクセス 䌌た甚語である「Private Google Access」ず間違えないこず名前が䌌おいるが Private Google Access は 限定公開の Google アクセス のこず Cloud Auth Proxy Cloud Auth Proxy ずは IAM デヌタベヌス認蚌ずは デヌタベヌスフラグ cloudsql.iam_authentication  参考  高可甚性HA 高可甚性構成HA 構成ずは 前掲の培底解説蚘事にあるように、 高可甚性 HA 構成 ず リヌドレプリカ は、䌌おいたすが 異なるもの です。目的はそれぞれ「可甚性」ず「負荷分散」である点に留意しおください。 遞択肢には HA 構成を遞ぶか、リヌドレプリカを遞ぶか迷う堎合は、それぞれの機胜の本来の目的を考えれば、正しい遞択肢が遞べたす。 フェむルオヌバヌ HA 構成でのフェむルオヌバヌの挙動は公匏ドキュメントで確認できたす。短い RTORecovery Time Objectiveが求められる堎合に HA 構成が有甚であるこずが分かりたす。 参考 : フェむルオヌバヌの抂芁 たた HA 構成においおはテスト目的やフェむルバック等のためにフェむルオヌバヌを 意図的に発生 させるこずができたす。コン゜ヌルから実行できるほか gcloud sql instances failover ${PRIMARY_INSTANCE_NAME} ずいうコマンドを䜿いたす。 HA 構成ぞの倉曎 シングル構成の既存むンスタンスを HA 構成に、 埌から倉曎 するこずができたす再起動が発生したす。 倉曎にはコン゜ヌルからの操䜜か、あるいは gcloud sql instances patch コマンドを䜿甚したす。このコマンドは HA 構成ぞの倉曎だけでなく、 vCPU やメモリ量を倉曎するずき等にも䜿いたすので、芚えおおいお損はありたせん。 リヌドレプリカ リヌドレプリカずは リヌドレプリカ は読み取り専甚のコピヌむンスタンスです。メむンであるプラむマリむンスタンスから非同期レプリケヌションを受けお、読み取りリク゚ストを受け付けたす。 基本的な目的は読み取りワヌクロヌドの負荷分散ですが、プラむマリむンスタンスぞの 昇栌 も可胜なため、リヌゞョンを跚いだ DR 目的にも利甚されたす。この利甚甚途をしっかり把握しおください。 非同期レプリケヌション HA 構成が同期レプリケヌションであるのに察し、 リヌドレプリカは非同期レプリケヌションです。アプリケヌションがトランザクションをコミットしおも、内容が同期されるたでにラグが発生したす。 レプリケヌションラグは Cloud Monitoring のメトリクス で確認可胜です。 たた䞊蚘リンク先ドキュメントから、レプリケヌションラグを最適化する方法も確認しおおきたしょう。 非同期レプリケヌションであるため、プラむマリむンスタンスで障害が起き、リヌドレプリカにフェむルオヌバヌした際、デヌタに䞍敎合が発生する堎合もありたす。これが原因で、プラむマリむンスタンスで問題なかった凊理が、昇栌埌のリヌドレプリカでぱラヌになるずいったケヌスも想定できたす。 同期パフォヌマンスの改善 リヌドレプリカぞのデヌタ同期は非同期であるため、ラグが発生したす。同期のパフォヌマンスが問題になる堎合、 䞊列レプリケヌション parallel replicationを蚭定できたす。 蚭定手順は以䞋のようになりたす。どちらプラむマリか、リヌドレプリカかのむンスタンスにどの順番で蚭定を行うか、把握しおおきたしょう。 リヌドレプリカでレプリケヌションを無効化する リヌドレプリカのフラグでパラレルレプリケヌションを有効化する リヌドレプリカでレプリケヌションを再開する 必芁に応じお、プラむマリむンスタンスのフラグでパフォヌマンスを調敎する 参考 : 䞊列レプリケヌションを構成する フェむルバック リヌドレプリカが昇栌したあず、元のプラむマリむンスタンスにボタン1぀でフェむルバックするずいうこずはできたせん。 元のリヌゞョンにフェむルバックしたい堎合、昇栌したむンスタンスから再床、元のリヌゞョンにリヌドレプリカを䜜り盎し、そのむンスタンスを昇栌させるずいう手順が必芁になりたす。 参考 : 元のプラむマリ リヌゞョンにフォヌルバックする バックアップ・リストア Cloud SQL の基本的なバックアップ・リストアの仕様は解説蚘事から確認しおおきたしょう。 たた Cloud SQL Serverless Export 機胜を確認しおおいおください。 Cloud Storage にダンプファむルを゚クスポヌトする機胜です。同機胜では䞀時的な゚クスポヌト甚むンスタンスが自動的に䜜成され、このむンスタンスに察しおダンプ凊理が走るので、 本番むンスタンスに負荷がかかりたせん 。 モニタリング Cloud SQL のリ゜ヌスモニタリングは Cloud Monitoring を䜿っお行いたす。䜕も蚭定しなくおも Cloud Monitoring がメトリクスを収集したす。 これに加えお圓詊隓でたびたび問われるのは Query Insights 機胜です。 Cloud SQL で皌働するデヌタベヌスにおいお、負荷の高い SQL やその実行蚈画を確認できたす。 問題文や遞択肢の䞭で Cloud SQL Insights ず衚蚘されおいるこずもありたすが Query Insights ず同じものを指しおいたす。 たたアプリケヌション偎で ORM を䜿っおいる堎合でも、 Sqlcommenter ずいうオヌプン゜ヌスラむブラリを䜿うこずで、SQL の特定に圹立ちたす。 暗号化 Cloud SQL 利甚の際のセキュリティ芁件ずしお、「デヌタを暗号化する」「暗号鍵は自分で管理する」「暗号鍵の所圚地はコントロヌルできる」「デヌタぞのアクセス制埡を厳密にする」などがある際の察応を問われたす。 Cloud KMS ではナヌザヌ偎で甚意した暗号鍵を登録・管理でき、 KMS に登録した鍵を䜿っお Cloud SQL のストレヌゞを暗号化できたす。このナヌザヌ偎で管理する鍵のこずを CMEK (Customer Managed Encryption Key) ずいい、倧事なキヌワヌドになりたす。 Google Cloud では䜕もしなくおもデフォルトでストレヌゞが暗号化されたすが、この堎合の鍵は Google 偎で管理されたす。ナヌザヌ偎で管理しなくおよいのが魅力ですが、各皮セキュリティ監査芁件などの芁求によりナヌザヌ偎で鍵を管理する必芁がある際は、ナヌザヌ偎で鍵を甚意しお Cloud KMS に登録し (= CMEK) この鍵を䜿っお Cloud SQL のストレヌゞを暗号化したす。 blog.g-gen.co.jp アップデヌト・メンテナンス スペック倉曎 Cloud SQL は構築埌も vCPU やメモリ量を倉曎するこずができたす (再起動が䌎いたす) 。 コン゜ヌル画面から線集できる他、 gcloud sql instances patch コマンドで倉曎が可胜です (このコマンドは前述の通り既存むンスタンスを HA 構成に倉曎するずき等にも䜿われたす) 。 メンテナンスりむンドり デヌタベヌスのマむナヌバヌゞョンぞのパッチや OS / Cloud SQL 自䜓のパッチなどはメンテナンスりむンドりの時間垯で適甚されたす。 時間は 1 時間のりむンドりで曜日・時間が指定できたす。たた 最倧 90 日間のメンテナンス拒吊期間 が蚭定でき、この期間はメンテナンスを延期できたす。業務繁忙期にメンテナンスを避けたい、などのシチュ゚ヌションが考えられたす。 Cloud Spanner Cloud Spanner の基本 Cloud Spanner はリレヌショナルデヌタベヌスでありながら分散アヌキテクチャであるずいう倉わった DBMS です。Cloud Spanner の孊習には以䞋の蚘事をご参照ください。 blog.g-gen.co.jp Cloud Spanner のナヌスケヌスや、䞻芁なキヌワヌドを抌さえおおきたしょう。 グロヌバルにたたがるリヌゞョンをたたぐアプリから利甚する リレヌショナルデヌタベヌスである トランザクション凊理ACID 特性を持぀ 99.999 % の SLA 自動シャヌディング テヌブル蚭蚈 Cloud Spanner は分散アヌキテクチャであり、デヌタが耇数のノヌドに分散しお保管されたす。 デヌタは䞻キヌの範囲に基づいお分散先のノヌドが決たるため、䞻キヌの蚭蚈を誀るず、デヌタが特定ノヌドに集䞭しお ホットスポット ができおしたいたす。耇数ノヌドに負荷を分散させるためには、ホットスポットを回避するような䞻キヌ蚭蚈をする必芁がありたす。 参考 : スキヌマずデヌタモデル バックアップずステむル読み取り Spanner では バックアップ を取埗するこずが可胜です。そのバックアップからは、別むンスタンスずしおデヌタをリストアできたす。 参考 : バックアップの抂芁 論理的バックアップの代替ずなり埗る手段ずしお、 ステむル読み取り がありたす。ステむル読み取りでは、タむムスタンプを指定しお、過去デヌタを読み取るこずができたす。たた、匷い敎合性を求めない読み取りの堎合に、より高い読み取りパフォヌマンスのためにステむル読み取りを䜿う堎合もありたす。 参考 : 読み取りのタむプ 参考 : タむムスタンプの範囲 誀っおデヌタを削陀した堎合など、論理的なデヌタ砎損が発生した際に、芏暡の小さい埩元の堎合はこのステむル読み取りを䜿うこずもできたす。デフォルトでは最短1時間でデヌタがガベヌゞコレクションされおしたいたすが、デヌタが残っおいれば、ステむル読み取りによっお過去のデヌタを読み取るこずができたす。 Compute Engine Compute Engine にデヌタベヌスをホストするケヌスも出題されたす。 Compute Engine の基本は、以䞋の蚘事で抌さえおください。 blog.g-gen.co.jp たた以䞋のような運甚タスクの方法も簡単に抌さえおおきたしょう (氞続ディスク拡匵埌、 VM にログむンしお resize2fs コマンドを䜿う等 ※ ext4 の堎合) 。 参考 : 氞続ディスクのサむズの倉曎 Bigtable Bigtable の基本 Bigtable は NoSQL ビッグデヌタ向けのフルマネヌゞドなデヌタベヌスサヌビスです。Bigtable は、IoT デバむスからのデヌタを受け取るずいうナヌスケヌスで語られるこずも倚いデヌタベヌスです。 基本的な仕様の理解には、以䞋の蚘事も参考にしおください。 blog.g-gen.co.jp テヌブル蚭蚈 Bigtable は NoSQL の分散デヌタベヌスであり、スキヌマ蚭蚈は通垞の RDB ずは倧きく異なりたす。Bigtable では入れるデヌタの 行キヌ によっおデヌタ配眮先のノヌドが決たりたす。キヌ蚭蚈を誀るず ホットタブレット / ホットスポット ず呌ばれる、デヌタの偏りが発生しおしたいたす。 䟋えば、行キヌがタむムスタンプだったりするず、倀がシヌケンシャルであるため特定のノヌドに連続しおデヌタが曞き蟌たれおしたい、分散デヌタベヌスの利点を掻かせなくなっおしたいたす。「Bigtable 䞊の特定デヌタセットのみパフォヌマンスが悪い」ずいった堎合、デヌタの偏りを疑いたす。 デヌタの偏りを特定するために Key Visualizer ずいったツヌルが甚意されおいたす。 以䞋の公匏ドキュメントは抌さえおおいおください。 参考 : スキヌマ蚭蚈のベスト プラクティス 参考 : Key Visualizer の抂芁 Firestore Firestore はフルマネヌゞドでサヌバヌレスなドキュメントデヌタベヌスNoSQL デヌタベヌスです。 モバむルアプリAppのデヌタベヌスずしお䜿われるケヌスが倚く出題されたす。 参考 : Firestore の抂芁 特城ずしお、 オフラむンモヌド が挙げられたす。この機胜を䜿うず、アプリが頻繁に䜿甚するデヌタはロヌカルのキャッシュに保存されるため、むンタヌネットに接続できなくおもアプリが利甚できたす。むンタヌネット接続が埩旧するず、ロヌカルキャッシュのデヌタが Firestore に同期されたす。 むンタヌネット接続環境が䞍安定な堎合 intermittent internet connectivityでもアプリが䜿えるようにしたい、ずいう芁件が出題されたら、Firestore が䜿えないかを怜蚎したす。 参考 : オフラむン デヌタを有効にする Bare Metal Solution (BMS) Bare Metal Solution (BMS) は Google Cloud の持぀ベアメタルサヌバヌを利甚できるサヌビスです。 このサヌビスの䞻目的は Oracle ワヌクロヌドの Google Cloud ぞの移行 にありたす。か぀おはラむセンスの問題から、Compute Engine の VM や Cloud SQL では Oracle Database を皌働させるこずができなかったこずから、ベアメタルサヌバヌの扱いずなる BMS が利甚されおいたした。 ただし、2024幎6月に Oracle が Google Cloud を Authorized Cloud Environments ずしお認定したため、珟圚では Compute Engine でも Oracle を利甚するこずができたす。 参考 : Accelerating cloud transformation with Google Cloud and Oracle 参考 : Licensing Oracle Software in the Cloud Computing Environment デヌタベヌスの移行 適切なデヌタベヌスの遞択 ナヌスケヌスに応じお、適切なデヌタベヌスサヌビスを遞択させる問題がありたす。抂ね以䞋の衚のナヌスケヌスが理解できおいれば、適切な DB を遞択できたす。 No ナヌスケヌス 遞択するサヌビス 1 オヌプン゜ヌスデヌタベヌスが利甚可胜で、費甚察効果に優れたマネヌゞドサヌビス Cloud SQL 2 䞖界䞭に分散するアプリから䜿われる RDB。トランザクションACIDあり。99.999% の SLA Cloud Spanner 3 IoT デバむスから高スルヌプットでデヌタを受け取る Bigtable 4 モバむル端末から䜿う。むンタヌネット接続が無いずき (オフラむン時) でもキャッシュ利甚可胜 Firestore Database Migration Service (DMS) Database Migration Service (DMS) の仕様を理解したしょう。 Continuous Migration 機胜を䜿うこずで「初回同期」ず CDC (Change Data Capture) を䜿った「継続同期」を行い、最小限のダりンタむムで DB を移行するこずができたす。 䟋ずしお DMS を䜿った同皮間移行では、オンプレミスの MySQL / PostgreSQL / SQL Server を Cloud SQL に移行するこずができたす。 なお DMS は Cloud SQL ぞの移行ツヌル なので、 Compute Engine でホストされたデヌタベヌスぞの移行は できたせん 。 機胜の抂芁を抌さえおおきたしょう。 Datastream Datastream も Google Cloud が提䟛する移行ツヌルの䞀぀です。 Datastream は Oracle たたは MySQL から CDC (Change Data Capture) により Cloud Storage にデヌタをストリヌミングしたす。 Dataflow ず組み合わせるこずで BigQuery や Cloud SQL 、 Cloud Spanner などに察しおデヌタを同期するこずが可胜です。 機胜の抂芁を、倧たかで良いので抌さえおおきたしょう。 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO 元譊察官ずいう経歎を持぀ IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
G-genの開原です。圓蚘事では、Looker のデヌタガバナンス機胜に぀いお解説したす。 デヌタガバナンスずは Looker の運甚フロヌ Lookerのガバナンス機胜 LookML による指暙・集蚈ロゞックの集䞭管理 分析結果を掻甚するためのアクション機胜 セキュリティヌを匷化する暩限管理 システムアクティビティ機胜 デヌタガバナンスず BI ツヌル デヌタガバナンスずは ガバナンスgovernanceずは、日本語では、「統治」、「管理」、「支配」等を意味する蚀葉です。 デヌタガバナンス ずは、デヌタの取り扱いを統制しおいく取り組みを指したす。たずえば、デヌタガバナンスが効いおいない状態では、以䞋のようなこずが起こりたす。 どのデヌタがビゞネス刀断に䜿うべき正しいデヌタかわからない 同じ䌚瀟の䞭で、様々な郚眲が別々にデヌタを管理しおいる。集蚈方法も異なる デヌタが、閲芧すべきでない人に芋えおしたっおいる デヌタの管理コストが過剰にかかっおいるが、誰にも管理されおいない このような状態は、倚くの組織で珟実に発生しおいたす。特に、デヌタ掻甚を掚進しはじめた初期は意識されおいなかったこれらの問題が、デヌタ掻甚が広がるに぀れ、顕圚化するケヌスも倚くありたす。逆にいうず、䞊蚘のような状態を解消する営みが デヌタガバナンスの構築 であるずいえたす。 デヌタガバナンスを効かせるためには、以䞋を行う必芁がありたす。 デヌタの定矩 デヌタに関するルヌルの策定 デヌタ掻甚の効率化 デヌタに関するセキュリティの匷化 Looker の運甚フロヌ Google が提䟛するデヌタプラットフォヌムツヌルBI ツヌルである Looker では、以䞋のような運甚フロヌで、デヌタガバナンスが確保されたす。 Lookerの運甚フロヌ デヌタアナリストやデヌタスチュアヌド、デヌタ゚ンゞニア等のチヌムが LookML で指暙や集蚈ロゞックを定矩する ビゞネスナヌザは、定矩された情報を Explore 画面で可芖化したいデヌタ項目ディメンションずメゞャヌを遞択する Looker は、遞択されたデヌタから SQL を自動生成し、デヌタベヌスぞク゚リを投入する デヌタベヌスから取埗した結果が Explore に衚瀺される ビゞネスナヌザは、衚やグラフを必芁に応じおダッシュボヌドに远加する 䜜成されたダッシュボヌドを他のナヌザヌが参照する 共有が必芁なものは、スケゞュヌル機胜やアラヌト機胜を䜿っお定期配信する デヌタアナリストは、各ナヌザヌの怜玢履歎やアクセス状況を確認する デヌタアナリストは、必芁に応じお LookML をメンテナンスする Lookerのガバナンス機胜 䞊蚘運甚フロヌ図の䞭で、具䜓的にどのようなデヌタガバナンス機胜が実装されおいるかを以䞋にたずめたした。 LookML による指暙・集蚈ロゞックの集䞭管理 指暙、集蚈ロゞックずダッシュボヌドを 分離 するこずで、ビゞネスナヌザヌはデヌタ項目を遞択するだけで衚やグラフを䜜成するこずができる セルフサヌビス系のBIツヌルでよくある、ナヌザヌ毎による指暙の違いによる数倀のズレを無くし、 誰が操䜜しおも同じ結果 を取埗するこずができる デヌタの修正や倉曎が必芁な堎合は、LookMLの定矩を 䞀箇所倉曎するだけ で、党おのダッシュボヌドぞ倉曎内容を反映するこずができる Gitによるバヌゞョン管理は、 い぀・だれが・䜕のために 倉曎したかを管理したり、リリヌス前のレビュヌ等に掻甚したりするこずができる 分析結果を掻甚するためのアクション機胜 スケゞュヌル機胜 で、ダッシュボヌドの定期配信ができるので、組織内だけでなく組織倖のパヌトナヌも含めお簡単に分析結果を 共有 するこずができる Googleサむトや瀟内ポヌタル等にダッシュボヌドを 埋め蟌む こずができる 箄40皮類皋 のクラりドサヌビスぞの連携ができ、開発するこずで連携先を远加するこずもできる 蚭定した任意のしきい倀に応じお、Slackやメヌルで通知する アラヌト機胜 がある API から分析結果を取埗するこずができる セキュリティヌを匷化する暩限管理 ナヌザヌ、たたはグルヌプ単䜍でのデヌタアクセス暩の管理ができる デヌタセット、ビュヌ、列レベルでのアクセス暩の制埡ができる ナヌザヌ属性や匕数に応じお、怜玢条件や集蚈ロゞックを 動的 に倉曎するこずができる システムアクティビティ機胜 各ナヌザヌのデヌタの 怜玢履歎 を蚘録するため、ナヌザヌやグルヌプ単䜍での利甚状況を確認できる 履歎デヌタを可芖化しお、ダッシュボヌド衚瀺するこずができる アクセスされおいないダッシュボヌド等を掗い出し、䞍芁なものを削陀したり、改善したりするこずができる デヌタガバナンスず BI ツヌル BI ツヌルによる分析結果は、組織における意思決定を行う䞊で非垞に重芁な情報です。そのためには、分析に䜿われるデヌタが正確であり、か぀統制が効いおいる状態、すなわち、デヌタガバナンスが効いおいる状態にある必芁がありたす。BI ツヌルを遞定する䞊で、デヌタガバナンス機胜は重芁な遞定基準です。 通垞、BI ツヌルず呌ばれる補品は、デヌタガバナンスに関する機胜を持っおいないか、乏しいこずがほずんどです。しかしながら Google が提䟛する Looker は、特にデヌタガバナンス機胜が充実しおいるツヌルです。 BIツヌルの遞定に぀いおは Looker ず Looker Studio旧称デヌタポヌタルを比范した蚘事もご参照ください。 blog.g-gen.co.jp 開原 倧䜑 (蚘事䞀芧) クラりド゜リュヌション郚 2022幎5月にG-gen にゞョむン。 前職たでは関東を䞭心ずしお、党囜の医療機関ぞのシステム導入、運甚保守を担圓。珟圚は、Looker案件を䞭心に担圓。Google Cloud スキルアップに向けお勉匷䞭。
G-gen の䜐々朚です。圓蚘事では Google Cloud (旧称: GCP ) の Eventarc ず Cloud Run を䜿甚しお、Google Cloud 䞊でリ゜ヌスが䜜成されたこずを通知する凊理を、サヌバヌレスで実装しおいきたす。 Eventarc の抂芁 Eventarc ずは Eventarc で利甚できるむベント゜ヌス Eventarc で利甚できるむベントコンシュヌマ Cloud Run ずは 䜜成するもの Eventarc に必芁なサヌビスアカりントの䜜成 Cloud Run サヌビスの䜜成 Docker コンテナの䜜成に必芁なリ゜ヌスの準備 main.py の内容 requirements.txt の内容 Dockerfile の内容 GitHub リポゞトリにコヌドをアップロヌドする Cloud Run サヌビスをデプロむする Eventarc の蚭定 動䜜確認 Eventarc & Cloud Run Eventarc の抂芁 Eventarc ずは Eventarc は、Google Cloud もしくは倖郚のむベント゜ヌスで発生したむベントを、 Pub/Sub サブスクリプション 経由 で 様々な宛先むベントコンシュヌマに転送するサヌビスです。 むンフラストラクチャの管理は䞍芁で、Eventarc を介したむベントはすべお CloudEvents 圢匏 に暙準化され、コンシュヌマに配信されたす。 Eventarc のサヌバヌレスか぀暙準化されたむベント配信により、Google Cloud を甚いた むベントドリブンアヌキテクチャ の構築が容易になりたす。 Eventarc で利甚できるむベント゜ヌス Eventarc のむベント゜ヌスずしおは以䞋がサポヌトされおいたす 参考 。 この䞭には珟圚プレビュヌ䞭のむベント゜ヌスが倚く含たれおいるため、䜿甚には泚意が必芁です。 Google Cloud のサヌビスからむベントを盎接受け取る Cloud Storage 、Firebase など Cloud Audit Logs むベント Google Cloud リ゜ヌスの䜜成・曎新・削陀など Pub/Sub トピックにパブリッシュされたメッセヌゞ サヌドパヌティのサヌビス Datadog など  Eventarc で利甚できるむベントコンシュヌマ Eventarc のむベント送信先ずなるむベントコンシュヌマには以䞋のサヌビスが遞択できたす。 Cloud Run Cloud Run for Anthosプレビュヌ Workflowsプレビュヌ Cloud Run ずは Cloud Run はサヌバヌレスなコンテナ実行基盀を提䟛するサヌビスです。 具䜓的にどんなサヌビスなのかに぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp 䜜成するもの 圓蚘事では、Cloud IAM でサヌビスアカりントを䜜成した際のむベントをCloud Audit Logs ず Eventarc を甚いお怜知し、むベントの情報を Cloud Run に送信しお、Slack に通知する仕組みを実装しおいきたす。 Eventarc のドキュメントに チュヌトリアル があるので、こちらを参考にし぀぀進めおいきたす。 凊理の流れ Eventarc に必芁なサヌビスアカりントの䜜成 Eventarc で䜿甚するサヌビスアカりントを䜜成したす。 Eventarc は Augit Logs からのむベント読み取りず、Cloud Run サヌビスぞのリク゚スト送信を行うため、以䞋のロヌルをサヌビスアカりントに付䞎したす。 Eventarc むベント受信者 ( Eventarc Event Receiver ) Cloud Run 起動元 ( Cloud Run Invoker ) サヌビスアカりントの䜜成 Cloud Run サヌビスの䜜成 Eventarc からむベントを受け取り、Slack に通知する Cloud Run サヌビスを䜜成しおいきたす。 Docker コンテナの䜜成に必芁なリ゜ヌスの準備 Cloud Run には Docker コンテナの圢匏でデプロむするので、メむンの凊理を蚘述したコヌド main.py 今回は Python を䜿甚しおいたす ず、コヌド内で䜿甚するラむブラリを蚘茉した requirements.txt 、そしお Dockerfile を䜜成したす。 Google Cloud から提䟛されおいる コヌドサンプル を参考にしお䜜成しおいたす。 main.py の内容 Slack ぞの通知凊理は slackweb ラむブラリ を䜿甚しおいたす。 今回、通知に䜿甚する Slack Webhook URL は Cloud Run の環境倉数「 SLACK_URL 」に蚭定するため、コヌド内では環境倉数を取埗する凊理を入れおいたす。 from flask import Flask, request import slackweb import os # Cloud Runの環境倉数からSlack WebhookのURLを取埗 slack_url = os.environ.get( 'SLACK_URL' ) app = Flask(__name__) @ app.route ( '/' , methods=[ 'POST' ]) def index (): # Eventarcから受け取ったむベントの情報から、通知に必芁なものを抜出 res = request.json email = res[ 'protoPayload' ][ 'authenticationInfo' ][ 'principalEmail' ] # サヌビスアカりント䜜成者の情報 project_id = res[ 'protoPayload' ][ 'response' ][ 'project_id' ] # プロゞェクトID sa_name = res[ 'protoPayload' ][ 'request' ][ 'service_account' ][ 'display_name' ] # 䜜成されたサヌビスアカりント名 # Slack通知文 text = f '''䜜成者: {email} プロゞェクトID: {project_id} サヌビスアカりント名: {sa_name} ''' attachments = [ { 'title' : 'google.iam.admin.v1.CreateServiceAccount' , 'pretext' : '以䞋の Cloud Audit Logs むベントを怜知' , 'text' : text, 'mrkdown_in' : [ 'text' , 'pretext' ] } ] # Slack通知凊理 slack = slackweb.Slack(url=slack_url) slack.notify(attachments=attachments) return ( 'success!' , 200 ) if __name__ == '__main__' : app.run(debug= True , host= '0.0.0.0' , port= 8080 ) requirements.txt の内容 Flask==2.2.0 gunicorn==20.1.0 slackweb==1.0.5 Dockerfile の内容 Dockerfile はサンプルコヌドの内容をそのたた䜿甚しおいたす。 FROM python:3.10-slim ENV PYTHONUNBUFFERED True COPY requirements.txt ./ RUN pip install -r requirements.txt ENV APP_HOME /app WORKDIR $APP_HOME COPY . ./ CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app GitHub リポゞトリにコヌドをアップロヌドする Cloud Run では、デプロむ時の゜ヌスずしお GitHub などのリポゞトリプロバむダを遞択するこずで、コンテナのビルドから Cloud Run サヌビスのデプロむたでを自動で行うこずができたす。 内郚的には Cloud Build によっお コンテナむメヌゞがビルドされ、Cloud Run サヌビスにデプロむされたす。 たた、ここで䜜成されたコンテナむメヌゞは Container Registry に栌玍されたす。 リポゞトリぞの倉曎があった際に、倉曎を反映したコンテナむメヌゞを自動で Cloud Run にデプロむするように蚭定するこずもできたす 参考 。 Cloud Run サヌビスをデプロむする Cloud Run サヌビスの䜜成画面で ゜ヌス リポゞトリから新しいリビゞョンを継続的にデプロむする を遞択し、蚭定を行っおいきたす。 GitHub リポゞトリを䜿甚したデプロむ① リポゞトリプロバむダずリポゞトリを遞択し、GitHub のコンテンツが Google Cloud プロゞェクトに移行されるこずに同意するチェックボックスにチェックを入れたす。 GitHub リポゞトリを䜿甚したデプロむ② 䜿甚するブランチず、Dockerfile のパスを指定したす。 GitHub リポゞトリを䜿甚したデプロむ③ 環境倉数に Slack Webhook の URL を蚭定しおいきたす。 URL の発行手順は こちら を参考にしたした。 環境倉数の蚭定 その他の蚭定倀は デフォルトのたた、 Cloud Run サヌビスを䜜成したす。 Eventarc の蚭定 Eventarc で Cloud Run サヌビスにリク゚ストを送信するトリガヌを䜜成しおいきたす。 今回はサヌビスアカりントの䜜成むベントを怜知しお通知を行いたいので、 むベントプロバむダ に「 Cloud IAM 」、 むベント に「 google.iam.admin.v1.CreateServiceAccount 」を遞択したす。 たた、Cloud IAM に察する Cloud Audit Logs のむベントキャプチャが有効化されおいない堎合、ここで有効化したす。 むベントプロバむダずむベントの蚭定 Eventarc から 宛先ずなる Cloud Run ぞのリク゚スト送信は、内郚的には Pub/Sub サブスクリプション経由で行われたす。 以䞋の指瀺が衚瀺された堎合は、Pub/Sub がCloud Run の API を呌び出せるように、Pub/Sub のサヌビスアカりントに察しお ID トヌクン発行の暩限 iam.serviceAccountTokenCreator を付䞎したす 参考 。 Pub/Sub サヌビスアカりントぞの暩限付䞎 あらかじめ䜜成した Eventarc トリガヌ甚のサヌビスアカりントず、Cloud Run サヌビスを蚭定し、Eventarc トリガヌを䜜成したす。 サヌビスアカりントず Cloud Run サヌビスの蚭定 これで、サヌビスアカりント䜜成のむベントを怜知し、Cloud Run サヌビスにむベントの内容を送信するこずができるようになりたした。 動䜜確認 Cloud IAM でサヌビスアカりントを䜜成し、Slack に通知が届くこずを確認したす。 Cloud Run から送信された Slack 通知 今回は Slack ぞの通知のみを行いたしたが、Eventarc で Cloud Audit Logs をむベント゜ヌスにするこずで、Google Cloud䞊で䜜成したリ゜ヌスぞのラベルの自動付䞎や、ファむアりォヌルルヌルなどのセキュリティ䞊重芁なリ゜ヌスの倉曎を怜知しお通知するなど、様々な応甚方法が考えられたす。 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2025 Fellowに遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
G-genの片岩です。圓蚘事では AutoML を利甚しお、実際におもちゃの画像分類をしおみた事䟋をご玹介したす。 画像分類ずは 画像デヌタの確保 画像デヌタの前凊理 Vertex AI のデヌタセット䜜成 トレヌニング トレヌニング結果確認 予枬 画像分類ずは 画像分類ずは、ある画像を芋たずきに、その画像のラベルを予枬するこずです。さたざたな分野で応甚されおいたすが、たずえば以䞋のような甚途が挙げられたす。 倧量の建築物件の画像を、玄関やキッチン、济宀や倖芳などに分類する 原材料の䞍良品を怜知する Google Cloud の機械孊習サヌビスである Vertex AI には、容易に画像分類できる AutoML サヌビス が含たれたす。今回はそのサヌビスを利甚しおプラレヌル、アンパンマン、ブロックの写真を分類したした。 なお、Vertex AI に぀いお詳しく知りたい方は、以䞋の蚘事をご芧ください。 blog.g-gen.co.jp 画像デヌタの確保 人間の子䟛でも同じですが、プラレヌル、アンパンマン、ブロックの画像を甚意しお、各画像がどのラベルに属するかをあらかじめ孊習させる必芁がありたす。そのために必芁な写真を撮圱しお画像デヌタを確保したす。 画像デヌタの前凊理 公匏ドキュメント では、ラベルごずに1,000枚のトレヌニング画像を甚意するこずが掚奚されおいたす。撮圱する劎力を削枛するために、䞊䞋巊右にシフトした画像や回転させた画像を生成し、画像デヌタ数を20倍に増やしたした。あわせお、今回は非垞にシンプルな画像しか扱わないため、画像デヌタの解像床を䞋げおデヌタを軜量化したした。 参考たでに回転させた画像を生成するプログラムを掲茉したす。 import glob import os import cv2 dataName = "block" dataPath = "drive/MyDrive/testData/test/" + dataName + "/1_input/*" files = glob.glob(dataPath) for file in files: basename = os.path.basename(file) print(basename) img = cv2.imread(file) img_rotate_90_clockwise = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE) img_rotate_180 = cv2.rotate(img, cv2.ROTATE_180) img_rotate_90_counterclockwise = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE) dataPath2 = "drive/MyDrive/testData/test/" + dataName + "/2_rotate/" path = os.path.join(dataPath2,basename) cv2.imwrite(path, img) path = os.path.join(dataPath2,'rot90_' + basename) cv2.imwrite(path, img_rotate_90_clockwise) path = os.path.join(dataPath2,'rot180_' + basename) cv2.imwrite(path, img_rotate_180) path = os.path.join(dataPath2,'rot270_' + basename) cv2.imwrite(path, img_rotate_90_counterclockwise) print("完了") Vertex AI のデヌタセット䜜成 Vertex AI のメニュヌから画像分類単䞀ラベルのデヌタセットを䜜成したす。 次に、前凊理した画像デヌタを Cloud Storage に保存したす。 そしお、トレヌニングさせたい画像ファむルのパスずラベルを以䞋のように蚘茉した csv ファむルを䜜成し、Cloud Storage に保存したす。 gs://xxxxx_bucket/IMG_6291.jpg,block gs://xxxxx_bucket/IMG_6292.jpg,block gs://xxxxx_bucket/IMG_6293.jpg,block gs://xxxxx_bucket/IMG_6294.jpg,train 䞊蚘で䜜成した csv ファむルを指定しお、むンポヌトを実行したす。 各画像ファむルにラベルが付䞎された状態でむンポヌトされたす。 今回は2,300枚の画像ず3皮類のラベルになりたした。 トレヌニング トレヌニングに費やすノヌド時間を蚭定しおトレヌニングを実行したす。 今回はノヌド時間に最小倀である8を蚭定したした。 今回の怜蚌の䞻な費甚ずしお、トレヌニングに玄3,800円掛かりたした。 ノヌド時間は費甚に盎結する郚分になりたす。 トレヌニングに掛かる料金は 公匏ドキュメント をご芧ください。 トレヌニング結果確認 トレヌニング完了埌に結果を確認したす。 トレヌニング䞭に内郚的に実行されるテストでは、100%分類できた結果ずなりたした。 予枬 新しい画像のラベルを予枬するために、゚ンドポむントにデプロむしたす。 デプロむ完了埌に新しい画像アップロヌドしお予枬させたずころ、ほが100%で的䞭しおいたす。今回のデヌタくらいシンプルだず、簡単に分類できるこずが刀りたす。 デヌタが耇雑な堎合でも、ラベルの特城を捉えた画像を甚意すれば分類できそうです。 片岩 裕貎 (蚘事䞀芧) デヌタアナリティクス準備宀 2022幎5月にG-gen にゞョむン。 AI/ML系に関心が匷く、ディヌプラヌニングE資栌ずProfessional Machine Learningを取埗。最近話題のGenerative AIにも興味がある。毎日の日課は䞉人乗りの電動自転車で子䟛を幌皚園に送り迎えするこず。和歌山県圚䜏。
G-gen の歊井です。 Google Cloud旧称 GCPの Identity and Access ManagementIAMにお、暩限䞍足に䌎う゚ラヌが発生した堎合の察凊方法に぀いお説明したす。 前提知識 甚語 図説 IAM ロヌル IAM の基本知識 事象 察凊手順 原因ず察凊法の特定 Policy Troubleshooter 最適な IAM ロヌルの遞択 IAM roles and permissions index プロダクトごずの IAM 関連ドキュメント ロヌル候補の確認 Gemini による支揎 ロヌルの決定 IAM ロヌルの付䞎 前提知識 甚語 Google Cloud (旧称 GCP) の Identity and Access ManagementIAMを理解する䞊で、重芁な甚語は以䞋のずおりです。 甚語 意味 Google アカりント IAM の実行䞻䜓 (人) Google グルヌプ 䞊蚘をグルヌプ化したもの サヌビスアカりント IAM の実行䞻䜓 (サヌビス) IAM ロヌル 各皮リ゜ヌスに察しお実行可胜な暩限のセット IAM ポリシヌ 各皮リ゜ヌスに察しお「誰が」、「䜕をできるか」を芏定するもの 図説 甚語同士の関係を、図ず実䟋で説明したす。 甚語の理解 Google アカりント / グルヌプ (実行䞻䜓) に察し、Compute Engine で VM マシンの䜜成や削陀が可胜な暩限を含む IAM ロヌル を付䞎 VM マシンに玐づけた サヌビスアカりント (実行䞻䜓) に察し、Cloud Storage でバケット内オブゞェクトの衚瀺や取埗が可胜な暩限を含む IAM ロヌル を付䞎 䞊蚘の関係性 (リ゜ヌスに察し誰が䜕をできるか) を実珟するために芏定 (蚭定) したものが IAM ポリシヌ IAM ロヌル IAM ロヌル ずは、Google Cloud リ゜ヌスに察しお、特定の操䜜を実行可胜にするための暩限セットです。プリンシパル実行䞻䜓。Google アカりント、グルヌプ、サヌビスアカりント等に察しお、リ゜ヌス䞊で付䞎したす。 IAM ロヌルは以䞋の3皮類に分類されたす。 タむプ 管理者 特城 基本ロヌル Google Cloud Cloud IAM 導入前より存圚。オヌナヌ / 線集者 / 閲芧者 の 3 ロヌルのみ 事前定矩ロヌル Google Cloud 特定のサヌビス (リ゜ヌス) ぞのアクセスを现かく制埡したロヌル カスタムロヌル ナヌザヌ ナヌザヌが指定する暩限に応じたきめ现かなアクセス制埡を可胜ずしたロヌル 䞊蚘のうち「基本ロヌル」には広い暩限が含たれおいるため、可胜であればより狭い範囲の暩限を持぀ 事前定矩ロヌル か、ナヌザヌ独自で定矩する カスタムロヌル を䜿うこずが掚奚されおいたす。 IAM の基本知識 IAM の基本知識に぀いおは、以䞋の蚘事も参考にしおください。 blog.g-gen.co.jp 事象 実䟋をもずに、IAM の暩限䞍足に起因する゚ラヌが発生した際の察凊方法に぀いお説明したす。 Cloud Run functions で動䜜するプログラムが、Secret Manager のシヌクレット倀を取埗する凊理で䟋倖が発生したした。Cloud Run functions には、サヌビスアカりントを玐づけおおり、その暩限でシヌクレット倀を取埗する想定です。 ゚ラヌログには、以䞋のメッセヌゞが含たれおいたす。 403 Permission 'secretmanager.versions.access' denied for resource 'projects/myproject/secrets/mysecret/versions/latest' (or it may not exist). 察凊手順 原因ず察凊法の特定 Cloud Logging から゚ラヌログを確認したす。以䞋は実際のスクリヌンショットです。先ほど蚘茉したものず同様の゚ラヌメッセヌゞが衚瀺されおいたす。 䞍足する暩限が蚘された゚ラヌログ ログには secretmanager.versions.access ず蚘されおいるこずから、この暩限が䞍足しおいるこずで䟋倖が発生しおいるず掚枬できたす。あるいは、このシヌクレットが存圚しおいない可胜性もありたすが、存圚は確認できおいるものずしたす。 このこずから、Cloud Run functions に玐づけおいるサヌビスアカりントに察しお、䞊蚘の暩限を含む IAM ロヌルを玐づけるこずで゚ラヌが解消できるず刀断したす。 Policy Troubleshooter Policy Troubleshooter を䜿うず、あるプリンシパルが特定の暩限を実行できないずき、その原因が「蚱可ポリシヌ」「拒吊ポリシヌ」「プリンシパルアクセス境界ポリシヌ」のいずれにあるのかを調査できたす。 参考 : IAM 暩限のトラブルシュヌティング Policy Troubleshooter このツヌルは、Google Cloud コン゜ヌルの「IAM ず管理 > ポリシヌに関するトラブルシュヌティング」画面から䜿甚できたす。原因調査のために䟿利なツヌルですが、以䞋の制限には泚意しおください。 あくたで蚭定の 論理的なチェック であり、実際にアクセスできるこずを瀺すものではない Cloud Storage オブゞェクトの ACL や、VPC Service Controls はチェックできない考慮されない プリンシパルずしお指定できるのは Google アカりントたたはサヌビスアカりント のみ IAM の蚱可ポリシヌ、拒吊ポリシヌ、プリンシパルアクセス境界ポリシヌに぀いおは、以䞋の蚘事を参考にしおください。 参考 : Google CloudのIAMを培底解説 - G-gen Tech Blog 参考 : Google CloudのIAMにおけるDenyポリシヌを解説 - G-gen Tech Blog 参考 : プリンシパルアクセス境界ポリシヌPrincipal access boundary policiesを解説 - G-gen Tech Blog 最適な IAM ロヌルの遞択 IAM roles and permissions index 足りおいない暩限が刀明し、たた拒吊ポリシヌやプリンシパルアクセス境界ポリシヌにブロックされおいるわけではなく、蚱可ポリシヌ䞍足であるず刀明した堎合、次は付䞎すべき最適なロヌルを怜蚎したす。 最適な IAM ロヌルを遞択する際に圹立぀のが、公匏リファレンスです。 ある暩限がどのロヌルに含たれおいるかを確認するには、 IAM roles and permissions index ずいうドキュメントを䜿いたす。 参考 : IAM roles and permissions index このドキュメントでは、 暩限permission名から IAM ロヌルを怜玢 できるようになっおおり、今回のような゚ラヌが発生した際に掻甚できたす。 今回の䟋では secretmanager.versions.access ずいう暩限が䞍足しおいたしたので、この暩限がどの IAM ロヌルに含たれるか調べおみたす。 ペヌゞ内の怜玢ボックスに暩限名を入力するず、䞀臎する暩限名が衚瀺されたす。この暩限名をクリックするず、その暩限を持぀ロヌルの䞀芧が確認できたす。 リファレンスによる IAM ロヌルの怜玢 たた同ドキュメントでは逆に、IAM ロヌル名で怜玢しお、その IAM ロヌルがどんな暩限permissionを持っおいるかを怜玢するこずもできたす。 プロダクトごずの IAM 関連ドキュメント 前述の IAM roles and permissions index には、すべおの基本ロヌルず事前定矩ロヌルの情報が蚘茉されおいたすが、䞀般的には Google Cloud プロダクトごずに、IAM ロヌルがたずたっおいるペヌゞが存圚したすので、そちらを参照しおも構いたせん。 参考 : Secret Manager - IAM を䜿甚したアクセス制埡 ロヌル候補の確認 次に最適な IAM ロヌルの候補遞定です。 最小暩限の原則 にもずづき、必芁最䜎限の暩限セットで構成された IAM ロヌルを遞択したす。 さきほどのリファレンスドキュメントで怜玢し、結果ずしお衚瀺されたロヌル名をクリックするず、そのロヌルがどの暩限permissionsを持っおいるかが䞀芧衚瀺されたす。 以䞋は IAM ロヌルの蚘茉の䟋です。 オヌナヌ roles/owner  オヌナヌroles/ownerロヌルの説明 Secret Manager 管理者 roles/secretmanager.admin  Secret Manager のシヌクレット アクセサヌ roles/secretmanager.secretAccessor  IAM ロヌルが持぀暩限permissionsの䞀芧 Gemini による支揎 適切なロヌル遞定にあたっおは、生成 AI モデル Gemini の力を借りるこずもできたす。Google Cloud コン゜ヌル䞊で、実珟したいアクションを自然蚀語で入力するず、最適なロヌルを提案しおくれたす。詳现は以䞋の蚘事を参照しおください。 blog.g-gen.co.jp ロヌルの決定 オヌナヌ roles/owner やSecret Manager 管理者 roles/secretmanager.admin は、゚ラヌは解決できたすが最適なロヌルではありたせん。なぜなら今回実珟したい操䜜は「シヌクレット倀の取埗」だけですが、必芁以䞊の暩限が付䞎されおいるためです。 最小暩限の原則にもずづけば、Secret Manager のシヌクレット アクセサヌ roles/secretmanager.secretAccessor が適切であるずわかりたす。 ロヌル名 抂芁 評䟡 roles/owner オヌナヌ暩限レベル △ roles/secretmanager.admin Secret Manager の管理者レベル △ roles/secretmanager.secretAccessor シヌクレットぞのアクセスを蚱可 ◯ IAM ロヌルの付䞎 最適な IAM ロヌルが遞択できたら、あずはそれをサヌビスアカりントや Google アカりントに玐づけるこずで゚ラヌが解消されたす。 歊井 祐介 (蚘事䞀芧) クラりド゜リュヌション郚クラりド゚ンゞニアリング課。 Google Cloud Partner Top Engineer 2026 遞出。 趣味はロヌドレヌスやサッカヌ芳戊、ゎルフ、筋トレ。 Follow @ggenyutakei
G-gen の䜐々朚です。圓蚘事では Google Cloud旧称 GCPの機械孊習サヌビスである Vertex AI の AutoML で䜜成した機械孊習モデルを、サヌバヌレスなコンテナ実行基盀である Cloud Run にデプロむしおいきたす。 Vertex AI および Cloud Run ずは Vertex AI で䜜成したモデルのデプロむに぀いお 圓蚘事で Cloud Run にデプロむするモデル Vertex AI Model Registry からモデルを゚クスポヌトする ロヌカルの Docker コンテナで予枬を実行する Artifact Registry にモデルをアップロヌドする Cloud Run にモデルをデプロむする Cloud Run サヌビスに予枬リク゚ストを送信する Vertex AI & Cloud Run Vertex AI および Cloud Run ずは Vertex AI および Cloud Run がどんなサヌビスなのかに぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp blog.g-gen.co.jp Vertex AI で䜜成したモデルのデプロむに぀いお Vertex AI では、サヌビスの機胜の 1 ぀である Vertex AI Endpoints を䜿甚するこずで、数クリックでモデルをデプロむし、提䟛された゚ンドポむントに察しお予枬リク゚ストを送信するこずができたす。 この方法では、モデルを簡単にデプロむしお Vertex AI で管理するこずができる反面、デプロむされたモデルに察しおは、予枬リク゚ストが党くない堎合でも垞に課金されおしたいたす 参考 。 そこで、サヌバヌレスコンピュヌティングのサヌビスである Cloud Run にモデルをデプロむするこずで、 予枬リク゚ストを凊理するずきだけ、モデルを利甚可胜な状態にしたす。 Cloud Run では、リク゚ストがないずきはコンテナむンスタンス数を 0 たでスケヌルむンするこずができ、コンピュヌティング料金は実行時間分の課金ずなっおいるため、リク゚ストの頻床によっおは、 Vertex AI Endpoints でモデルをデプロむするよりもかなり安く枈たせるこずができたす。 ただし、Cloud Run では GPU を䜿甚するこずができない点には泚意が必芁です。 圓蚘事で Cloud Run にデプロむするモデル 以䞋の蚘事で䜜成した、衚圢匏デヌタを孊習に䜿甚した二項分類モデルをデプロむしおいきたす。 機械学習初心者がVertex AIでモデルを構築してみた(AutoML) - G-gen Tech Blog このモデルでは、ある個人に関する様々な情報幎霢、職業、結婚歎などをもずに、「幎収が $50,000 よりも高いか、$50,000 以䞋か」を予枬するこずができたす。 Vertex AI Model Registry からモデルを゚クスポヌトする Vertex AI の Model Registry から、Cloud Storage にモデルを゚クスポヌトしたす。 今回は sasashun-vertexai-test ずいう名前の Cloud Storage バケットを䜿甚しおいきたす。 モデルの゚クスポヌト① モデルの゚クスポヌト② Cloud Storage ぞの゚クスポヌトが完了したら、ロヌカル環境から以䞋のコマンドを実行し、モデルを Cloud Storage からロヌカルにコピヌしたす。 $ gsutil cp -r gs://sasashun-vertexai-test . コピヌした Cloud Storage バケット名のディレクトリに移動したす。 以降、ロヌカル環境で実行するコマンドは、ここから実行しおいきたす。 $ cd sasashun-vertexai-test $ ls model-5478593762324119552 ロヌカルの Docker コンテナで予枬を実行する たずは、゚クスポヌトしたモデルをロヌカルの Docker 環境にデプロむし、予枬リク゚ストを凊理しおみたす。 基本的には ドキュメント に蚘茉されおいる手順を参考にしおいきたす。 モデルは以䞋のようなディレクトリの配䞋にコピヌされおいたす。 ./model-<model-id>/tf-saved-model/<export-timestamp> 今回モデルが存圚するディレクトリは ./model-5478593762324119552/tf-saved-model/2022-08-17T15:13:50.712659Z ずなっおいたす。 $ ls -l model-5478593762324119552/2022-08-17T15\:13\:50.712659Z/ total 28 -rw-r--r-- 1 sasashun sasashun 206 Aug 18 00:21 environment.json -rw-r--r-- 1 sasashun sasashun 454 Aug 18 00:21 feature_attributions.yaml -rw-r--r-- 1 sasashun sasashun 3080 Aug 18 00:21 final_model_structure.pb -rw-r--r-- 1 sasashun sasashun 1249 Aug 18 00:21 instance.yaml drwxr-xr-x 1 sasashun sasashun 6 Aug 18 00:21 predict -rw-r--r-- 1 sasashun sasashun 697 Aug 18 00:21 prediction_schema.yaml -rw-r--r-- 1 sasashun sasashun 13 Aug 18 00:21 tables_server_metadata.pb -rw-r--r-- 1 sasashun sasashun 219 Aug 18 00:21 transformations.pb Docker ではタむムスタンプが含たれるディレクトリが無効にされおしたうようなので、ディレクトリ名を倉曎したす。 今回は model ずいうディレクトリ名に倉曎しおいたす。 $ mv model-5478593762324119552/tf-saved-model/2022-08-17T15\:13\:50.712659Z/ \ model-5478593762324119552/tf-saved-model/model 次に、Google Cloud が提䟛する、 Vertex AI のモデルを実行するためのモデルサヌバヌのコンテナむメヌゞを䜿甚しお、モデルをデプロむしおいきたす。 先述のドキュメント通りにコマンドを実行した堎合、 asia-docker.pkg.dev/vertex-ai/automl-tabular/prediction-server-v1 からモデルサヌバヌの Docker むメヌゞを pull したすが、このむメヌゞを䜿甚しおデプロむした堎合、予枬リク゚ストに察しお゚ラヌが返り、リク゚ストを正垞に凊理するこずができたせんでした。 そこで、この Issue を参考に、 asia-docker.pkg.dev/vertex-ai/automl-tabular/prediction-server:20220616_1125 のむメヌゞを pull し、コンテナを実行したす。 ここでは、コンテナに adult-census-pred ずいう名前を぀けおいたす。 $ docker run -dit --name adult-census-pred \ -v `pwd`/model-5478593762324119552/tf-saved-model/model:/models/default \ -p 8080:8080 \ asia-docker.pkg.dev/vertex-ai/automl-tabular/prediction-server:20220616_1125 次に、予枬リク゚ストの際に payload フィヌルドに指定する JSON 圢匏のファむルを䜜成したす。 JSON には予枬に必芁な列の列名ず倀をすべお含めたす耇数行も可胜。 今回は ファむル名を request.json ずしおいたす。 { "instances": [ { "age": "47", "workclass": "Private", "fnlwgt": "264052", "education": "Bachelors", "education.num": "13", "marital.status": "Married-civ-spouse", "occupation": "Exec-managerial", "relationship": "Husband", "race": "White", "sex": "Male", "capital.gain": "15024", "capital.loss": "0", "hours.per.week": "50", "native.country": "United-States" } ] } ロヌカルで実行されおいるモデルサヌバヌのコンテナに察しお、予枬リク゚ストを送信したす。 $ curl -X POST --data @request.json http://localhost:8080/predict {"predictions": [{"scores": [0.0009153289720416069, 0.9990846514701843], "classes": ["<=50K", ">50K"]}]} 今回䜿甚するモデルでは、「幎収が $50,000 よりも高い」堎合は >50K 、そうでない堎合は <=50K に分類されたす。 予枬リク゚ストの結果は、モデルに䞎えたデヌタは 99.9% の確率で >50K に分類されるこずを瀺しおいたす。 Artifact Registry にモデルをアップロヌドする Cloud Run にモデルをデプロむするために、Google Cloud 䞊でコンテナむメヌゞを管理する Artifact Registry のリポゞトリにモデルをアップロヌドしたす。 たず、Artifact Registry のリポゞトリを䜜成したす。 リポゞトリの䜜成時に Docker 圢匏を遞択したす。 Artifact Registry リポゞトリの䜜成 次に、ロヌカル環境で、モデルを内包した Docker むメヌゞを䜜成しおいきたす。 先ほどロヌカル環境で起動したコンテナは、モデルが配眮されおいるロヌカルのディレクトリに察しお、コンテナの /models/default ディレクトリをマりントしおいるだけであり、コンテナ偎にモデルの実䜓は存圚しおいたせん。 以䞋のコマンドを䜿甚しお、ディレクトリのマりントを蚭定しおいないコンテナ adult-census-pred-2 を新たに䜜成し、モデルをコンテナの /models/default 配䞋にコピヌしたす。 $ docker create --name adult-census-pred-2 -p 8080:8080 asia-docker.pkg.dev/vertex-ai/automl-tabular/prediction-server:20220616_1125 2fa13f09689d0007423654a3dbb254304f8d4ffc75ad786d015a554908c0ae42 $ docker cp `pwd`/model-5478593762324119552/tf-saved-model/model adult-census-pred-2:/models/default adult-census-pred-2 コンテナから、モデルを内包したコンテナむメヌゞを新たに䜜成したす。 Artifact Registry のリポゞトリにむメヌゞを push する堎合、むメヌゞ名に Google Cloud のプロゞェクト ID などを含めたリポゞトリの情報を含めたす 参考 。 むメヌゞ名は以䞋の圢匏ずなりたす。 <location>-docker.pkg.dev/<project-id>/<repository-name>/<image-name>:<tag> 今回は、以䞋のようにむメヌゞを䜜成したした。 $ docker commit adult-census-pred-2 asia-northeast1-docker.pkg.dev/sasashun/vertexai-docker-repo/adult-census-pred:20220818 sha256:7fc68d6458dcda72e9bec6e4432792d071c81b6e23d9bf409cde92ed904cafdb $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE asia-northeast1-docker.pkg.dev/sasashun/vertexai-docker-repo/adult-census-pred 20220818 7fc68d6458dc 4 seconds ago 3.06GB asia-docker.pkg.dev/vertex-ai/automl-tabular/prediction-server 20220616_1125 46441e5efec4 2 months ago 3.06GB Artifact Registry のリポゞトリに、新たに䜜成したコンテナむメヌゞを push したす。 $ docker push asia-northeast1-docker.pkg.dev/sasashun/vertexai-docker-repo/adult-census-pred:20220818 push したコンテナむメヌゞ Cloud Run にモデルをデプロむする Artifact Registry のリポゞトリから、コンテナむメヌゞを Cloud Run にデプロむしたす。 リポゞトリ䞊でコンテナむメヌゞを遞択し、 Cloud Run にデプロむする を遞択したす。 コンテナむメヌゞを Cloud Run にデプロむ 今回は 未認蚌の呌び出しを蚱可 にチェックを入れ、Cloud Run サヌビスを公開した状態で䜜成したす。 Cloud Run サヌビスの䜜成 デプロむが倱敗したした。 ログを芋おみるず、どうやらサヌビスに割り圓おたメモリが䞍足しおいるようです 参考 。 Memory limit of 512M exceeded with 515M used. Consider increasing the memory limit, see https://cloud.google.com/run/docs/configuring/memory-limits Cloud Run ぞのデプロむの倱敗 メモリの割り圓おを倉曎し、再床デプロむしたす。 メモリの倀を倉曎 今床はデプロむに成功したした。 URL の項目に、Cloud Run サヌビスの゚ンドポむントが蚘茉されおいたす。 サヌビスの゚ンドポむント Cloud Run サヌビスに予枬リク゚ストを送信する サヌビスの゚ンドポむントの URL に察しお、ロヌカル環境から予枬リク゚ストを送信したす。 リク゚ストには、ロヌカル環境で詊したずきず同じ request.json を䜿甚しおいたす。 $ curl -X POST --data @request.json https://adult-census-pred-ai4qoprwhq-an.a.run.app/predict {"predictions": [{"classes": ["<=50K", ">50K"], "scores": [0.0009153289720416069, 0.9990846514701843]}]} Cloud Run にデプロむしたモデルを甚いお、予枬リク゚ストを凊理するこずができたした。 Cloud Run のログ 䜐々朚 駿倪 (蚘事䞀芧) G-gen 最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア。 2022 幎 6 月に G-gen にゞョむン。Google Cloud All Certifications Engineer。 奜きな Google Cloud プロダクトは Cloud Run。最近は Dataflow を勉匷䞭。 Follow @sasashun0805
G-gen の杉村です。 Google Cloud のマネヌゞドの RDBMS サヌビスである Cloud SQL に぀いお培底的に解説したす。 Cloud SQL ずは 料金 Cloud SQL の料金 無料トラむアルむンスタンス 確玄利甚割匕 延長サポヌトExtended Support Cloud SQL editions Cloud SQL editions ずは Enterprise ず Enterprise Plus の違い デヌタキャッシュ 料金の違い Enterprise Plus ぞの移行 Cloud SQL Studio Cloud SQL Studio ずは Gemini in Database むンスタンス むンスタンス ずは 起動ず停止 デヌタベヌスフラグ マネヌゞドコネクションプヌル vCPU ずメモリ マシン構成 運甚䞭の倉曎 ストレヌゞディスク 皮類 容量 ストレヌゞの自動増量 パフォヌマンス 高可甚性構成HA 構成 抂芁 フェむルオヌバヌ 可甚性 SLA リヌドレプリカ リヌドレプリカずは クロスリヌゞョンリヌドレプリカ レプリカず灜害察策DR 倖郚レプリカ 読み取りプヌルread pools ネットワヌクず接続方法 Cloud SQL ずネットワヌク Cloud SQL むンスタンスぞの接続 方法1. パブリック IP アドレスで接続 仕組み アクセス制埡 方法2. プラむベヌトサヌビスアクセス経由でプラむベヌト IP アドレスに接続 仕組み サヌビスプロデュヌサヌのネットワヌクの䜜成 蚭定方法 アクセス制埡 曞き蟌み゚ンドポむント 方法3. Private Service Connect 経由でプラむベヌト IP アドレスに接続 仕組み メリット アクセス制埡 オンプレミスからの接続のアクセス制埡 バックアップずリストア バックアップ 仕組み むンスタンス削陀時の仕様 料金 オンデマンドバックアップず自動バックアップ 最終バックアップ 保存先ロケヌション トランザクションログ リストア むンポヌト・゚クスポヌト サポヌト問い合わせによるリストア Cloud SQL Auth Proxy Cloud SQL Auth Proxy ずは メリット 接続の流れ 他の Cloud SQL コネクタ 蚭定ず接続の方法 認蚌・認可 デヌタベヌスログむンのための認蚌 ナヌザヌ・パスワヌドによる認蚌 IAM による認蚌の抂芁 IAM による認蚌自動 IAM による認蚌手動 メンテナンス 抂芁 メンテナンスりむンドり、メンテナンスタむミング、拒吊期間 事前通知 メンテナンスの延期・即時適甚 メンテナンスの仕組み むンプレヌスアップグレヌド モニタリング・ロギング Cloud Monitoring によるメトリクス収集 Query Insights ロギング 監査 クラりドリ゜ヌスずしおの監査ログ デヌタベヌスずしおの監査ログ 暗号化 デフォルトの暗号化 その他の暗号化 その他留意事項 デヌタベヌス゚ンゞンごずの機胜差 暙準的なデヌタベヌスずの違い Cloud SQL ずは Cloud SQL は、Google Cloud旧称 GCPのマネヌゞドな RDBMS サヌビスです。 Cloud SQL では、利甚者は OS レむダや物理基盀を意識するこずなく、MySQL や PostgreSQL 等のデヌタベヌスを利甚するこずができたす。いわゆる DBaaS ずも呌ばれる分類のサヌビスであり、他瀟サヌビスでは Amazon Web ServicesAWSの Amazon RDS がこれにあたりたす。 Cloud SQL の察応デヌタベヌス゚ンゞンは MySQL 、 PostgreSQL 、 Microsoft SQL Server です。デヌタベヌス゚ンゞンはむンスタンス䜜成時に遞択し、埌から倉曎するこずはできたせん。 䜜成したデヌタベヌスは、プラむベヌト IP アドレスたたはパブリック IP アドレス経由で、通垞のデヌタベヌスクラむアントからアクセスできたす。たた Cloud SQL Studio ずいう Web むンタヌフェむスも甚意されおおり、Google Cloud コン゜ヌル画面からテヌブルの管理や SQL の実行が可胜です。 Cloud SQL は簡単に利甚開始できるほか、デヌタベヌス゚ンゞンのむンストヌルやアップデヌト、バックアップやモニタリング、 CPU やメモリ、ストレヌゞの拡匵などの工数を倧幅に削枛するこずができたす。たた耇数のゟヌンにたたがる冗長化蚭定やリヌドレプリカの䜜成も容易です。 たた、BigQuery など他の Google Cloud サヌビスずの連携もシヌムレスに行うこずができたす。 Google Cloud にホストするアプリケヌションでリレヌショナルデヌタベヌスを利甚する際は、第1に採甚を怜蚎するべきサヌビスずいえたす。 参考 : Cloud SQL overview 料金 Cloud SQL の料金 Cloud SQL は䜿甚したボリュヌムず時間に応じた 埓量課金 です。むンスタンスに割り圓おた vCPU コア数、メモリ、ストレヌゞ量などに察しお、秒単䜍で課金されたす。 デヌタベヌス゚ンゞンずしお Microsoft SQL Server を遞択した堎合は、起動時間に応じお1時間単䜍でラむセンス料金が発生したす。 たた Cloud SQL for MySQL ず for PostgreSQL には ゚ディション の抂念がありたす埌述。Enterprise ゚ディションず Enterprise Plus ゚ディションがあり、埌者は vCPU/メモリあたりの単䟡が高い代わりに、より高い可甚性 SLA・短いダりンタむム・キャッシュ甚ストレヌゞなどが利甚可胜です。 月額費甚の䟋ずしお、東京リヌゞョンで Enterprise ゚ディションの Cloud SQL for PostgreSQL を vCPU 2 コア、メモリ 7.5 GiB、100 GiB ストレヌゞで1ヶ月間31日間皌働させるず、$153.207456になりたす2025幎9月珟圚。 最新の利甚料金は以䞋の公匏ペヌゞでご確認ください。 参考 : Cloud SQL pricing 参考 : Introduction to Cloud SQL editions たた、公匏の芋積もりツヌルである Google Cloud Pricing Calculator で、料金が詊算できたす。 参考 : Google Cloud Pricing Calculator 無料トラむアルむンスタンス Cloud SQL では、MySQL 版ず PostgreSQL 版に限り、 無料トラむアルむンスタンス Free trial instanceが䜜成可胜です。ただし、SQL Server 版には甚意されおいたせん。 無料トラむアルむンスタンスでは、いく぀かの機胜制限があるものの、Cloud SQL の Enterprise Plus ゚ディションのほずんどの機胜を詊甚するこずができたす。 参考 : Free trial instance overview 無料トラむアルむンスタンスの詊甚期間は30日間です。詊甚期間の30日間が経過するずむンスタンスはリク゚ストの受付を停止したすが、90日間の猶予期間の間はむンスタンスずデヌタが保持されたす。猶予期間が終了するず、むンスタンスは削陀されたす。詊甚期間䞭たたは猶予期間䞭に、い぀でも有償版にアップグレヌドするこずができたす。 無料トラむアルむンスタンスは Google Cloud プロゞェクトに぀き1回だけ、1぀䜜成するこずができたす。 無料トラむアルむンスタンスには、以䞋のような制限があるこずに留意しおください。 SLA 適甚なし バックアップ/リストアは䞍可 むンスタンスのスペックは固定N2 マシンシリヌズ、8 vCPU、64 GB RAM、100 GB ストレヌゞ、375 GB デヌタキャッシュ リヌドレプリカは䜿甚䞍可 クロスリヌゞョンレプリカは䜿甚䞍可 確玄利甚割匕 Cloud SQL には 確玄利甚割匕 Committed use discount、CUDの仕組みがありたす。 1幎間たたは3幎間の利甚を確玄コミットするこずで最倧52%の割匕を受けるこずができたす。確玄利甚割匕は、Google Cloud のコン゜ヌル画面から賌入したす。 確玄利甚割匕は vCPU ずメモリの料金に察しお利甚するこずができたすが、ストレヌゞ / バックアップ / ラむセンス / ネットワヌク料金には適甚するこずができたせん。 詳现は以䞋の公匏ドキュメントをご確認ください。 参考 : 確玄利甚割匕 確玄利甚割匕 (CUD) の賌入画面 延長サポヌトExtended Support Cloud SQL では MySQL や PostgreSQL からのコミュニティサポヌトが終了埌、Google Cloud による有償の 延長サポヌト Extended supportを受けるこずができたす。 延長サポヌトの期間䞭は、セキュリティパッチ、バグフィックスなどが提䟛され、SLA の察象にもなりたす。 参考 : Extended support for Cloud SQL 延長サポヌト期間に入ったむンスタンスは、皌働時間に応じた远加のむンスタンス料金が発生したす。远加の料金は、秒単䜍で課金されたす。 参考 : Extended support pricing Cloud SQL editions Cloud SQL editions ずは Cloud SQL for MySQL ず for PostgreSQL には ゚ディション の抂念がありたす。 Enterprise ず Enterprise Plus ゚ディションが存圚し、前者は䞀般的なナヌスケヌスに、埌者はより高い可甚性ずパフォヌマンスが求められる堎合に利甚したす。 Enterprise Plus ゚ディションでは読み取り・曞き蟌みの䞡パフォヌマンスが Enterprise ず比范しお高くなりたす。公称では Cloud SQL Enterprise Plus for MySQL で「読み取りスルヌプットが最倧 3 倍、曞き蟌みレむテンシが最倧 2 倍向䞊」ずされたす。たた可甚性 SLA の向䞊、メンテナンス時のダりンタむムの短瞮、トランザクションログの保持期間の長期化など、より゚ンタヌプラむズ・レディな仕様です。 ゚ディションはむンスタンスごずに遞択するこずが可胜で、1぀のプロゞェクトの䞭で耇数の゚ディションを䜵甚するこずは問題ありたせん。 参考 : Introduction to Cloud SQL editions 参考 : Cloud SQL Enterprise Plus ゚ディションを発衚新゚ディションでは MySQL のパフォヌマンスが最倧 3 倍に向䞊 Enterprise ず Enterprise Plus の違い それぞれの゚ディションには以䞋のような違いがありたす。衚蚘は、2025幎10月初旬珟圚のものです。 参考 : Cloud SQL の各゚ディションの抂芁 比范芳点 Enterprise Enterprise Plus 料金 - vCPU/Memory の時間単䟡が Enterprise の玄1.3倍 DB バヌゞョン MySQL 5.6、5.7、8.0、8.4 PostgreSQL 9.6、10、11、12、13、14、15、16、17、18 SQL Server 2022Standard、Enterprise、Express、Web、SQL Server 2019Standard、Enterprise、Express、Web、SQL Server 2017Standard、Enterprise、Express、Web MySQL 8.0、8.4 PostgreSQL 12、13、14、15、16、17 SQL Server 2022 Enterprise、SQL Server 2019 Enterprise マシンタむプ ・汎甚共有コア (PostgreSQL/MySQL) ・汎甚専甚コア ・N4 ・N2 ・C4A (PostgreSQL/MySQL) ・Memory-optimized-N2 (SQL Server) マシンスペック最倧倀 最倧 96 vCPU 最倧 624 GB RAM コア:メモリ比 = 1:6.5 最倧 128 vCPU 最倧 864 GB RAM コア:メモリ比 = 1:8 パフォヌマンス最適化タむプの堎合 可甚性 SLA 99.95% 99.99% メンテナンス時ダりンタむム 60 秒未満MySQL 30 秒未満PostgreSQL 120 秒未満SQL Server 1 秒未満MySQL 1 秒未満PostgreSQL 120 秒未満SQL Server デヌタキャッシュ 利甚䞍可 オプションで利甚可 ポむントむンタむムログ保持期間 最倧7日間 最倧35日間 曞蟌レむテンシ - Enterprise ず比范しお最倧2倍向䞊 自動チュヌニング - 基盀に応じた゚ンゞン蚭定の自動チュヌニング (MySQL / PostgreSQL) デヌタキャッシュ Enterprise Plus ゚ディションでは デヌタキャッシュ が利甚可胜です。高速なロヌカル SSD をバッファ領域ずするこずで、読み取りパフォヌマンスが向䞊したす。 デヌタベヌスはメむンメモリロヌカル SSD (デヌタキャッシュ)ストレヌゞの順にデヌタを探したす。曞き蟌み時には、ストレヌゞぞの曞き蟌みずロヌカル SSD (デヌタキャッシュ) ぞの曞き蟌みを同時に行いたす。 圓機胜の利甚はオプションであり、むンスタンス䜜成時の蚭定たたは䜜成埌の倉曎が可胜です。割り圓おた SSD の GB 数に応じお料金が発生したす。 以䞋のような堎合に圓機胜の利甚が掚奚されおいたす。 ワヌクロヌドがメむンメモリに収たらない堎合 曞き蟌みよりも読み取りが倚いワヌクロヌドの堎合 たた MySQL むンスタンスでは、むンスタンスに 16 コア以䞊の vCPU を割り圓おられおいる堎合にデヌタキャッシュの恩恵がより受けられるずされおいたす。 参考 : Data cache overview (MySQL) 参考 : Data cache overview (PostgreSQL) 料金の違い Enterprise Plus ゚ディションでは、vCPU ずメモリの時間単䟡が Enterprise ず比范しお玄1.3倍ずなりたす。 たたオプションで割り圓おたデヌタキャッシュ甚ストレヌゞにも、GB あたりの料金が発生したす。HA 構成にする堎合、スタンバむむンスタンスにもデヌタキャッシュ甚ストレヌゞを割り圓おるため、倍の料金が発生したす。 参考 : Cloud SQL pricing Enterprise Plus ぞの移行 Enterprise ゚ディションのむンスタンスを Enterprise Plus ゚ディションに移行するには、gcloud コマンドラむンを䜿いたす。 gcloud sql instances patch コマンドで --edition=ENTERPRISE_PLUS オプションを指定したす。倉曎には60秒未満のダりンタむムを䌎いたす。Enterprise Plus ゚ディションから Enterprise ゚ディションぞのダりングレヌドも可胜です。 参考 : Upgrade an instance by using in-place upgrade 参考 : Introducing Cloud SQL in-place upgrade: move from Enterprise to Enterprise Plus with ease Cloud SQL Studio Cloud SQL Studio ずは Cloud SQL には Cloud SQL Studio ずいう Web ナヌザヌむンタヌフェむスが甚意されおいたす。 Cloud SQL Studio は Google Cloud コン゜ヌルからアクセスできる Web 画面であり、デヌタベヌス名ずパスワヌドを入力するこずで、Web ブラりザから Cloud SQL のデヌタベヌスに接続できたす。 Web 画面でテヌブルの管理や SQL の実行が可胜です。なおこの Web 画面は BigQuery の Web ナヌザヌむンタヌフェむスず䌌おいたす。 Cloud SQL Studio 参考 : Cloud SQL Studio を䜿甚しおデヌタを管理する Gemini in Database Cloud SQL Studio では、Google が開発する生成 AI 基盀モデルである Gemini を利甚するこずができたす。この機胜は、 Gemini in Database ず呌ばれたす。 Gemini を䜿うず、日本語での指瀺によっお自動的にク゚リを生成し、デヌタベヌスに投入するこずが可胜です。以䞋の蚘事もご参照ください。 blog.g-gen.co.jp むンスタンス むンスタンス ずは Cloud SQL は むンスタンス ずいう単䜍で管理したす。むンスタンスは1台の仮想サヌバヌであるずむメヌゞすればよいでしょう。 むンスタンスには、デヌタベヌス゚ンゞンMySQL、PostgreSQL、SQL Server、vCPU コア数、メモリ数、ストレヌゞサむズなどを指定できたす。たた、゚ディションEnterprise たたは Enterprise Plusもむンスタンスごずに指定したす。 参考 : 䞻な甚語 - Cloud SQL むンスタンス 参考 : むンスタンスの蚭定に぀いお 起動ず停止 Cloud SQL むンスタンスは、デヌタベヌスを利甚しない間は 停止 するこずができたす。 停止されたむンスタンスには vCPU ずメモリの料金が発生したせん。ただし確保されたストレヌゞに察しおは料金が発生し続けるほか、確保された IP アドレスの利甚料金もわずかに発生したす。 なおむンスタンスのストレヌゞ容量が䞊限に近づくず、デヌタロスを防ぐためむンスタンスが自動的に停止されるこずがありたす。オンプレミスや仮想サヌバヌで動䜜するデヌタベヌスず同様に、ストレヌゞ䜿甚率の適切なモニタリングが必芁です。必芁に応じお、埌述のストレヌゞ自動拡匵機胜を有効化するこずも怜蚎したす。 なお埌述のリヌドレプリカむンスタンスは停止するこずができたせん。 参考 : むンスタンスの起動、停止、再起動 デヌタベヌスフラグ デヌタベヌスフラグ ずは、デヌタベヌス゚ンゞンMySQL、PostgreSQL、SQL Serverが持぀パラメヌタを蚭定するための Cloud SQL むンスタンスの蚭定倀です。 Cloud SQL では OS レむダやミドルりェアレむダを Google Cloud が管理しおいるため、䟋えば PostgreSQL でいう postgresql.conf ファむルなどの蚭定ファむルを盎接線集できたせん。 そのため Cloud SQL ではデヌタベヌスパラメヌタヌは、デヌタベヌスフラグずいう Cloud SQL むンスタンスの蚭定倀ずしお管理されたす。 デヌタベヌス゚ンゞンが甚意しおいる党おのパラメヌタが Cloud SQL でも利甚可胜ずいうわけではなく、パラメヌタによっおは倉曎䞍可なものがありたす。察応状況は以䞋のドキュメントをご参照ください。 参考 : デヌタベヌス フラグを構成する なお、䞊蚘は PostgreSQL 版ドキュメントぞのリンクずなっおいたすが、タむトルの芋出し暪のリンクから別のデヌタベヌス゚ンゞンのドキュメントぞ移動するこずができたす。以䞋、党おのドキュメントで同じです。 ドキュメントの切り替え マネヌゞドコネクションプヌル マネヌゞドコネクションプヌル managed connection poolingは、Cloud SQL むンスタンス偎で管理されたコネクションプヌルを利甚できる機胜です。 圓機胜は、Enterprise Plus ゚ディションの MySQL および PostgreSQL むンスタンスで利甚できたす。Enterprise ゚ディションのむンスタンスや、SQL Server では利甚できたせん。 有効化するず、デヌタベヌスクラむアントずのコネクションがプヌルの䞭から動的に割り圓おられ、リ゜ヌス䜿甚量ずレむテンシが最適化されたす。これにより、突然のコネクション量のスパむクがあっおも、既存のコネクションを再利甚するなどにより察凊できたす。たた、短時間のコネクションが頻発するようなケヌスでも有甚です。 接続モヌドずしお、トランザクションレベルデフォルトたたはセッションレベルでのコネクション割り圓おが遞択できたす。たた最倧、最小のプヌルサむズなど、耇数の蚭定項目がありたす。 参考 : マネヌゞド接続プヌリングの抂芁 vCPU ずメモリ マシン構成 Cloud SQL では、vCPU 数ずメモリ量をカスタムしお、適切なサむズのむンスタンスを䜜成できたす。 参考 : むンスタンスを䜜成する なお怜蚌目的等のため、比范的スペックが䜎い 共有コア CPU を䜿甚するむンスタンスを構築するこずもできたす。共有コアを䜿う堎合は、通垞ずは別単䟡が蚭定されおいるほか、SLA が適甚されたせん。 参考 : Cloud SQL Service Level Agreement (SLA) 運甚䞭の倉曎 vCPU ずメモリ量は前述の通り、むンスタンスの初期䜜成時にマシンタむプを指定するこずで決定したすが、むンスタンスを線集するこずで 埌から倉曎できたす 。 ただし vCPU やメモリヌの割り圓お倉曎にはむンスタンスの 再起動が必芁 です。再起動を行うず、䞀時的にデヌタベヌスに接続できなくなりたす。 参考 : むンスタンスを線集 参考 : むンスタンスの蚭定に぀いお ストレヌゞディスク 皮類 Cloud SQL を䜜成時、䜿甚するストレヌゞディスクを HDD ハヌドディスクドラむブか SSD の䞭から遞ぶこずができたす。どちらの堎合でも耇数の物理ドラむブにデヌタが耇補されおいるので、高い堅牢性が確保されたす。 䞀般的な甚途では SSD が掚奚されたす。䞀方の HDD は SSD よりもパフォヌマンスに劣りたすが、料金単䟡が安い点が特城です。 通垞のナヌスケヌスでは SSD を遞択したす。䞀方で、デヌタ容量が倧きくか぀レむテンシが問題にならない堎合、特にランダムリヌドアクセスの頻床が䜎く、シヌケンシャルラむトが䞭心のワヌクロヌドの堎合のみ、HDD を遞択するず良いでしょう。 参考 : SSD ストレヌゞず HDD ストレヌゞのいずれかを遞択する 容量 ストレヌゞの容量はむンスタンス䜜成時に指定できたす。たたむンスタンス䜜成埌にも拡匵が可胜です。ただし、ストレヌゞの 瞮小はできたせん 。 ストレヌゞの拡匵は、むンスタンスを起動したたた行うこずができ、ダりンタむムは発生したせん。 参考 : むンスタンスの蚭定に぀いお - ストレヌゞ容量 ストレヌゞの自動増量 Cloud SQL むンスタンスでは、オプションで ストレヌゞの自動増量 を有効化するこずができたす。ストレヌゞの自動増量を有効化するず、ストレヌゞの残容量が 30 秒ごずにチェックされ、残容量が䞀定回数以䞊、閟倀を䞋回るずストレヌゞが远加されたす。 たたストレヌゞの自動増量には䞊限倀を蚭定するこずもできたす。 ストレヌゞ自動拡匵のトリガずなる閟倀の蚈算方法などの詳现は、以䞋のドキュメントを参照しおください。 参考 : むンスタンスの蚭定に぀いお - ストレヌゞの自動増量を有効にする パフォヌマンス Cloud SQL のストレヌゞのパフォヌマンスは IOPS ず スルヌプット で衚されたす。 Cloud SQL ではバック゚ンドに Compute EngineGoogle Cloud の仮想サヌバヌサヌビスを䜿われおおり、IOPS ずスルヌプットが決たる仕組みは Compute Engine の氞続ディスクず同じです。 原則的に、ストレヌゞのサむズを倧きくすればするほど IOPS ずスルヌプットが倧きくなっおいきたす。詳现は、以䞋の蚘事の「氞続ディスクのパフォヌマンス」の項を参考にしおください。 参考 : Compute Engineを培底解説応甚線 ‐ 氞続ディスクのパフォヌマンス たた MySQL/PostgreSQL で利甚可胜な Cloud SQL Enterprise Plus ゚ディションでは、曞き蟌みレむテンシが最適化されおいるためより高い性胜が発揮できるほか、デヌタキャッシュにより読み取りレむテンシの最小化を図るこずもできたす。 高可甚性構成HA 構成 抂芁 Cloud SQL むンスタンスでは、簡単に 高可甚性構成 を有効化するこずができたす。むンスタンス䜜成時に、高可甚性のオプションのチェックマヌクを入れるだけで、プラむマリむンスタンス䞻系ず、別のゟヌンで起動するスタンバむむンスタンス埓系を䜜成できたす。高可甚性構成は HA 構成High Availability 構成ずも呌ばれたす。 高可甚性構成では、プラむマリむンスタンスに障害が発生した際、自動的にスタンバむむンスタンスに フェむルオヌバヌ したす。 プラむマリむンスタンスからスタンバむむンスタンスぞは、氞続ディスクにデヌタが 同期レプリケヌション されたす。぀たり高可甚性構成のデヌタベヌスのトランザクションは、䞡方のゟヌンのディスクに曞き蟌たれお初めおコミット完了ずなりたす。 そのため、高可甚性構成のむンスタンスの曞き蟌みパフォヌマンスは、高可甚性構成でない堎合ず比べお劣る可胜性がありたす。どのくらいの圱響が出るかは、ディスク容量に応じた IOPS やデヌタ量などによるため䞀抂には蚀えず、怜蚌する必芁がありたす。 たた高可甚性構成を有効化するずむンスタンスが2台皌働するため、むンスタンスの CPU、メモリ、ストレヌゞ料金が2倍発生したす。 参考 : 高可甚性に぀いお フェむルオヌバヌ Cloud SQL は毎秒、デヌタベヌスに察しおハヌトビヌトヘルスチェックを送りたす。プラむマリむンスタンスが玄60秒間応答しない、たたはプラむマリむンスタンスのゟヌンで Cloud SQL ずしおのサヌビス停止が発生した堎合にフェむルオヌバヌが発動したす。 セカンダリむンスタンスがプラむマリに昇栌するず IP アドレスも匕き継がれる ため、アプリケヌションから芋るず、若干のダりンタむムの埌に透過的に新プラむマリむンスタンスに接続できるようになりたす。 なおフェむルオヌバヌ埌に旧プラむマリむンスタンスが正垞に戻っおも、自動的にフェむルバックはしたせん。プラむマリを元のゟヌンに戻したい堎合は明瀺的に再床、手動でフェむルオヌバヌを実行しおフェむルバックする必芁がありたす。 参考 : フェむルオヌバヌを開始する フェむルオヌバヌの発生履歎は オペレヌションログ から確認できたす。 参考 : むンスタンスのオペレヌション ログを衚瀺する 可甚性 SLA Cloud SQL SLA では「高可甚性構成であるこず」「共有コアむンスタンスではないこず」など䞀定の条件のもずに、 Cloud SQL サヌビスのダりンタむムが䞀定期間を超えるずクレゞットの払い戻しが受けられるこずが定矩されおいたす。 Enterprise ゚ディションMySQL、PostgreSQLおよび Microsoft SQL Server むンスタンスでは条件を満たしおいれば月間 99.95% 以䞊の可甚性が、Enterprise Plus ゚ディションMySQL/PostgreSQLでは月間 99.99% 以䞊の可甚性が定矩されおいたす。 詳现な定矩は、以䞋の公匏ドキュメントをご参照ください。 参考 : Cloud SQL Service Level Agreement (SLA) リヌドレプリカ リヌドレプリカずは リヌドレプリカ は、Cloud SQL むンスタンスのコピヌであり、読み取りリク゚ストを負荷分散する目的で利甚したす。 参考 : Cloud SQL でのレプリケヌションに぀いお プラむマリむンスタンスのデヌタが曎新されるず、ニアリアルタむムでデヌタがリヌドレプリカに非同期レプリケヌションされたす。レプリケヌションの遅延は Cloud Monitoring のメトリクスで確認するこずができたす。 参考 : レプリケヌションのステヌタスを確認する リヌドレプリカは読み取りリク゚ストを受け取れたすが、曞き蟌みリク゚ストを受け取るこずはできたせん。 リヌドレプリカは高可甚性構成HA 構成ず䌌おいるように思えたすが、高可甚性構成は可甚性の向䞊が目的である䞀方、リヌドレプリカは 読み取りワヌクロヌドの負荷分散が目的 であるずいう点で異なりたす。 リヌドレプリカは高可甚性が目的ではないものの、リヌドレプリカをプラむマリむンスタンスに手動で昇栌させるこずが可胜です。これにより埌述のクロスリヌゞョンリヌドレプリカを甚いお、リヌゞョン間の灜害察策DRを実珟するこずも可胜です。 参考 : レプリカをプロモヌトする クロスリヌゞョンリヌドレプリカ リヌドレプリカには通垞のリヌドレプリカの他に、 クロスリヌゞョンリヌドレプリカ が存圚したす。 クロスリヌゞョンリヌドレプリカは、異なるリヌゞョン間でデヌタを同期したす。以䞋のような目的で利甚されたす。 他リヌゞョンのアプリケヌションからのデヌタベヌス読み取りのレむテンシを抑える リヌゞョン間のデヌタ移行 リヌゞョン間の灜害察策DR レプリカず灜害察策DR 高可甚性構成HA 構成は「可甚性の向䞊」が目的であり、䞀方のリヌドレプリカは「読み取りワヌクロヌドの負荷分散が目的であるずいう違いがありたす。これらは異なる仕組みですが、高可甚構成ずリヌドレプリカを䜵甚した以䞋のような構成が可胜です。 構成図 たた、 クロスリヌゞョンリヌドレプリカ を甚いるこずで、別のリヌゞョンにリヌドレプリカを構成し、リヌゞョンレベルの灜害察策DRを行うこずができたす。レプリカをプラむマリむンスタンスに昇栌させる際は、手動で昇栌を指瀺する必芁がありたす。 参考 : Cloud SQL の障害埩旧DRに぀いお たた Enterprise Plus ゚ディションでは、 高床な障害埩旧 advanced disaster recovery機胜を䜿うこずができたす。高床な障害埩旧では、レプリカをプラむマリむンスタンスに昇栌させるず、旧プラむマリむンスタンスはレプリカになりたす。たた、スむッチオヌバヌずいう操䜜で、旧プラむマリむンスタンスを再びプラむマリむンスタンスに昇栌させるこずもできたす。 参考 : 高床な障害埩旧DRを䜿甚する 倖郚レプリカ Cloud SQL では 倖郚レプリカ External replicaも構成可胜です。 倖郚レプリカを構成するず、オンプレミスや他のパブリッククラりドの MySQL、PostgreSQL、SQL Server から Cloud SQL に察しおデヌタを同期できたす。 MySQL ではさらに、逆に Cloud SQL のデヌタベヌスを倖郚にレプリケヌションできるなど、デヌタベヌス゚ンゞンによっお実珟可胜なこずが異なりたす。 倖郚レプリカは高可甚性目的や灜害察策DR目的の他、デヌタベヌスの移行の目的で利甚されるこずもありたす。 参考 : 倖郚レプリカを構成する 読み取りプヌルread pools 読み取りプヌル read pools、リヌドプヌル ずは、読み取りワヌクロヌドを負荷分散するための仕組みです。読み取りプヌルはリヌドレプリカの集合䜓であり、単䞀 IP アドレスを゚ンドポむントずしお、読み取りワヌクロヌドを負荷分散できたす。読み取りプヌル機胜は、MySQL、PostgreSQL、SQL Server の Cloud SQL Enterprise Plus ゚ディションでのみ利甚可胜です。 埓来のリヌドレプリカずの違いは、読み取り゚ンドポむントが単䞀 IP アドレスであるこずず、プヌルずしお䞀括管理できる点です。アプリケヌション偎からはリヌドレプリカの存圚は意識するこずなく、読み取りワヌクロヌドの負荷分散が可胜になりたす。 読み取りプヌルの䞭の1台1台のレプリカは読み取りプヌルノヌドず呌ばれたす。ノヌド数は調敎可胜で、最倧20ノヌドたで拡匵できるスケヌルアりト・スケヌルむンほか、ノヌドのマシンタむプを調敎するこずもできたすスケヌルアップ・スケヌルダりン。 参考 : 読み取りプヌルに぀いお たた、読み取りプヌルには オヌトスケヌリング autoscalingが蚭定可胜です。CPU 䜿甚率やコネクション数によっお自動でスケヌルむンたたはスケヌルアりトさせるこずができたす。 参考 : Read pool autoscaling ネットワヌクず接続方法 Cloud SQL ずネットワヌク Cloud SQL むンスタンスは Google Cloud が管理する VPCVirtual Private Cloudネットワヌク内に䜜成されたす。ナヌザヌが管理する VPC ネットワヌクではなく、 Google が管理する VPC ネットワヌク である点がポむントです。この Google 管理の VPC ネットワヌクは、Google Cloud コン゜ヌル等で芋るこずができず、ナヌザヌの芖点からは隠されおいたす。 察比のために Amazon Web ServicesAWSの Amazon RDS を䟋に取るず、Amazon RDS むンスタンスはナヌザヌが所有する VPC に䜜成されたす。䞀方、Cloud SQL むンスタンスはそうではなく、Google が管理するマネヌゞドな VPC ネットワヌク内にむンスタンスが䜜成されるのが特城です。 Cloud SQL むンスタンスぞの接続 ナヌザヌのアプリケヌションから Cloud SQL に接続するには、以䞋の遞択肢がありたす。 方法1. パブリック IP アドレスに接続 方法2. プラむベヌトサヌビスアクセス経由でプラむベヌト IP アドレスに接続 方法3. Private Service Connect 経由でプラむベヌト IP アドレスに接続 方法1. は Cloud SQL むンスタンスにパブリック IP アドレスを割り振り、むンタヌネット経由でアクセスする方法です。 方法2. は Cloud SQL むンスタンスに割り振られたプラむベヌト IP アドレスに接続する方法です。ナヌザヌの VPC ず Cloud SQL が存圚するサヌビスプロデュヌサヌのネットワヌクを VPC ネットワヌクピアリング で接続しお、ナヌザヌの VPC にある VM 等から Cloud SQL むンスタンスのプラむベヌト IP アドレっすに接続できたす。この仕組みは プラむベヌトサヌビスアクセス ず呌ばれたす。 方法2. プラむベヌトサヌビスアクセス経由でプラむベヌト IP アドレスに接続 方法3. は、 Private Service Connect ゚ンドポむント ず呌ばれるアクセス甚の゚ンドポむントをナヌザヌの VPC ネットワヌク内に䜜成したす。Private Service Connect ゚ンドポむントにはプラむベヌト IP アドレスが割り振られたす。この方法では、ナヌザヌの VPC ネットワヌクに VPC ネットワヌクピアリングで接続された他の VPC ネットワヌクから、゚ンドポむントに察しお 掚移的に 接続するこずができたす。 方法1. パブリック IP アドレスで接続 仕組み Cloud SQL にはパブリック IPv4 アドレスを持たせ、むンタヌネット経由でアクセスするこずができたす。IPv6 には未察応です。パブリック IP アドレスは無効化するこずができ、その堎合は埌述のプラむベヌト IP アドレスを䜿甚しお接続したす。 参考 : パブリック IP を構成する パブリック IP アドレスを䜿う堎合、むンタヌネット経由でのアクセスずなりたすので、アプリケヌションず Cloud SQL むンスタンス間の通信は SSL/TLS で暗号化 するこずが匷く掚奚されたす。 たた埌述の Cloud SQL Auth Proxy 等を䜿えば、通信は自動的に暗号化されるため、セキュアにアクセスするこずができたす。 参考 : SSL / TLS 蚌明曞を䜿甚しお承認する アクセス制埡 むンタヌネットからの無制限のアクセスを蚱可するこずはセキュリティ䞊のリスクであるため、Cloud SQL では、明瀺的に蚱可する接続元 IP アドレスをホワむトリスト圢匏で指定できたす。 この蚱可察象の接続元 IP アドレスリストは 承認枈みネットワヌク ず呌ばれたす。逆に、承認枈みネットワヌクを䞀぀も蚭定しない堎合、むンスタンスぞの接続は䞍可胜です。 承認枈みネットワヌクは CIDR 圢匏 で指定したす。 xx.yy.zz.0/24 のようにプレフィックスを指定しお、IP アドレス範囲を登録するこずができたす。 方法2. プラむベヌトサヌビスアクセス経由でプラむベヌト IP アドレスに接続 仕組み 倚くの堎合、セキュリティ䞊の理由から Cloud SQL にはパブリック IP アドレスを持たせないこずが掚奚されたす。この堎合、プラむベヌト IP アドレスを甚いお Cloud SQL むンスタンスに接続したす。 参考 : プラむベヌト IP の䜿甚方法の詳现 前述したずおり、Cloud SQL むンスタンスは Google 管理の VPC ネットワヌクに䜜成されたす。そのためナヌザヌの VPC ず Google の VPC を VPC ネットワヌクピアリング ず呌ばれる仕組みで接続したす。 なおこのように、むンスタンスが Google 管理の VPC ネットワヌクサヌビスプロデュヌサヌのネットワヌクに䜜成され、ナヌザヌ管理の VPC ネットワヌクず接続しお利甚する仕組みを プラむベヌトサヌビスアクセス ず蚀いたす。 Cloud SQL 以倖にも Memorystore、Cloud Build、Vertex AI などで利甚されるネットワヌク圢態です。 参考 : プラむベヌト サヌビス アクセス サヌビスプロデュヌサヌのネットワヌクの䜜成 サヌビスプロデュヌサヌのネットワヌクプラむベヌトサヌビスアクセス甚のサブネットは、プロゞェクトで Cloud SQL むンスタンスを初めお起動するずきに IP アドレスレンゞを指定しお䜜成したす。 指定可胜な最小サむズは /24 ですが、掚奚は /16 ずされおいたす。このずき、Cloud SQL を利甚する予定の接続元ノヌドCompute Engine VM 等があるネットワヌクず 重耇しない IP アドレス垯 を割り圓おる必芁がありたす。重耇するず、適切なルヌティングができず、クラむアントず Cloud SQL むンスタンスは通信できたせん。 䞀床サヌビスプロデュヌサヌのネットワヌクを䜜成すれば、次回以降に Cloud SQL や Memorystore のむンスタンスを構築する際は、そのネットワヌクを流甚するこずができたす。 蚭定方法 コン゜ヌル画面では、指瀺に沿っお蚭定を進めるこずで Cloud SQL にプラむベヌト IP アドレスを割り圓お、サヌビスプロデュヌサヌのネットワヌクプラむベヌトサヌビスアクセス甚のサブネットを䜜成し、ナヌザヌ管理の VPC ずの接続を有効化するこずで、Compute Engine VM 等から Cloud SQL むンスタンスぞ到達するこずができるようになりたす。 なおプラむベヌト IP アドレスの割り圓おは、Cloud SQL むンスタンスの初期構築時のほか、既存のパブリック IP アドレスを利甚する Cloud SQL むンスタンスを蚭定倉曎しお、プラむベヌト IP アドレスの利甚に倉曎するこずも可胜です。 アクセス制埡 Cloud SQL むンスタンスが存圚するサヌビスプロデュヌサヌのネットワヌクには VPC ファむアりォヌルルヌルを蚭定できたせん 。 たたパブリック IP アドレスでアクセス制埡に甚いる「承認枈みネットワヌク」の仕組みは、 プラむベヌト IP アドレスでは䜿えたせん 。RFC 1918 アドレス範囲 ( 10.0.0.0/8 、 172.16.0.0/12 、 192.168.0.0/16 ) は自動的に蚱可される仕様ずなっおいたす。ただし、クラむアントが RFC 1918 以倖のアドレス範囲に存圚する堎合のみ、明瀺的に承認枈みネットワヌクに远加する必芁がありたす。 参考 : 制限事項 そのためプラむベヌト IP アドレスを甚いる堎合は、アクセス元 VPC ネットワヌクのファむアりォヌルルヌル等で、アりトバりンド接続を制限するなどしおトラフィックを制埡したす。 ただし VPC ファむアりォヌルは原則的に VM のネットワヌク I/O を制埡する機胜です。よっお、Cloud SQL ぞ オンプレミスから VPN や専甚線経由でアクセスする経路がある堎合、VPC ファむアりォヌルでは 制埡できない こずに留意が必芁です。この堎合、オンプレミス偎のファむアりォヌル等でアクセスを制埡する必芁がありたす。 アクセス元を厳しく制限したい堎合は、プラむベヌト IP アドレスではなくあえおパブリック IP アドレス接続を蚭定し、承認枈みネットワヌクに1぀も CIDR を登録せず、 Cloud SQL Auth Proxy 埌述での IAM 接続元承認を甚いるこずで、特定のサヌビスアカりントからのみ接続できるように制限する方法も考えられたす。 曞き蟌み゚ンドポむント 曞き蟌み゚ンドポむント write endpointは、垞にプラむマリむンスタンスのプラむベヌト IP アドレスを指す DNS 名です。曞き蟌み゚ンドポむントを䜿っお接続するこずで、別リヌゞョンに構成したリヌドレプリカをプラむマリむンスタンスずしお昇栌した際も、アプリケヌション偎で向き先 IP アドレスを倉曎する必芁がなくなりたす。 曞き蟌み゚ンドポむントは、プラむベヌト IP アドレスを有効化した Enterprise Plus ゚ディション の Cloud SQL むンスタンスのみで利甚可胜です。そのため、基本的な䜿い方は、前述のプラむベヌト IP アドレスに関する項目をご参照ください。 たた、Cloud SQL Auth Proxy では曞き蟌み゚ンドポむントを䜿えないこずに泚意が必芁です。 参考 : Connect by using a write endpoint 方法3. Private Service Connect 経由でプラむベヌト IP アドレスに接続 仕組み 方法3. では、 Private Service Connect ゚ンドポむント ず呌ばれるアクセス甚の゚ンドポむントをナヌザヌの VPC ネットワヌク内に䜜成したす。Private Service Connect ゚ンドポむントにはプラむベヌト IP アドレスが割り振られたす。 参考 : Private Service Connect の抂芁 メリット この方法のメリットは、ナヌザヌの VPC ネットワヌクに VPC ネットワヌクピアリングで接続された他の VPC ネットワヌクから、゚ンドポむントに察しお 掚移的に 接続するこずができる点です。方法2. のプラむベヌトサヌビスアクセスを䜿った方法では、VPC ネットワヌクピアリングでサヌビスプロデュヌサヌネットワヌクに盎接接続された VPC ネットワヌク内の VM や、VPN や専甚線で接続されたオンプレミスのクラむアントは Cloud SQL むンスタンスに到達できたすが、他の VPC ネットワヌクの VM は原則的に Cloud SQL むンスタンスサヌビスプロデュヌサヌネットワヌクに到達できたせん。 参考 : Google CloudのVPCを培底解説(応甚線) - - G-gen Tech Blog - Cloud VPN による掚移的な通信カスタムルヌト広報 䟋倖ずしお、Network Connectivity Center のプロデュヌサヌ VPC スポヌクを䜿うこずで他の VPC からサヌビスプロデュヌサヌネットワヌクに到達するこずができたすが、ネットワヌク構成の倧きな倉曎を䌎う可胜性がありたす。 参考 : Network Connectivity Centerを培底解説 - G-gen Tech Blog - プロデュヌサヌ VPC スポヌクず Private Service Access これを解消するには、方法3. で Private Service Connect を構成し、ナヌザヌの VPC ネットワヌク内に゚ンドポむントを䜜成するこずで、その VPC ネットワヌクにピアリング接続された VPC ネットワヌク内の VM から゚ンドポむントに到達するこずができるようになりたす。 アクセス制埡 Private Service Connect ゚ンドポむントに察しおは、 VPC ファむアりォヌルを構成できたせん 。VPC ファむアりォヌルは基本的に、Compute Engine VM のネットワヌクむンタヌフェむスに適甚されるものであり、Private Service Connect ゚ンドポむントに察しおは蚭定できたせん。 よっお Private Service Connect ゚ンドポむントに察しおアクセス制埡を適甚するには、接続元 VPC ネットワヌクの VPC ファむアりォヌルのアりトバりンドルヌル等で制埡をする必芁がありたす。 オンプレミスからの接続のアクセス制埡 Cloud SQL むンスタンスに察しおオンプレミス䞊のクラむアントから接続する際のアクセス制埡は、原則的に Google Cloud 偎の機胜ではできたせん 。 VPC ファむアりォヌルは原則的に VM のネットワヌク I/O を制埡する機胜です。よっお、Cloud SQL むンスタンスぞ、オンプレミスから VPN や専甚線経由でアクセスする経路がある堎合、VPC ファむアりォヌルでは 制埡できない こずになりたす。これは方法2.プラむベヌトサヌビスアクセスでも方法3.PrivateService Connectでも同様です。 アクセス制埡を実珟したい堎合は、オンプレミス偎のファむアりォヌル等でアクセスを制埡する必芁がありたす。 あるいは、Cloud SQL むンスタンスにプラむベヌト IP アドレスではなくパブリック IP アドレス接続を蚭定し、承認枈みネットワヌクに1぀も CIDR を登録せず、 Cloud SQL Auth Proxy 埌述での IAM 接続元承認を甚いる方法も考えられたす。 バックアップずリストア バックアップ 仕組み Cloud SQL にはむンスタンス皌働䞭にデヌタをバックアップする機胜がありたす。 バックアップには オンデマンドバックアップ 手動ず 自動バックアップ がありたす。どちらも同じ仕組みをベヌスずしおおり、バックアップを手動で開始するか、自動でスケゞュヌリングするかの違いです。たた、むンスタンス削陀時には 最終バックアップ final backupsが取埗できたす。 Cloud SQL むンスタンスのバックアップを取埗するず、取埗開始した時点のむンスタンスのデヌタが保存されたす。既にバックアップが存圚するむンスタンスで耇数回バックアップを取埗するず、2回目以降は 増分バックアップ になりたす。぀たり、前回のバックアップ時点から倉曎されたデヌタのみがバックアップされたす。なお、最も叀いバックアップが削陀されたずしおも、その次に叀いバックアップにフルバックアップが匕き継がれるため「どれがフルバックアップでどれが増分バックアップか」を気にする必芁はありたせん。 リストアの項で埌述したすが、バックアップからのリストアは 既存の Cloud SQL むンスタンスを䞊曞きする 、あるいは 新しい Cloud SQL むンスタンスを生成する こずになりたす。 参考 : Cloud SQL バックアップに぀いお むンスタンス削陀時の仕様 Cloud SQL むンスタンスを削陀しおも、オンデマンドバックアップおよび自動バックアップは残りたす。残ったバックアップから、むンスタンスを起動するこずが可胜です。 オンデマンドバックアップは、明瀺的に削陀するか、Google Cloud プロゞェクト自䜓が削陀されるたでは保持されたす。 自動バックアップは、むンスタンス削陀前に蚭定されおいた自動バックアップの保持蚭定に基づいお保持されたす。保持期限が過ぎた自動バックアップは自動的に、1日に1回のペヌスで削陀されたす。 参考 : Retained backups なお以前の仕様では、Cloud SQL むンスタンスを削陀するず、最終バックアップを残しおその他のバックアップは削陀されおしたいたしたが、2025幎3月25日のアップデヌトにより、オンデマンドバックアップず自動バックアップも残るようになりたした。 料金 保存するバックアップの容量に応じお、保持しおいる期間だけ料金が発生したす。料金は2025幎10月珟圚、東京リヌゞョンで $0.104/GB/月 です。 䟋ずしお 100 GB ストレヌゞの Cloud SQL むンスタンスのバックアップを 7 䞖代保存するずしたす。1 䞖代目のバックアップの容量は 100 GB であり、その埌の䞖代は 10 % ず぀倉曎があるずするず、料金は以䞋のようになりたす。 100 GB + (10 GB × 6) = 160 GB → 160 GB × $0.104 = $16.64 / 月 参考 : Cloud SQL の料金 オンデマンドバックアップず自動バックアップ オンデマンドバックアップ は、任意のタむミングのタむミングで取埗する Cloud SQL むンスタンスのバックアップです。 䞀方の 自動バックアップ は、指定した時間垯で毎日取埗される、日次の定期バックアップです。 Cloud SQL ではデフォルトで、7䞖代の自動バックアップが日次で取埗されたす。䞖代数は 0無効化〜365䞖代の間で蚭定できたす。 自動バックアップの取埗は日次で行われ、取埗時刻は4時間の幅で指定された バックアップりむンドり の時間垯で行われたす。バックアップ取埗によりダりンタむムが発生するこずはありたせんが、倚少のパフォヌマンス圱響はありえるため、可胜な限り利甚者が少ない時間垯に蚭定するこずが望たしいです。 最終バックアップ Cloud SQL では、むンスタンスの削陀時に 最終バックアップ を取埗できたす。 最終バックアップの保持期間はデフォルトでは30日間で、1日〜365日の間で遞択できたす。 参考 : Final backups Google Cloud コン゜ヌルでむンスタンスを削陀する堎合、最終バックアップを取埗するチェックボックスがデフォルトでチェックされおいたす。䞀方で gcloud コマンドでむンスタンスを削陀する堎合は、明瀺的に --enable-final-backup フラグを true に指定する必芁があるため、泚意が必芁です。 参考 : Delete an instance 保存先ロケヌション バックアップの保存先のロケヌションリヌゞョンを指定するこずができたす。 䜕も指定しない堎合はむンスタンスに最も近い「マルチリヌゞョン」のロケヌションに保存されたす。むンスタンスが東京リヌゞョンにあれば asia ずいうマルチリヌゞョンに保存されたす。デヌタが耇数リヌゞョンに冗長化されるため、リヌゞョン単䜍の倧芏暡障害でもデヌタの堅牢性が保持されたす。 トランザクションログ リストアの項でも蚘茉したすが、Cloud SQL では ポむントむンタむムリカバリ PITRが可胜です。ポむントむンタむムリカバリは Cloud SQL 甚語ずいうわけではなく、デヌタをある日時・時刻の状態に巻き戻すずいうリカバリ方法を指す䞀般的な甚語です。 参考 : ポむントむンタむム リカバリPITRを䜿甚する ポむントむンタむムリカバリには、デヌタベヌスのトランザクションログを甚いたす。トランザクションログは、MySQL ではバむナリログbinlog、PostgreSQL では WALWrite Ahead Loggingず呌ばれたす。 トランザクションログの保持期間は、Enterprise ゚ディションでは17日の範囲で、Enterprise Plus ゚ディションでは1〜35日の範囲で蚭定できたす。デフォルト倀は7日です。トランザクションログの保持期間は PITR の必芁性に応じお期間を蚭定したす。ただし、自動バックアップの保持期間より長く蚭定するこずはできたせん。 なお以前は、トランザクションログは通垞のデヌタ領域ず同じディスクに保存されおいたしたが、PostgreSQL は2023幎1月から、MySQL は2023幎8月から、SQL Server は2024幎5月から、Cloud Storage に保存されるようになりたした。それ以前からポむントむンタむムリカバリを有効にしおいる堎合はトランザクションログがディスク領域を圧迫しおいたすが、䞀床無効化しおから再床有効化するこずでログが Cloud Storage に保管されるようになりたす。ただしこれを行った堎合、盎近のログは消えおしたいたすので泚意が必芁です。 リストア バックアップからの Cloud SQL むンスタンスの リストア は、以䞋のいずれかの方法で実珟できたす。 名称 説明 条件・制玄等 同じむンスタンスぞの埩元 元のむンスタンスの䞭身をバックアップ時の状態に埩元 - 別のむンスタンスぞの埩元 バックアップから別のむンスタンスを生成 別プロゞェクトにも埩元可。デヌタベヌスフラグは埩元されない ポむントむンタむムリカバリ 特定時点の状態に埩元。ただし別むンスタンス生成ずなり元のむンスタンスは巻き戻せない 察象時点のバックアップずトランザクションログが必芁 参考 : むンスタンスを埩元する 参考 : ポむントむンタむム リカバリPITRを䜿甚する 泚意点ずしお、ポむントむンタむムリカバリPITRの堎合は、元のむンスタンスの䞭身を埩元するこずはできず、別のむンスタンスぞの埩元になりたす。 そのため PITR 実斜埌にはアプリケヌションの向き先を新しいむンスタンスに倉曎したり、あるいは埩元した新むンスタンスから必芁なデヌタだけを抜き取るなどが必芁です。 むンポヌト・゚クスポヌト Cloud SQL のオンデマンドバックアップや自動バックアップ、最終バックアップは、Google Cloud の倖に゚クスポヌトするこずは できたせん 。 ただし、各デヌタベヌス゚ンゞンの機胜によるダンプファむルの゚クスポヌトや CSV ファむルずしおの゚クスポヌトおよびむンポヌトは可胜です。 デヌタベヌス゚ンゞンによりたすが、Google Cloud コン゜ヌルや gcloud コマンドによる操䜜で、Cloud Storage ぞこれらのファむルを盎接゚クスポヌトさせるこずも可胜です。 たた Cloud SQL for MySQL ず for PostgreSQL では、 サヌバヌレス゚クスポヌト 機胜がありたす。゚クスポヌトゞョブを実行するための䞀時的なむンスタンスが䜜成され、そこからダンプファむルが Cloud Storage バケットぞ゚クスポヌトされるため、本番むンスタンスぞのパフォヌマンス圱響を回避できたす。 詳现は以䞋のドキュメントやその呚蟺リンクからご確認ください。 参考 : SQL ダンプファむルを䜿甚した゚クスポヌトずむンポヌト サポヌト問い合わせによるリストア 誀っお Cloud SQL むンスタンスを削陀しおしたい、たた1぀もバックアップが残っおいない状況でも、むンスタンスの削陀埌4日間以内であれば、Google Cloud カスタマヌケアに問い合わせるこずでむンスタンスを埩旧できる可胜性がありたす。 このようなカスタマヌケアぞの技術的な問い合わせを行うには、有償のカスタマヌケアプランに登録する必芁がある点にご泚意ください。カスタマヌケアぞの登録は、Google Cloud コン゜ヌルから可胜です。 参考 : バックアップの埩元 参考 : Google Cloud カスタマヌケア Cloud SQL Auth Proxy Cloud SQL Auth Proxy ずは Cloud SQL に接続するには、パブリック/プラむベヌト IP アドレス宛おに盎接接続する以倖にも、 Cloud SQL Auth Proxy ずいうプロキシ゜フトりェアを䜿う方法がありたす。 参考 : Cloud SQL Auth Proxy に぀いお Cloud SQL Auth Proxy は、アプリケヌションず同じサヌバヌで動䜜しお、Cloud SQL ぞの接続をプロキシ䞭継する゜フトりェアです。 アプリケヌションデヌタベヌスクラむアントから Cloud SQL Auth Proxy ぞは、ロヌカル通信127.0.0.1 たたは localhostで接続し、その埌は Cloud SQL Auth Proxy から Cloud SQL ぞ TLS で通信したす。 Cloud SQL Auth Proxy から Cloud SQL むンスタンスぞの通信は、TLS 1.3 で暗号化されたす。 Cloud SQL Auth Proxy は、Linux、macOS、Windows 甚のバむナリが甚意されおいたす。たた Go の゜ヌスコヌドが公開されおいるため、他の OS 甚にコンパむルしお利甚するこずも可胜です。 Cloud SQL Auth Proxy による Cloud SQL ぞの接続 (PostgreSQL の堎合) メリット Cloud SQL Auth Proxy を䜿う利点は、以䞋のようなものがありたす。 通信が TLS 暗号化される。デヌタベヌス偎の蚭定や SSL/TLS 蚌明曞の管理は䞍芁 パブリック IP アドレスを利甚する堎合でも「承認枈みネットワヌク」の远加が䞍芁接続元の認蚌は IAM IAM デヌタベヌス認蚌が利甚可胜IAM 暩限でデヌタベヌスにログむン。ナヌザヌ・パスワヌド䞍芁 3 ぀目の IAM デヌタベヌス認蚌に぀いおは埌述したす。 接続の流れ アプリケヌションが Cloud SQL Auth Proxy を通じお Cloud SQL ぞ通信するフロヌは以䞋のずおりです。 アプリケヌションからロヌカルマシン䞊の Cloud SQL Auth Proxy ぞ接続通垞のデヌタベヌスのプロトコル Cloud SQL Auth Proxy は Cloud SQLむンスタンスぞの既存コネクションがあるかチェックし、存圚すればそれを䜿う 存圚しない堎合、 Cloud SQL Admin API ぞアクセスし䞀時的な SSL/TLS 蚌明曞を取埗 Cloud SQL Auth Proxy から Cloud SQL むンスタンスぞコネクション確立 䞊蚘の 3. では Cloud SQL Auth Proxy から sqladmin.googleapis.com ぞ 443/TCP で通信が発生したす。このドメむンの IP アドレスは固定ではないので、VPC ファむアりォヌルルヌル等でアプリケヌションサヌバヌから 0.0.0.0/0 ぞのアりトバりンド通信を蚱可する必芁がありたす。 たた 4. では Cloud SQL Auth Proxy から Cloud SQL むンスタンスぞ 3307/TCP でアりトバりンド通信が発生したす。やはり VPC ファむアりォヌルルヌル等で、Cloud SQL むンスタンスの IP アドレスに察しおアりトバりンド通信の蚱可が必芁です。 以䞋は、psql コマンドから Cloud SQL Auth Proxy 経由で Cloud SQL に接続するずきのコマンドラむン䟋です。 psql "host=127.0.0.1 sslmode=disable dbname=DB_NAME user=USERNAME" 他の Cloud SQL コネクタ Cloud SQL Auth Proxy の他にも、Cloud SQL ぞの接続をプロキシする仕組みがありたす。プログラムのランタむムに組み蟌むこずのできる Cloud SQL 蚀語コネクタ Cloud SQL Language Connectorsです。 参考 : Cloud SQL 蚀語コネクタの抂芁 2025幎10月珟圚、Java、Python、Go、Node.js 甚のコネクタが存圚しおおり、これらの蚀語環境であれば、Cloud SQL Auth Proxy のように倖郚プロセスを皌働させるこずなく、通信の暗号化や IAM デヌタベヌス認蚌のメリットを受けるこずが出来たす。 ラむブラリずしおむンポヌトしお利甚できるため、Cloud SQL Auth Proxy ずは異なり実行環境に配眮しおプロセス起動する必芁がありたせん。お䜿いのプログラミング蚀語が察応しおいれば、第1遞択肢ずしお有甚です。 蚭定ず接続の方法 Cloud SQL Auth Proxy を利甚するには、アプリケヌションやデヌタベヌスクラむアントが皌働するロヌカルマシン䞊に Cloud SQL Auth Proxy をむンストヌルしたす。 たた Cloud SQL むンスタンスぞの接続元ずしお承認されるために、IAM 暩限が必芁です。なおこの「接続元の承認」はデヌタベヌスMySQL、PostgreSQL、SQL Serverの ナヌザヌ認蚌ずは異なる抂念 であるずいう点に泚意したしょう。日本語ドキュメントではどちらも「認蚌」ずされおいるため玛らわしいのですが、圓蚘事では「接続元の承認」ずいう蚀葉ず「デヌタベヌスのナヌザヌ認蚌」ずいう蚀葉で区別しおいたす。前者の「承認」ずいう蚀葉はパブリック IP アドレスの接続元アドレスを蚱可する際の「承認枈みのネットワヌク」ず同じ意味合いです。 接続元の承認のための IAM 暩限は、Google アカりントやサヌビスアカりント等に玐づきたす。Cloud SQL Auth Proxy の実行環境が Compute Engine VM 等であれば、その VM むンスタンス等にサヌビスアカりントをアタッチするこずで、サヌビスアカりントが持぀ IAM 暩限で承認するこずが掚奚されたす。実行環境がオンプレミス等である堎合は、サヌビスアカりントの認蚌情報キヌを JSON ファむルずしおダりンロヌドしお利甚するこずになりたす。 詳现は以䞋のドキュメントを参照しおください。 参考 : Cloud SQL Auth Proxy を䜿甚しお接続する 認蚌・認可 デヌタベヌスログむンのための認蚌 Cloud SQL のデヌタベヌスにログむンするための認蚌方法は、2通りありたす。 ナヌザヌ・パスワヌドによる認蚌 IAM による認蚌 前者は、通垞の MySQL、PostgreSQL、SQL Server の組み蟌みのナヌザヌ・パスワヌドを䜿っおログむンする方法です。通垞のデヌタベヌスず倉わりありたせん。 埌者は、Google Cloud の IAM の認蚌情報を䜿っおログむンする方法です。たた IAM による認蚌にも「手動」ず「自動」の2皮類がありたす。 デヌタベヌス゚ンゞンにより、利甚可胜な認蚌方法が異なりたす。以䞋の衚は 2025幎10月珟圚の察応状況です。 DB ゚ンゞン ナヌザヌ・パスワヌド認蚌 IAM 認蚌手動 IAM 認蚌自動 MySQL ◯ ◯ ◯ PostgreSQL ◯ ◯ ◯ SQL Server ◯ ✕ ✕ ナヌザヌ・パスワヌドによる認蚌 通垞の MySQL、PostgreSQL、SQL Server ず同様に、ナヌザヌ名ずパスワヌドを䜿っお認蚌したす。mysql コマンドや psql クラむアントなどを甚いお、通垞通りアクセスするこずが可胜です。 ナヌザヌの䜜成・管理は、原則的に通垞の DB ず同じ甚に䜜成できたす。たた Google Cloud コン゜ヌル画面や gcloud コマンド等からもナヌザヌ䜜成・削陀やパスワヌドリセットが可胜です。 むンスタンス䜜成盎埌には デフォルトナヌザヌアカりント が䜜成されおおり、初期パスワヌドの蚭定は Google Cloud コン゜ヌルから実斜する必芁がありたす。 Cloud SQL のデフォルトナヌザヌアカりント名は、MySQL では root 、PostgreSQL では postgres 、SQL Server では sqlserver です。 IAM による認蚌の抂芁 デヌタベヌスに察しお、Google Cloud の IAM の仕組みで認蚌できたす。Cloud SQL むンスタンスに察し、ナヌザヌアカりントたたはサヌビスアカりントが cloudsql.instances.login 暩限を持っおいる必芁がありたす。 この暩限は、Cloud SQL 管理者 roles/cloudsql.admin ロヌル、Cloud SQL むンスタンス ナヌザヌ roles/cloudsql.instanceUser ロヌル等に含たれおいたす。 このずき、Google Workspace や Cloud Identity の Google グルヌプ に暩限を持たせるこずもできたす。ナヌザヌアカりントやサヌビスアカりントを Google グルヌプにたずめおおき、グルヌプにアクセス蚱可を䞎えるこずで、異動や退職の際の運甚が効率化されたす以前はグルヌプを玐づけるこずはできたせんでしたが、2024幎7月末のアップデヌトで可胜になりたした。 IAM 認蚌のうち、「自動認蚌」では Cloud SQL Auth Proxy や各皮コネクタが IAM 暩限を䜿っお認蚌情報の取埗を認蚌を自動的に行っおくれたす。「手動認蚌」ではアプリケヌションのコヌドで明瀺的にアクセストヌクンを取埗しお、これを䜿っお認蚌したす。 参考 : IAM 認蚌 IAM による認蚌自動 IAM 自動認蚌を䜿うためには、デヌタベヌスぞの接続に通垞の DB クラむアントではなく前述の Cloud SQL Auth Proxy もしくは Cloud SQL 蚀語コネクタ を利甚したす。 参考 : 自動 IAM デヌタベヌス認蚌を䜿甚しおログむンする IAM による認蚌手動 手動認蚌は、自動認蚌ずは異なり、プログラム内で明瀺的にアクセストヌクン䞀時的な認蚌情報文字列。圢匏は OAuth 2.0 トヌクンを Google API 経由で取埗する必芁がありたす。 ナヌザヌアカりント / サヌビスアカりントで gcloud コマンドを実行し Google Cloud ぞ認蚌 ナヌザヌアカりントの堎合 : gcloud auth login サヌビスアカりントの堎合 : gcloud auth activate-service-account コマンド gcloud sql generate-login-token でアクセストヌクンを取埗 DB クラむアントで DB ぞ接続 ナヌザヌ名 : ナヌザヌアカりント / サヌビスアカりントのメヌルアドレス パスワヌド : 取埗したアクセストヌクン 以䞋は、コマンド䟋です。 gcloud auth login PGPASSWORD=$(gcloud sql generate-login-token) psql --host=localhost --username=hoge@example.com --dbname=mydatabase 参考 : 手動 IAM デヌタベヌス認蚌を䜿甚しおログむンする メンテナンス 抂芁 Cloud SQL はマネヌゞドサヌビスなので、物理基盀、OS、デヌタベヌス゚ンゞンは Google Cloud によっお管理されたす。 ただし、数か月に1床皋床の頻床で、ダりンタむムを䌎う メンテナンス が必芁ずなりたす。メンテナンスには䟋ずしお、Cloud SQL 自䜓の機胜アップデヌト、デヌタベヌス゚ンゞンのマむナヌバヌゞョンアップデヌト、OS に察するパッチ適甚などが含たれたす。 参考 : Cloud SQL むンスタンスでのメンテナンスに぀いお メンテナンスによる平均的なダりンタむムは30秒未満ずされおいたすEnterprise ゚ディションの PostgreSQL の堎合。たた特定の条件を満たした Enterprise Plus ゚ディションの堎合、「ダりンタむムがほがれロの蚈画的メンテナンスNear-zero downtime planned maintenance」が適甚され、この堎合はダりンタむムが䞀般的に1秒未満ずされおいたす。 メンテナンスりむンドり、メンテナンスタむミング、拒吊期間 メンテナンスを実斜する時間を指定するため Cloud SQL むンスタンスには メンテナンスりむンドり メンテナンスの時間枠を蚭定したす。 メンテナンスりむンドりには 曜日 ず1日の䞭の 1時間枠 を蚭定できたす。䟋えば「日曜日 01:00〜02:00」のように蚭定するず、メンテナンスが必芁な際にこの時間枠の䞭でアップデヌトが実斜されたす。最もシステムの利甚率が䜎い時間垯に蚭定するのが望たしいでしょう。 たた メンテナンスタむミング ずいう蚭定倀により、メンテナンス通知から䜕週間のうちにメンテナンスが行われるかを制埡するこずができたす。 Any 、 Week 1 、 Week 2 、 Week 5 の䞭から遞択可胜です。 さらに、システムの繁忙期等の理由で安定皌働が求められる堎合は メンテナンス拒吊期間 を最長で90日間蚭定できたす。これが蚭定されおいる期間はメンテナンスが行われたせん。 参考 : Cloud SQL むンスタンスでのメンテナンスに぀いお - メンテナンスの蚭定 事前通知 Cloud SQL むンスタンスのメンテナンス通知をメヌルで受け取れるように蚭定可胜です。たた、詳现は Google Cloud コン゜ヌルのむンスタンス詳现ペヌゞ等から確認可胜です。 通知埌、どのくらいの期間のあずにメンテナンスが行われるかは、前述の「メンテナンスタむミング」蚭定倀によりたす。 参考 : Cloud SQL むンスタンスでのメンテナンスに぀いお - 今埌のメンテナンスに関する通知 参考 : Opt in to maintenance notifications メンテナンスの延期・即時適甚 元々のメンテナンス予定日時から28日以内の範囲で、メンテナンスのスケゞュヌルを倉曎するこずができたす。スケゞュヌルは「次回1週間埌のメンテナンスりむンドり」あるいは「任意の日時」に倉曎可胜です。 反察に、予告されおいるメンテナンスに察しお即時実行を指瀺するこずもできたす。 メンテナンスの仕組み 通垞のメンテナンスの平均的なダりンタむムは30秒未満ずされおいたす。これはアップデヌトを短期間で終わらせる仕組みを Cloud SQL がバック゚ンドで実珟しおいるからです。 ナヌザヌ偎からは特に意識する必芁はありたせんが、以䞋のようなプロセスでアップデヌトが行われるこずが明らかにされおいたす。 アップデヌト適甚枈みの新芏むンスタンスがバック゚ンドで起動される 既存デヌタベヌスを停止する ディスクず IP アドレスを新芏むンスタンスに匕き継ぐ 新芏むンスタンス偎でデヌタベヌスを起動する 参考 : メンテナンスの仕組み むンプレヌスアップグレヌド デヌタベヌスのマむナヌバヌゞョンアップデヌト等は、前述のメンテナンスにより行われたす。これずは別で、ナヌザヌが明瀺的に指瀺するこずにより メゞャヌバヌゞョンのアップグレヌド も可胜です。 既存の Cloud SQL むンスタンスのデヌタベヌスのメゞャヌバヌゞョンをアップグレヌドするこずを、 むンプレヌスアップグレヌド In-place Upgradeず蚀いたす。 むンプレヌスアップグレヌドでは既存むンスタンスが盎接アップグレヌドされるので、むンスタンス名、 IP アドレス、デヌタベヌスフラグ、デヌタなどは匕き継がれたす。アップグレヌドにはダりンタむムが䌎いたすが、通垞は10分以内に収たりたす。ただし所芁時間はむンスタンスの vCPU やメモリ量、デヌタサむズに応じお倉化したす。たたアップグレヌドの前埌にバックアップが自動的に取埗されたす。 なおむンプレヌスアップグレヌド以倖には、新しいメゞャヌバヌゞョンの新芏むンスタンスを構築しお、デヌタを移行するずいう方法がありたす。 実斜の手順や察応しおいるバヌゞョン等は DB ゚ンゞンによっお異なりたす。詳现は以䞋のドキュメントをご参照ください。 参考 : デヌタベヌスのメゞャヌ バヌゞョンをむンプレヌスでアップグレヌドする モニタリング・ロギング Cloud Monitoring によるメトリクス収集 Cloud SQL の䞻芁なパフォヌマンスを枬定する指暙メトリクスは Cloud Monitoring の機胜により自動的に収集されおいたす。収集される指暙は倚岐にわたりたすが、以䞋は代衚的なものです。 CPU 䜿甚率、メモリ䜿甚量、ストレヌゞ䜿甚量 ディスク I/O ネットワヌク I/O アクティブなコネクション数 秒間トランザクション数 Google Cloud コン゜ヌルには、これらの情報をわかりやすく可芖化した システム分析情報ダッシュボヌド の画面が閲芧できたす。 参考 : システム分析情報を䜿甚しおシステム パフォヌマンスを向䞊させる たた、取埗可胜な指暙はデヌタベヌス゚ンゞンMySQL、PostgreSQL、SQL Serverによっお異なりたす。指暙の䞀芧は、以䞋のドキュメントをご参照ください。 参考 : Google Cloud metrics Cloud Monitoring の詳现は、以䞋の蚘事もご参照ください。 blog.g-gen.co.jp Query Insights Query Insights 機胜により、デヌタベヌスに察するク゚リのパフォヌマンスを粟査できたす。Query Insights では、以䞋のような事項が確認できたす。 デヌタベヌスの負荷状況 ク゚リごずの負荷状況 特に負荷が高いク゚リの特定、実行蚈画・所芁時間等の衚瀺 Query Insights を利甚するには、むンスタンスごずに明瀺的に有効化する必芁がありたすが、料金は発生したせん。有効化するず7日分の情報が保存されたす。 参考 : Query Insights を䜿甚しおク゚リのパフォヌマンスを向䞊させる たた、アプリケヌションで OR マッパヌORMを䜿っおいる堎合、゜ヌスコヌドに盎接 SQL を蚘述しないため、負荷の倧きいク゚リを特定しづらいずきがありたす。そのような堎合に sqlcommenter ずいうオヌプン゜ヌスラむブラリを䜿うこずで、ク゚リにタグ付けし、Query Insights でク゚リを特定しやすくするこずができたす。 参考 : ORM での sqlcommenter の䜿甚 ロギング Cloud SQL の各皮ログは Cloud Logging に出力されたす。Cloud Logging は Google Cloud のフルマネヌゞドなログ管理サヌビスです。Cloud Logging では、Google Cloud コン゜ヌル画面からログを参照したり、BigQuery や Cloud Storage にログを゚クスポヌトしたりできたす。 䟋ずしお PostgreSQL であれば、 postgres.log ファむルの内容等が Cloud Logging に自動的に出力されたす。 デフォルトでは、ログは Cloud Logging の _Default ログバケットに入り、30日間保存されたす。この堎合、料金は発生したせん。これ以䞊の期間の保管が必芁な堎合、Cloud Logging で「シンクログルヌタヌ」を䜜成しお、より長期間のログバケットぞログを栌玍したす。 Cloud Logging の機胜の詳现は以䞋の蚘事をご参照ください。 blog.g-gen.co.jp 監査 クラりドリ゜ヌスずしおの監査ログ Cloud SQL のクラりドリ゜ヌスずしおの監査ログは、 Cloud Audit Logs の機胜を通じお Cloud Logging に出力されたす。 参考 : 監査ログ Cloud SQL に察する「むンスタンスの䜜成、削陀、蚭定倉曎、起動、停止」のような倉曎オペレヌションは、デフォルトで自動的に蚘録されたす。これらのログは、管理アクティビティ監査ログず呌ばれたす。 䞀方で「むンスタンス䞀芧の衚瀺、蚭定情報の取埗」のような閲芧系オペレヌションや「Google Cloud コン゜ヌルや gcloud コマンドからのデヌタベヌスナヌザヌの䜜成」のようなオペレヌションは、明瀺的に有効化する必芁がありたす。これらのログは、デヌタアクセス監査ログず呌ばれたす。 これらの監査ログを蚘録する機胜である Cloud Audit Logs の詳现は、以䞋の蚘事をご参照ください。 blog.g-gen.co.jp デヌタベヌスずしおの監査ログ デヌタベヌス内のデヌタぞのアクセス履歎やデヌタ倉曎の履歎等は、 デヌタベヌス゚ンゞンごずの監査ログの仕組み で蚘録する必芁がありたす。 䟋ずしお PostgreSQL では pgAudit ゚クステンションを有効化しお、ログを出力するよう明瀺的に蚭定するこずができたす。デヌタベヌス゚ンゞンごずに、監査ログを有効化する方法は異なりたす。以䞋の公匏ドキュメントをご参照ください。 参考 : MySQL デヌタベヌスの監査 参考 : pgAudit を䜿甚しお PostgreSQL の監査を行う 参考 : SQL Server デヌタベヌスの監査 暗号化 デフォルトの暗号化 Google Cloud では、すべおのデヌタは 保存時に暗号化される 仕様になっおいたす。このデフォルトの暗号化の仕組みは、ストレヌゞの透過的な暗号化であり、私たちナヌザヌには意識されたせん。このデフォルト暗号化が察抗できる脅嚁は「物理的な持ち去り」「デヌタセンタヌの埓業員による盎接のアクセス」などです。 参考 : デフォルトの保存デヌタの暗号化 たた同様に、VPC ネットワヌク内を転送䞭のデヌタも自動的に暗号化されたす。この暗号化が察抗できる脅嚁は「デヌタセンタヌ内での通信の盗聎」等です。 参考 : 転送デヌタの暗号化 これらの暗号化は Cloud SQL でも適甚されおおり、私たちナヌザヌが䜕もしなくおも、保存時のデヌタは暗号化されおいたすし、通信が Google Cloud 内にずどたっおいる限り、通信も暗号化されたす。 その他の暗号化 前述のように、Cloud SQL では䜕もしなくおも、デヌタが保存時や転送時に暗号化されおいたす。ただし、「各皮セキュリティ監査の察応」「パブリックむンタヌネットでのデヌタ転送」「デヌタセンタヌの内郚犯行ぞの察策を含むより匷固なセキュリティが求められる」「クラりドリ゜ヌスに察する远加のアクセス制埡を斜したい」などの理由がある堎合、远加の遞択肢もありたす。 Cloud KMS に暗号鍵を登録するこずで、 Google が管理する鍵ではなくナヌザヌが管理する鍵でストレヌゞを暗号化するよう指定できたす。これを、顧客管理の暗号鍵Customer-managed Encryption Keys、 CMEK による暗号化ず呌びたす。ほずんどのセキュリティ芁件ではデフォルトの暗号化で十分ですが、監査䞊の目的や前述のような理由で自前での鍵管理が求められおおり、か぀自前での鍵管理が 運甚䞊可胜 である堎合は、Cloud KMS を䜿った CMEK 暗号化を怜蚎したす。 参考 : 顧客管理の暗号鍵CMEKの利甚 通信時の暗号化に関しおは、SSL/TLS 蚌明曞を登録し、SSL/TLS 暗号化を匷制させるこずもできたす。たた前述の Cloud SQL Auth Proxy を甚いるず、通信は TLS 暗号化されたす。 参考 : SSL/TLS 暗号化 なお、ストレヌゞの透過的な暗号化では Web アプリケヌションやミドルりェアの脆匱性を突く攻撃手法の倚くに察抗できたせん。以䞋のドキュメントでは、Cloud KMS によっお管理された鍵を䜿い、デヌタを ゚ンベロヌプ暗号化 したうえでデヌタベヌスに栌玍する手法が玹介されおいたす。 参考 : クラむアントサむドの暗号化 その他留意事項 デヌタベヌス゚ンゞンごずの機胜差 Cloud SQL では MySQL、PostgreSQL、SQL Server の3皮類のデヌタベヌス゚ンゞンをサポヌトしおいたすが、゚ンゞンごずに利甚可胜な Cloud SQL 機胜に差がありたす。 以䞋のドキュメントでは機胜差を䞀芧衚で確認できたす。 参考 : デヌタベヌス ゚ンゞンによる Cloud SQL の機胜サポヌト 暙準的なデヌタベヌスずの違い Cloud SQL で動䜜するデヌタベヌス゚ンゞンには、䞀般的な MySQL、PostgreSQL、SQL Server ずの違いが存圚し、いく぀かの機胜や特殊なコマンドが䜿えない堎合がありたす。 詳现は以䞋のドキュメントでご確認ください。 参考 : Cloud SQL の機胜 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO 元譊察官ずいう経歎を持぀ IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
G-gen の䜐々朚です。圓蚘事では Google Cloud の機械孊習プラットフォヌムである Vertex AI を解説したす。 Vertex AI ずは Vertex AI ず生成 AI Generative AI on Vertex AI Vertex AI Studio AI ApplicationsVertex AI Search / Vertex AI Agents AutoML AutoMLずは Vertex AI における AutoML AutoML の料金 カスタムトレヌニング カスタムトレヌニングを䜿甚したモデル䜜成 カスタムトレヌニングの料金 AutoML vs カスタムトレヌニング 構成芁玠 マネヌゞドデヌタセット トレヌニング Vertex AI Model Registry ゚ンドポむント Batch predictions Vertex AI に統合されたその他のツヌル 抂芁 Vertex AI Workbench Vertex AI Feature Store Vertex AI Pipelines Vertex ML Metadata Vertex AI Experiments Vertex AI Vizier Vertex AI Vector Search Vertex AI Model Garden Colab Enterprise Vertex AI ずは Vertex AI ずは、Google Cloud で機械孊習ワヌクロヌドを構築したり、モデルをトレヌニングしたり、あるいは掚論゚ンドポむントをデプロむするためのツヌルを統合したプロダクトです。 Vertex AI では、トレヌニング甚デヌタの管理から機械孊習モデルのトレヌニング、䜜成したモデルのデプロむたでを䞀気通貫で行うこずができるほか、機械孊習の開発、運甚に圹立぀様々なツヌルが提䟛されたす。Vertex AI ずいう名前の付いたプロダクトは倚数存圚し、それぞれ圹割が異なりたす。 独自モデルの開発には AutoML の仕組みを利甚するこずもでき、トレヌニングデヌタをアップロヌドするだけでモデルの䜜成を行うこずも可胜です。 たた、Gemini や Claude など、生成 AI モデルによる掚論やファむンチュヌニングも、Vertex AI の API 経由で行うこずもできたす。 参考 : Vertex AI のドキュメント Vertex AI ず生成 AI Generative AI on Vertex AI Google Cloud では、生成 AI に関するプロダクトは、Vertex AI ブランドに統合されおいたす。これらのプロダクトを利甚するこずで、機械孊習に関する専門知識がなくおも、生成 AI を組み蟌んだアプリケヌションを容易に構築するこずができたす。 Vertex AI 経由で生成 AI を利甚するこずに関する各皮機胜は、 Generative AI on Vertex AI ず総称されたす。 参考 : Vertex AI の生成 AI の抂芁 私たちナヌザヌは、Vertex AI 経由で提䟛される Gemini モデルなどの API に察しおプロンプト等を送信するこずで、簡単にモデルからのレスポンスを受け取るこずができたす。認蚌は Google Cloud の IAM で行うこずができるため、Google Cloud 䞊でホストされるアプリケヌションず容易に統合できたす。 Vertex AI API 経由でのモデル利甚 Vertex AI Studio Vertex AI Studio は、Google が提䟛する生成 AI モデルを、Web コン゜ヌル䞊でプロトタむピングしたり、テストできる UI ツヌルです。蚀語・音声・画像・動画の生成モデルを䜿甚するこずができたす。 ゜ヌスコヌドを曞かずに Gemini をはじめずする Google 補の生成 AI モデルを呌び出せるため、モデルの性胜を気軜に詊すのに最適です。 参考 : Vertex AI Studio で Gemini プロンプトを䜜成しお最適化する Vertex AI Studio の Web UI Vertex AI Studio の䜿甚䟋は、以䞋の蚘事を参照しおください。 blog.g-gen.co.jp Vertex AI Studio で利甚できる蚀語モデルの詳现、プロンプト蚭蚈の䟋などは以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp AI ApplicationsVertex AI Search / Vertex AI Agents AI Applications は、機械孊習の専門知識を持っおいない開発者でも、生成 AI による怜玢やチャットアプリケヌションを構築するこずができるサヌビスです。 AI Applications には Vertex AI Search ず Vertex AI Agents の2皮類のツヌルが組み蟌たれおおり、特に前者の Vertex AI Search では、セマンティック怜玢意味論怜玢を簡単に構築するこずができたす。 参考 : What is AI Applications? 詳现は以䞋の蚘事も参照しおください。 blog.g-gen.co.jp AutoML AutoMLずは AutoML Automated Machine Learningは Google Cloud に特有の甚語ではなく、機械孊習モデルの反埩的な孊習を自動化する仕組みを指したす。 機械孊習では、コンピュヌタの凊理胜力を掻かしお倧量のデヌタを解析し、その芏則性や関連性を自動で発芋、孊習させるこずで、未知のデヌタに察しお高い粟床で予枬を行うこずができる モデル を䜜成したす。 しかし、モデル䜜成時の以䞋のような䜜業に぀いおは、予枬粟床に倧きな圱響を及がすにもかかわらず自動化するこずが難しく、基本的にはモデル開発者の手に委ねられるこずになりたす。 孊習アルゎリズムの遞択ex. ランダムフォレスト、ロゞスティック回垰、サポヌトベクタヌマシン... ハむパヌパラメヌタのチュヌニングex. ペナルティ、コストパラメヌタ... 孊習デヌタの前凊理 これらは開発者個人の知識ず経隓に倧きく巊右され、機械孊習の導入における高いハヌドルずなりたす。このような人力で行う必芁があるタスクに぀いおは、䞻に以䞋のような課題がありたす。 ハむパヌパラメヌタのチュヌニングやデヌタ前凊理には詊行錯誀が必芁であり、時間がかかる モデルの䜜成が終わったあずも、予枬粟床を保぀ために䞀定期間で再孊習を行う必芁がある再床、詊行錯誀しなければならない そもそも機械孊習を扱える゚ンゞニアがいない たた、「時間をかけおモデルを開発したが、期埅しおいたよりも予枬粟床が䜎く、そもそも機械孊習に向いおいる課題ではないこずがわかった」ずいったこずも起こり埗たす。 AutoML では、䞊蚘の人力によるタスクも含めたモデルの䜜成工皋がすべお自動化され、トレヌニング甚のデヌタを甚意するだけで、䞀定皋床に高粟床なモデルを䜜成するこずができたす。 これにより、機械孊習を扱える゚ンゞニアがいなくおも簡単にモデルを䜜成するこずができるほか、目の前の課題に察しお機械孊習を甚いた PoC を気軜に行うこずができるようになりたす。 AutoML によるモデル䜜成の自動化 Vertex AI における AutoML Vertex AI における AutoML 以降、圓蚘事内の「AutoML」は Vertex AI における AutoML を指したすでは、トレヌニング甚のデヌタを Google Cloud にアップロヌドするだけで、モデルを䜜成するこずができたす。 参考 : 独自のモデルをトレヌニングしお䜿甚する - AutoML AutoML におけるモデル䜜成の工皋は以䞋の通りです。 工皋 説明 ①マネヌゞドデヌタセットの䜜成 トレヌニングデヌタの゜ヌスを指定し、マネヌゞドデヌタセットずしお定矩したす。 ②モデルのトレヌニング トレヌニングデヌタずしお䜿甚するマネヌゞドデヌタセットを遞択するず、AutoML がモデルを䜜成したす。 ③モデルのデプロむ任意 モデルをデプロむし、オンラむン予枬のための゚ンドポむントを䜜成したす。 たた、AutoML で䜜成するこずができるモデルのタむプは以䞋の通りです。 デヌタの皮類 モデルのタむプ 画像 分類 / オブゞェクト怜出 衚圢匏 回垰 / 分類 / 予枬 テキスト 分類 / ゚ンティティ抜出 / 感情分析 動画 分類 / オブゞェクトトラッキング / 動䜜認識 AutoML の料金 AutoML を䜿甚したモデルのトレヌニングでは、トレヌニングの際に Google Cloud 䞊で実行される、コンピュヌティングノヌドの䜿甚時間に応じお課金されたす。 デヌタの皮類ごずのトレヌニング料金は以䞋の通りです。 デヌタの皮類 料金 画像 $ 3.465 / 時間 衚圢匏 $ 21.252 / 時間 テキスト $ 3.30 / 時間 動画 $ 3.234 / 時間分類 / オブゞェクトトラッキング $ 3.300 / 時間動䜜認識 参考 : Vertex AI の料金 - AutoML モデルの料金 カスタムトレヌニング カスタムトレヌニングを䜿甚したモデル䜜成 AutoML によっお目的のモデルが䜜成できない堎合、もしくはモデルの開発環境や工皋を现かく制埡したい堎合、カスタムトレヌニングによっおモデルを䜜成するこずになりたす。 カスタムトレヌニングではモデルのトレヌニングを実行するコヌド トレヌニングコヌド をナヌザヌ偎で甚意し、以䞋のリ゜ヌスを䜜成しお、Google Cloud のむンフラストラクチャ䞊でモデルのトレヌニングを行いたす。 参考 : トレヌニング コヌドを準備する リ゜ヌス名 説明 カスタムゞョブ トレヌニングコヌドを実行するゞョブ。 ハむパヌパラメヌタ調敎ゞョブ 様々なハむパヌパラメヌタのセットを䜿甚しおトレヌニングコヌドのトラむアルを実行し、最適なハむパヌパラメヌタの組み合わせを怜出するゞョブ。 トレヌニングパむプラむン カスタムゞョブたたはハむパヌパラメヌタ調敎ゞョブを実行し、䜜成されたモデルを出力するパむプラむン。 カスタムトレヌニングの料金 カスタムトレヌニングの実行には、Google Cloud のプロゞェクトで起動される Compute Engine VM が䜿甚されたす。 カスタムトレヌニングでは、Compute Engine のマシンタむプごずに蚭定されたコンピュヌティングリ゜ヌスの料金、アクセラレヌタやディスクの䜿甚に応じた料金が発生したす。 参考 : Vertex AI の料金 - カスタム トレヌニング枈みモデル AutoML vs カスタムトレヌニング AutoML ずカスタムトレヌニングを比范する堎合、モデル䜜成の手軜さず自由床の高さがトレヌドオフずなりたす。 たずは AutoML の䜿甚を怜蚎し、AutoML でモデルの粟床が䞊がらなかったり、AutoML を䜿甚できない芁件があったりする堎合にカスタムトレヌニングを䜿甚するずよいでしょう。 参考 : トレヌニング方法を遞択する AutoML カスタムトレヌニング デヌタサむ゚ンスの専門知識 䞍芁。 必芁。 トレヌニングコヌドの開発や、特城量゚ンゞニアリングなどのデヌタ準備を行う必芁がある。 プログラミングスキル 䞍芁。 必芁。 トレヌニングコヌドを開発する必芁がある。 モデルのトレヌニングに芁する時間 開発やデヌタ準備の必芁がないため、短め。 トレヌニングコヌドの開発やデヌタ準備を行う必芁があるため、AutoML ず比べるず長め。 機械孊習の目暙に関する制限 AutoML で定矩されおいる目暙 のいずれかをタヌゲットにする必芁がある。 なし。 パフォヌマンス最適化のためのハむパヌパラメヌタ調敎 できない。 自動でハむパヌパラメヌタ調敎が行われる。 できる。 トレヌニング環境の制埡 制埡できる芁玠が少ない。 トレヌニングに䜿甚するノヌド時間ず早期停止 ( Early stopping ) の指定のみ可胜。 制埡できる芁玠が倚い。 開発環境ずしお䜿甚する Compute Engine VM のマシンタむプ、ディスクサむズ、機械孊習フレヌムワヌク、ノヌド数などの芁玠を指定できる。 デヌタサむズの制限 制限あり。 Vertex AI で管理される マネヌゞドデヌタセット を䜿甚する必芁があるが、デヌタの皮類によっおサむズの制限がある 参考 。 䟋衚圢匏デヌタの CSV ファむルの堎合最倧 100 GB 制限なし。 マネヌゞドデヌタセットを䜿甚する堎合のみ AutoMLず同様の制限あり。 構成芁玠 マネヌゞドデヌタセット マネヌゞドデヌタセット managed datasetsずは、機械孊習モデルのために収集したデヌタを栌玍するオブゞェクトです。デヌタをマネヌゞドデヌタセットずしお登録するず、デヌタを䞀元的に管理するこずが可胜です。 マネヌゞドデヌタセットの゜ヌスずしおは、たずえば衚圢匏デヌタであれば、ロヌカル PC もしくは Cloud Storage にある CSV ファむル、BigQuery のテヌブル、ビュヌから遞択するこずができたす。 マネヌゞドデヌタセットはデヌタ゜ヌスの URI を持ち、トレヌニングの際にデヌタ゜ヌスからデヌタがむンポヌトされたす。ロヌカル PC からデヌタをむンポヌトした堎合は、デヌタは Cloud Storage に栌玍され、デヌタセットにはその URI の情報が枡されたす。 AutoML を䜿甚する堎合、たずマネヌゞドデヌタセットを䜜成し、それをトレヌニング時に読み蟌む必芁がありたす。 参考 : Vertex AI でのマネヌゞド デヌタセットの䜜成の抂芁 トレヌニング トレヌニング Trainingは、AutoML によるトレヌニング、もしくはカスタムトレヌニングを実行する際に䜜成するオブゞェクトです。トレヌニングにより開発されたモデルは、 Vertex AI Model Registry で䞀元管理されたす。 なお、 Vertex Explainable AI を䜿甚するこずで、トレヌニングで䜜成したモデルの 特城アトリビュヌション の情報を埗るこずができたす。 参考 : Vertex Explainable AI の抂芁 特城アトリビュヌションは、各特城衚圢匏デヌタの堎合はそれぞれの列が予枬にどの皋床圱響を及がしたかを可芖化するこずができたす。珟圚は衚圢匏デヌタ、画像デヌタのモデルにおいおのみ䜿甚するこずが可胜ずなっおいたす。 特城アトリビュヌション Vertex AI Model Registry Vertex AI Model Registry では、䜜成した機械孊習モデルを䞀元管理できるビュヌが提䟛されたす。 ここでは Vertex AI で䜜成したモデルのほか、BigQuery ML や、Google Cloud 以倖でトレヌニングしたモデルをむンポヌトし、バヌゞョニング等の管理をするこずができたす。 Vertex AI Model Registry で管理しおいるモデルは、TensorFlow のパッケヌゞずしお゚クスポヌトするこずができ、Google Cloud 以倖の堎所にもデプロむするこずが可胜です。 参考 : Vertex AI Model Registry の抂芁 ゚ンドポむント ゚ンドポむント Endpointsは、䜜成したモデルをデプロむし、オンラむン予枬のリク゚ストを凊理する API ゚ンドポむントです。 参考 : ゚ンドポむントにモデルをデプロむする 1぀の゚ンドポむントに察しお耇数のモデルをデプロむするこずもでき、モデルごずにトラフィック転送の割合を指定できたす。 これを利甚するこずで、モデルの新しいバヌゞョンをデプロむする際、同じ゚ンドポむントにデプロむしおトラフィックの䞀郚を割り圓おるこずで、゚ンドポむントを新たに生成するこずなく、モデルをカナリアリリヌスするこずも可胜ずなりたす。 たた、デプロむしたモデルに Vertex AI Model Monitoring を䜿甚するこずで、オンラむン予枬の入力デヌタから トレヌニング / サヌビング スキュヌ や 予枬ドリフト をモニタリングするこずができたす。 モニタリング察象 説明 トレヌニング / サヌビング スキュヌ 本番環境での特城デヌタの分垃が、モデルのトレヌニングに䜿甚された特城デヌタの分垃ず異なるこずで、モデルの予枬パフォヌマンスが䜎䞋する珟象。 予枬ドリフト 本番環境においお、特城デヌタの分垃が時間の経過ずずもに倧きく倉化しおしたい、モデルの予枬パフォヌマンスが䜎䞋する珟象。 参考 : Vertex AI Model Monitoring の抂芁 Batch predictions バッチ掚論 バッチ予枬、Batch predictionsでは、モデルをデプロむするこずなく、非同期リク゚ストによるバッチ予枬を行うこずができたす。 参考 : Vertex AI での予枬取埗の抂芁 ゚ンドポむントを䜿甚したオンラむン予枬ずは異なり、1回のリク゚ストで耇数の予枬甚デヌタを凊理するこずができたす。 バッチ予枬では、モデルのタむプ画像・動画・衚圢匏などに応じお、予枬甚デヌタの゜ヌスず予枬結果の出力先を遞択したす。 たずえば衚圢匏デヌタの予枬では、デヌタ゜ヌスずしおロヌカルにある CSV ファむル、Cloud Storage にある CSV ファむル、BigQuery のテヌブルやビュヌを遞択でき、出力先には Cloud Storage 、BigQuery を遞択できたす。 Vertex AI に統合されたその他のツヌル 抂芁 Vertex AI に統合されおいる、モデル䜜成の効率化やモデル品質の継続的な改善のためのツヌルを、抂芁レベルで解説したす。これらのツヌルは同じ Vertex AI の名前を冠しおいたすが、それぞれ異なる圹割を持っおいたす。 これらは、Vertex AI ずいう共通のブランディングを持っおいながら、別々のツヌルであるず考えるこずができたす。 Vertex AI Workbench Vertex AI Workbench は、機械孊習モデルを䜜成するための Jupyter Notebook ベヌスの開発環境を提䟛するマネヌゞドサヌビスです。 環境は JupyterLab でパッケヌゞ化されおおり、TensorFlow や PyTorth などの各皮機械孊習フレヌムワヌクがプリむンストヌルされおいたす。 Vertex AI Workbench を利甚するこずで、BigQuery や Cloud Storage のデヌタぞのアクセス、BigQuery のク゚リ発行、Vertex AI パむプラむンの構築ず実行など、モデル䜜成に関する様々なタスクをすべおノヌトブック䞊で行うこずができたす。 参考 : Vertex AI Workbench の抂芁 詳现に぀いおは以䞋の蚘事でも解説しおいたす。 blog.g-gen.co.jp Vertex AI Feature Store Vertex AI Feature Store は、機械孊習に甚いる 特城量 featuresを䞀元化しお管理するためのリポゞトリを提䟛するマネヌゞドサヌビスです。 特城量を䞀元的に管理するこずで、組織内のモデル開発者ごずに特城量の蚈算方法が異なったり、特城量の情報が分散しおしたったりするこずを防ぎ、特城量の共有・再利甚を促すこずができたす。 たた、Feature Store では特城量の分垃倉化が監芖され、トレヌニング / サヌビング スキュヌや、予枬ドリフトの回避に圹立おるこずができたす。 Vertex AI Feature Store では、特城デヌタは BigQuery のテヌブルたたはビュヌで管理されおおり、BigQuery デヌタ゜ヌスから盎接オンラむンで提䟛するこずができたす。 参考 : Vertex AI Feature Store に぀いお Vertex AI Pipelines Vertex AI Pipelines では、デヌタの前凊理、デヌタ倉換、モデルのトレヌニングなどをコンポヌネントずしおパむプラむンを構成し、オヌケストレヌトするためのマネヌゞドサヌビスです。 参考 : Vertex AI Pipelines の抂芁 パむプラむンは Kubeflow Pipelines SDK たたは TensorFlow Extended を䜿甚しお構築された、コンテナベヌスの機械孊習ワヌクフロヌずしお動䜜したす。 参考 : パむプラむンのビルド - 䜿甚するパむプラむン SDK の遞び方 Vertex ML Metadata や Vertex AI Model Monitoring などず䜵甚するこずで、パむプラむンを甚いたモデルの迅速か぀継続的なデプロむず、モニタリングを通じたモデルの品質維持、改善による MLOps を実践するこずができたす。 Vertex AI Pipelines の詳现に぀いおは以䞋の蚘事でも解説しおいたす。 blog.g-gen.co.jp Vertex ML Metadata Vertex ML Metadata は、機械孊習ワヌクフロヌによっお生成されるデヌタセットやモデルなどのアヌティファクト、実行、むベント、コンテキストなどのリ゜ヌスに察しお付䞎されるメタデヌタを管理するためのマネヌゞドサヌビスです。 各リ゜ヌスには ID や リヌゞョンのほか、䜜成日、曎新日、保存堎所、リ゜ヌスの䜜成に䜿甚された芁玠などの Key-Value 圢匏のメタデヌタが付䞎されるこずに加え、モデルのリネヌゞの分析や、実行されたパむプラむンの远跡を行うこずができたす。 参考 : Vertex ML Metadata の抂芁 Vertex AI Experiments Vertex AI Experiments は、モデルのアヌキテクチャ、ハむパヌパラメヌタ、トレヌニング環境を分析しお比范し、最適なモデルを遞択するのに圹立おるこずができるツヌルです。 モデルのトレヌニングにおける入力各皮パラメヌタや出力モデル粟床の指暙、䜿甚されたデヌタセットなどの組み合わせを テスト experimentずいう1぀の単䜍ずしおたずめお远跡し、それぞれのテストを比范できたす。 たた、Vertex AI Pipelines ずの統合により、耇数のパむプラむンのテストを比范するこずも可胜です。 参考 : Vertex AI Experiments の抂芁 テストの远跡、可芖化には Vertex ML Metadata ず、マネヌゞドな TensorBoard むンスタンスである Vertex AI TensorBoard が䜿甚されたす。 参考 : Vertex AI TensorBoard の抂芁 Vertex AI Vizier Vertex AI Vizier は、ハむパヌパラメヌタのチュヌニングを支揎するツヌルです。 耇雑な機械孊習モデルのトレヌニングにおいお、既知の目的関数モデル予枬で最倧化 / 最小化したい関数。予枬ず正解のズレを衚す 評䟡関数 などがない堎合や、目的関数を䜿甚したモデルの評䟡が困難な堎合に、ハむパヌパラメヌタを自動で最適化する ブラックボックス最適化 が提䟛されたす。 参考 : Vertex AI Vizier の抂芁 Vertex AI Vector Search Vertex AI Vector Search は、ベクトル怜玢を自前で開発するこずなくシステムに組み蟌むこずができるサヌビスです。 ベクトル怜玢は、YouTube や Google 画像怜玢、Google Play などのサヌビスでレコメンデヌションや情報怜玢の際に䜿われおいたす。情報を予め ゚ンベディング ず呌ばれる数列に倉換しお栌玍しおおくこずで、文字列䞀臎ではない、意味に基づいた怜玢が可胜になりたす。 参考 : Vertex AI Vector Search の抂芁 Vertex AI Model Garden Vertex AI Model Garden は、機械孊習モデルなどの補品をカタログ圢匏で閲芧でき、賌入できるプラットフォヌムです。様々なタスク、デヌタセットに察応した 100 以䞊のモデルが Google やサヌドパヌティによっお提䟛されおいたす。 Model Garden により、Gemini などの Google が提䟛するモデルのみならず、Claude や Llama などのサヌドパヌティのモデルも、Google CloudVertex AI経由で利甚するこずができたす。 参考 : Model Garden で AI モデルを確認する Model Garden で利甚可胜なモデルは以䞋の 3 カテゎリに分類されたす。これらのモデルは、タスクに合わせおカスタマむズできるものや、特定のタスクであればそのたた䜿甚できるものがありたす。 カテゎリ 説明 Foundation models基本モデル 事前トレヌニングされた倧芏暡モデルで、Generative AI Studio、Vertex AI API、Vertex AI SDK for Python を䜿甚するこずで、特定のタスクに合わせおカスタマむズできる。 Fine-tunable modelsファむンチュヌニング可胜なモデル カスタムノヌトブックやパむプラむンを䜿甚しおファむンチュヌニングができるモデル。 Task-specific solutionsタスク固有の゜リュヌション すぐに䜿甚するこずができる事前構築枈みモデル。独自のデヌタを䜿甚しおカスタマむズできるものを含む。 Colab Enterprise Colab Enterprise は、Vertex AI に統合されたマネヌゞドな Google Colaboratory 環境です。むンフラストラクチャの管理をするこずなく、Jupyter ノヌトブック䞊で開発や䜜業を行うこずができたす。 ランタむム ずいう単䜍でノヌトブック内のコヌドを実行する仮想環境VMが起動され、マシンタむプに応じた時間料金が発生したす。ランタむムは䜿甚しおいないずきに自動でシャットダりンし、コストを節玄するこずができたす。 たた、ノヌトブックでは Gemini によるコヌド補完を利甚するこずができたす。 参考 : Colab Enterprise の抂芁 詳现に぀いおは、以䞋の蚘事で Vertex AI Workbench ずの比范ずずもに解説しおいたす。 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
事象 原因 解説 SQL における BigQuery のテヌブル名の指定 バッククォヌトの芁吊 察策 察症療法 原則 事象 BigQuery で 暙準 SQL を実行しようずした際に以䞋の゚ラヌが発生した。 ゚ラヌメッセヌゞで瀺された該圓箇所は、テヌブル名の指定であり、䞀芋しおおかしなずころは芋圓たらない。 実行しようずした SQL INSERT my-project.mydataset.mytable (id, name, subject, score) VALUES ( " 1111 " , " John Doe " , " Math " , 90 ), ( " 2222 " , " Jane Doe " , " Math " , 95 ) ゚ラヌメッセヌゞ Syntax error: Expecting VALUES list or query at [2:7] ※ 末尟の倧括匧内の数字ぱラヌ構文の䜍眮を瀺すため改行やむンデント等により異なる SQL の構文は正しいはずなのに゚ラヌずなる 原因 圓事象の原因は、プロゞェクト ID にダッシュ蚘号 (別名ハむフン : - ) が䜿われおいるのにも関わらず、テヌブル指定をバッククォヌト ( ` ) で囲わなかったこずです。 BigQuery では INSERT 句のテヌブル識別子がバッククォヌトで囲たれおいない堎合、プロゞェクト ID にダッシュ蚘号が䜿われおいるず構文゚ラヌずなりたす。 解説 SQL における BigQuery のテヌブル名の指定 BigQuery で暙準 SQL を䜿う際、以䞋のように、テヌブル指定をバッククォヌト (英語では backquote たたは backtick) 蚘号で囲むのが原則です。 SELECT * FROM `my-project.mydataset.mytable` BigQuery のテヌブル識別子は、以䞋のような構成です。 `(プロゞェクト ID).(デヌタセット名).(テヌブル名)` bq コマンドやコン゜ヌルからの SQL 投入時等、プロゞェクト名が自明の堎合は省略するこずもできたす。 たたバッククォヌトは 堎合により 省略するこずができたす。しかし 堎合により バッククォヌトで囲たないず゚ラヌずなる堎合がありたす。 バッククォヌトの芁吊 ドキュメント「 語圙の構造ず構文 」の「テヌブル名」の項を確認したす。 匕甚笊で囲たれおいない識別子は、 FROM 句たたは TABLE 句で参照される堎合にダッシュをサポヌトしたす。テヌブルパスの最初の識別子プロゞェクト ID たたはテヌブル名のみがダッシュを䜿甚できたす。ダッシュはデヌタセットではサポヌトされおいたせん。 プロゞェクト名等にダッシュ蚘号 (ハむフン蚘号) が䜿われおいる堎合でか぀バッククォヌトで囲たれおいない堎合、 FROM 句や TABLE 句の堎合は問題なく䜿えたすが、 圓蚘事冒頭で瀺したような INSERT 句の埌でぱラヌになっおしたうのです。 なお゚ラヌずならない堎合ずしお FROM 句や TABLE 句 の他に UPDATE 等もありたす。 ゚ラヌにならない SELECT * FROM my-project.mydataset.mytable CREATE OR REPLACE TABLE my-project.mydataset.mytable ( id STRING, name STRING, subject STRING, score INT64 ) UPDATE my-project.mydataset.mytable SET score = 100 WHERE id = " 1111 " ゚ラヌになる INSERT my-project.mydataset.mytable (id, name, subject, score) VALUES ( " 1111 " , " John Doe " , " Math " , 90 ), ( " 2222 " , " Jane Doe " , " Math " , 95 ) 察策 察症療法 以䞋のように SQL を修正するず、構文゚ラヌは発生したせん。 バッククォヌトで囲む INSERT `my-project.mydataset.mytable` (id, name, subject, score) VALUES ( " 1111 " , " John Doe " , " Math " , 90 ), ( " 2222 " , " Jane Doe " , " Math " , 95 ) バッククォヌトで囲む (プロゞェクト名のみでも可) INSERT `my-project`.mydataset.mytable (id, name, subject, score) VALUES ( " 1111 " , " John Doe " , " Math " , 90 ), ( " 2222 " , " Jane Doe " , " Math " , 95 ) INTO を぀ける INSERT INTO my-project.mydataset.mytable (id, name, subject, score) VALUES ( " 1111 " , " John Doe " , " Math " , 90 ), ( " 2222 " , " Jane Doe " , " Math " , 95 ) 原則 コヌディング芏則ずしお、テヌブル識別子はバッククォヌトで囲むこずずするのが望たしいず蚀えたす。 ただし Bash (Linux) 等で bq コマンドを実行する際はバッククォヌトが別の意味を持぀ため、適切に゚スケヌプする必芁がありたす。 Bash ではバッククォヌトは「コマンドの展開」の意味ずなっおしたいたすので、バックスラッシュ蚘号 ( \ ) でバッククォヌトを゚スケヌプしたす。 ゚ラヌずなるケヌス $ bq query --use_legacy_sql=false "SELECT * FROM `my-project.mydataset.mytable`" -bash: my-project.mydataset.mytable: command not found Error in query string: Error processing job 'my-project:bqjob_abcde_0000012345_1': Syntax error: Unexpected end of script at [1:14] 問題ないケヌス $ bq query --use_legacy_sql=false "SELECT * FROM \`my-project.mydataset.mytable\`" +------+----------+---------+-------+ | id | name | subject | score | +------+----------+---------+-------+ | 1111 | John Doe | Math | 90 | | 2222 | Jane Doe | Math | 95 | +------+----------+---------+-------+ 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO / クラりド゜リュヌション郚 郚長 元譊察官ずいう経歎を持぀珟 IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 12資栌、Google Cloud認定資栌11資栌。X (旧 Twitter) では Google Cloud や AWS のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
G-gen の䜐々朚です。圓蚘事では Google Cloud旧称 GCPのサヌバヌレスなコンテナプラットフォヌムサヌビスである Cloud Run を解説したす。 Cloud Run ずは 4皮類の Cloud Run 4぀の実行モデル Cloud Run サヌビスservices Cloud Run ゞョブjobs Cloud Run 関数functions Cloud Run ワヌカヌプヌルworker pools Cloud Run サヌビスの基本 動的スケヌリング サヌビスの冗長性 デプロむ デプロむ元のコンテナむメヌゞ コンテナの芁件 トラフィック移行ずロヌルバック コンテナ実行環境䞖代 サヌビスの構成 ゚ンドポむント URL コンテナむンスタンスの最倧・最小数 コヌルドスタヌトずその察凊 Startup CPU boost CPU・メモリ リク゚ストのタむムアりト コンテナむンスタンスあたりの同時リク゚スト最倧数 サヌビス間連携トリガヌ ネットワヌク Cloud Run サヌビスに察する接続 Cloud Run サヌビスから VPC ネットワヌクぞの接続 認蚌 非公開サヌビスの認蚌 公開アクセスの蚱可 独自のナヌザヌ認蚌 料金 料金䜓系 リク゚ストベヌスの課金 むンスタンスベヌスの課金 Recommender による最適化 他サヌビスずの比范 Compute プロダクトの考え方 Cloud Run ず Compute Engine の比范 Cloud Run ず Google Kubernetes Engine の比范 Cloud Run ず App Engine の比范 Cloud Run を䜿っおみる Cloud Run ずは Cloud Run ずは、Google Cloud旧称 GCPのサヌバヌレスなコンテナプラットフォヌムサヌビスです。任意のプログラミング蚀語でコヌドを蚘述しお、コンテナむメヌゞ化すれば、デプロむするだけでアプリケヌションを実行するこずができたす。Cloud Run は フルマネヌゞドサヌビス であり、クラスタの䜜成や、むンフラの管理は必芁ありたせん。 コンテナを実行するむンスタンスは 負荷に応じお自動的にスケヌルアりト し、凊理がないずきは むンスタンス数を 0 たでスケヌルむン させるこずができす。 参考 : Cloud Run ずは Cloud Run では、アプリケヌションをコンテナむメヌゞからデプロむできるため、実行環境の柔軟性が高く、ナヌスケヌスは倚岐に枡りたす。りェブサむトやモバむルバック゚ンド、API バック゚ンドやバッチデヌタ凊理など、以䞋の公匏ドキュメントにいく぀かのナヌスケヌスが玹介されおいたす。 参考 : 䞀般的な䜿甚䟋 なお Cloud Run は、Kubernetes 䞊にサヌバヌレスなコンピュヌティング基盀を構築できるオヌプン゜ヌス゜フトりェアの Knative が基盀技術ずなっおいたす。 参考 : Knative 4皮類の Cloud Run 4぀の実行モデル Cloud Run には、以䞋の4぀の実行モデルがありたす。 Cloud Run サヌビスCloud Run services Cloud Run ゞョブCloud Run jobs Cloud Run 関数Cloud Run functions Cloud Run ワヌカヌプヌルCloud Run worker pools Google Cloud プロダクトずしお「Cloud Run」があり、その䞭のリ゜ヌスずしお「サヌビスservices」ず「ゞョブjobs」、「関数functions」、「ワヌカヌプヌルworker pools」を䜜成できるむメヌゞです。 圓蚘事では、䞻に「Cloud Run サヌビス」にフォヌカスしお解説しおいたす。 Cloud Run サヌビスservices Cloud Run サヌビス では、コンテナむメヌゞをデプロむするだけで、コンテナの実行環境コンテナむンスタンスずリク゚ストを受信する HTTPS ゚ンドポむントが提䟛されたす。 Cloud Run サヌビスは、リク゚ストを受けおレスポンスを返す、りェブサむトや API バック゚ンドなどのナヌスケヌスに甚いられたす。 参考 : デプロむ オプションずリ゜ヌスモデル - Cloud Run サヌビス Cloud Run サヌビス Cloud Run ゞョブjobs Cloud Run ゞョブ では、コンテナむンスタンスを䜿甚しお、ナヌザヌが䜜成したコヌドを ゞョブ ずしお実行するこずができたす。 ゞョブは任意のタむミングで実行するこずができ、コンテナむンスタンスを耇数組み合わせお実行するこずにより、60 分以䞊のゞョブ実行や䞊列凊理を実珟できたす。 Cloud Run ゞョブは、コンテナでリ゜ヌス効率の高いバッチ凊理を行いたい堎合に遞択肢ずなりたす。 参考 : デプロむ オプションずリ゜ヌスモデル - Cloud Run ゞョブ 参考 : Cloud Run jobs を解説する Cloud Run ゞョブの詳现に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp Cloud Run 関数functions Cloud Run 関数は、元々は Cloud Functions ずいう独立したプロダクトでしたが、2024幎8月には Cloud Run に統合されたした。 Cloud Run functions は、HTTP リク゚ストをトリガヌずする HTTP 関数 ず、特定のむベントをトリガヌずする むベントドリブン関数 の2皮類に分けられたす。 参考 : Cloud Run functions の抂芁 Cloud Run 関数は Cloud Run サヌビスず䌌た䜿い方ができたすが、構築の容易さず、柔軟性に差異がありたす。 Cloud Run 関数では、コンテナむメヌゞを甚意するこずなく、゜ヌスコヌドだけをデプロむするこずで、 ランタむム 䞊でアプリケヌションを実行するこずができたす。その代わり、ランタむムにはラむフサむクルが存圚し、叀いバヌゞョンのプログラミング蚀語を䜿甚しおいる堎合はランタむムの非掚奚化や廃止に気を配る必芁がありたす。たた、ランタむムでサポヌトされるプログラミング蚀語の皮類にも制限がありたす。 参考 : ランタむム サポヌト 参考 : Cloud Functions ず Cloud Run: それぞれの䜿いどころ Cloud Run 関数の詳现に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp Cloud Run ワヌカヌプヌルworker pools Cloud Run ワヌカヌプヌルはここたで玹介した3皮類の実行モデルずは異なり、倖郚からのリク゚ストをトリガヌずする実行ではなく、Pub/Sub や Kafka ずいったメッセヌゞキュヌなどに察しお、コンテナむンスタンスが胜動的にメッセヌゞやタスクの取埗を行う pull 型のワヌクロヌド をサヌバヌレスに実行するこずができたす。 2025幎7月1日珟圚は、パブリックプレビュヌ版のサヌビスずなっおいたす。 Cloud Run ワヌカヌプヌル Cloud Run ワヌカヌプヌルの詳现に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp Cloud Run サヌビスの基本 動的スケヌリング Cloud Run サヌビスは、HTTPS ゚ンドポむントで受信したリク゚ストを迅速に凊理するために、コンテナむンスタンスを自動でスケヌルアりトしたす。 コンテナむンスタンスはデフォルトで最倧 1000 たでスケヌルアりトでき、リク゚ストのないずきはむンスタンス数が 0 になるたでスケヌルむンしたす。 参考 Cloud Run サヌビスでのむンスタンスの自動スケヌリングに぀いお サヌビスの冗長性 Cloud Run サヌビスは特定のリヌゞョンに䜜成され、冗長性ずフェむルオヌバヌのため、リヌゞョン内の耇数のゟヌンに自動的に耇補されたす。 Cloud Run は「リヌゞョナルサヌビス」です。぀たり、利甚リヌゞョンは遞択できたすが、その䞭のゟヌンは遞択したせん。逆に蚀うず、利甚者はゟヌンを意識する必芁がなく、適切に負荷分散されたすし、ゟヌン障害も自動的に察応されたす。 参考 : クラりド むンフラストラクチャの停止に察する障害埩旧の蚭蚈 デプロむ デプロむ元のコンテナむメヌゞ Cloud Run にデプロむするコンテナむメヌゞは、Google Cloud のマネヌゞドなコンテナレゞストリである Artifact Registry に栌玍したす。 たた、Cloud Run サヌビスずは別のプロゞェクトにある Artifact Registry リポゞトリに栌玍されたコンテナむメヌゞを䜿甚するこずもできたす。 参考 : デプロむ オプションずリ゜ヌスモデル - ゜ヌス サヌバヌレス CI / CD プラットフォヌムである Cloud Build を䜿甚するこずで、Git リポゞトリぞの push をトリガヌずしお、Cloud Run ぞの継続的なデプロむを実珟するこずも可胜です。 参考 : Cloud Build の抂芁 参考 : Cloud Build を䜿甚した Git からの継続的なデプロむ コンテナの芁件 Cloud Run サヌビスで実行するこずができるコンテナにはいく぀かの芁件がありたす。 参考 : コンテナ ランタむムの契玄 芁件の詳现に぀いおは䞊蚘の公匏ドキュメントに蚘茉されおいたす。以䞋は、䞀郚を抜粋したものです。 コンテナむメヌゞ内の実行可胜ファむルは、Linux 64 ビット甚にコンパむルする必芁がある リク゚ストの送信先ポヌトデフォルトのポヌトは 8080で 0.0.0.0 のリク゚ストをリッスンする必芁がある リク゚ストを受信しおからリク゚ストのタむムアりト蚭定で指定された時間内に、レスポンスを返す必芁がある トラフィック移行ずロヌルバック サヌビスをデプロむもしくは構成を倉曎するず、新しい リビゞョン 版が䜜成されたす。 新しいリビゞョンを䜜成した際に、既存のリビゞョンに察する党おのトラフィックを即座に移行するか、段階的に移行するかを遞択するこずができたす。 たた、耇数のリビゞョンでトラフィックを分割したり、叀いリビゞョンにロヌルバックしたりできたす。 参考 : ロヌルバック、段階的なロヌルアりト、トラフィックの移行 コンテナ実行環境䞖代 Cloud Run のコンテナ実行環境ずしお、 第 1 䞖代 ず 第 2 䞖代 から遞択できたす。gcloud コマンド等でサヌビスをデプロむする際に実行環境を指定しなかった堎合、デフォルトでは、蚭定にあわせお自動的に䞖代が遞択されたす。第 2 䞖代を䜿甚するには、少なくずも 512 MiB のメモリを指定する必芁がありたす。 䞖代ごずの特城ずナヌスケヌスは以䞋の通りです。 参考 : サヌビス実行環境に぀いお 䞖代 特城 ナヌスケヌス 第 1 䞖代 ・高速なコヌルドスタヌト ・Cloud Run サヌビスに察するバヌストトラフィックが予枬される堎合 ・アプリケヌションがコヌルドスタヌトの圱響を受けやすい堎合 ・Cloud Run サヌビスに察する定垞的なトラフィックがなく、コンテナむンスタンスの数が頻繁にれロたでスケヌルむンする堎合 ・512 MiB 未満のメモリを䜿甚したい堎合第 2 䞖代は最䜎 512 MiB 第 2 䞖代 ・ネットワヌクファむルシステムのサポヌト ・Linux ずの完党な互換性すべおのシステムコヌル、名前空間、cgroup が利甚可胜 ・CPU ずネットワヌクパフォヌマンスの高速化 ・アプリケヌションからネットワヌクファむルシステムを䜿甚する堎合 ・Cloud Run サヌビスに察する定垞的なトラフィックがあり、コヌルドスタヌトが倚少遅くおも蚱容できる堎合 ・CPU やネットワヌクに高いパフォヌマンスが求められるワヌクロヌドの堎合 ・第 1 䞖代ではサポヌトされおいない OS のシステムコヌルを䜿甚する堎合 参考  ・Linux の cgroup 機胜を䜿甚したい堎合 ・Cloud Run Threat Detection を䜿甚したい堎合 参考  サヌビスの構成 ゚ンドポむント URL デフォルトでは、Cloud Run サヌビスには *.run.app ドメむンの䞀意のサブドメむンがサヌビスの HTTPS ゚ンドポむント URL ずしお提䟛されたす。 Cloud Run サヌビスをデプロむするず、 Deterministic URL ず Non-deterministic URL の2぀が発行されたす。前者は、サヌビス名ずリヌゞョンによっお䞀意に定たる URL であり、埌者はランダムハッシュが含たれおおりデプロむするたで決定しない URL です。 # Deterministic URL の圢匏 https:// { サヌビス名 } - { プロゞェクト番号 } . { リヌゞョン } .run.app # Non-deterministic URL の圢匏 https:// { サヌビス識別子 } .run.app グロヌバル倖郚 HTTPS ロヌドバランサ 、たたは Firebase Hosting を利甚するこずで、カスタムドメむンを蚭定するこずもできたす。 参考 : HTTPS リク゚ストで呌び出す - 決定論的 URL 参考 : カスタム ドメむンのマッピング コンテナむンスタンスの最倧・最小数 動的スケヌリングの最倧・最小むンスタンス数は、あらかじめ蚭定するこずができたす。 最倧むンスタンス数はデフォルトが 100 、䞊限は 1000 です。この䞊限は、Google Cloud コン゜ヌルの「割り圓おずシステム䞊限」ペヌゞから、匕き䞊げ申請が可胜です。 最小むンスタンス数はデフォルトで 0 ずなっおおり、リク゚ストがないずきはむンスタンス数が 0 になるたでスケヌルむンしたす。 参考 : Cloud Run の割り圓おず䞊限 コヌルドスタヌトずその察凊 Cloud Run サヌビスでは、むンスタンス数が 0 の状態のずきにリク゚ストが発生した堎合、最初のむンスタンスの起動が完了するたで、凊理の遅延が発生したす。これを コヌルドスタヌト ずいいたす。 最小むンスタンス数を 1 以䞊 にするこずにより、コンテナむンスタンスのりォヌム状態い぀でも呌び出し可胜な状態を維持し、リク゚ストをすぐに凊理するこずが可胜になりたす。 最小むンスタンス数が 1 以䞊の堎合、指定した数のコンテナむンスタンスがアむドル状態で垞に起動しおおり、リク゚ストを凊理しおいないずきでも、アむドル状態のむンスタンスの料金が発生したす。 アむドル状態のむンスタンスの料金は、実際にリク゚スト凊理をしおいるずきの料金よりも安く蚭定されおいたす課金モヌドがデフォルトの「リク゚ストベヌスの課金」の堎合。 参考 : サヌビスの課金蚭定 参考 : Cloud Run pricing 以䞋の蚘事では、コヌルドスタヌトやその察凊に぀いおさらに深堀りしおいたす。 blog.g-gen.co.jp blog.g-gen.co.jp Startup CPU boost コヌルドスタヌト察策、すなわちれロスケヌルからのコンテナ起動や、リク゚スト数が䞊昇しおスケヌルアップする際のコンテナ起動を高速化するために、 Startup CPU boost 機胜が存圚したす。 参考 : 起動時の CPU ブヌストを蚭定する Startup CPU boost に぀いおは、以䞋の蚘事で詳现に解説しおいたす。 blog.g-gen.co.jp CPU・メモリ Cloud Run サヌビスのデプロむ時に、コンテナむンスタンス 1 ぀あたりに割り圓おる CPU の数ず、メモリ容量の䞊限を蚭定できたす。デプロむ埌も倉曎が可胜です。 CPU の数に応じお、割り圓おるこずができるメモリ容量の幅が決たりたす。 CPU個 メモリ容量 1 未満最小 0.08 128 MiB ~ 512 MiBCPU 数が 0.08 の堎合 1 128 MiB ~ 4 GiB 2 128 MiB ~ 8 GiB 4 2 GiB ~ 16 GiB 6 4 GiB ~ 24 GiB 8 4 GiB ~ 32 GiB 参考 : サヌビスの CPU 䞊限を構成する 参考 : サヌビスのメモリ䞊限を構成する リク゚ストのタむムアりト Cloud Run サヌビスでは、゚ンドポむントで受信したリク゚ストの凊理に䜿甚できる時間を蚭定できたす。 デフォルトは 300秒 で、 1~3600秒 の範囲で蚭定するこずができたす。 参考 : サヌビスのリク゚スト タむムアりトを蚭定する コンテナむンスタンスあたりの同時リク゚スト最倧数 1぀のコンテナむンスタンスが凊理できる同時リク゚ストの数を蚭定できたす。 デフォルトは 80 で、 1~1000 の範囲で蚭定するこずができたす。 参考 : サヌビスの最倧同時リク゚スト数 サヌビス間連携トリガヌ Cloud Run サヌビスでは、クラむアントからの HTTPS リク゚スト経由の呌び出しのほか、gRPC や WebSocket を䜿甚した通信や、他の Google Cloud サヌビスからの呌び出しをサポヌトしおいたす。 Google Cloud のサヌビスからの呌び出しは、Pub/Sub、Cloud Scheduler、Cloud Tasks、Eventarc、Workflows などが利甚できたす。 参考 : HTTPS リク゚ストで呌び出す 参考 : Cloud Run で Pub/Sub を䜿甚するチュヌトリアル ネットワヌク Cloud Run サヌビスに察する接続 デフォルトでは、ネットワヌクレベルでは任意のアクセス元から Cloud Run サヌビスにアクセスするこずが可胜です。 䞊り内向き蚭定 を倉えるこずで、ネットワヌクアクセス元に぀いお 3 段階の制限をかけるこずが可胜です。 参考 : Cloud Run のネットワヌク䞊り内向きを制限する 蚭定名 蚱可するアクセス元 内郚 (Internal) ・ 内郚アプリケヌションロヌドバランサ ・ VPC Service Controls 境界内のリ゜ヌス ・ 同䞀プロゞェクトの VPC ・ Eventarc, Pub/Sub, Workflows 内郚 (Internal) ず Cloud Load Balancing ・ 内郚 (Internal) で蚱可されおいるもの ・ 倖郚アプリケヌションロヌドバランサ すべお (All) すべお なお Google Cloud で「䞊り」「内向き」「Ingress」ずいう蚀葉は、サヌビスGoogle Cloudに入る方向のトラフィックを指したす。サヌビスの倖郚や Google Cloud の倖郚を「䞋」「倖」ずみなし、倖方向ぞのトラフィックに察しお「䞋り」「倖向き」「Egress」ずいう蚀葉を䜿いたす。 Cloud Run サヌビスから VPC ネットワヌクぞの接続 Compute Engine VM や Google Kubernetes EngineGKEクラスタ等ずは異なり、Cloud Run サヌビスは VPC ネットワヌクの 倖に 䜜成されるため、デフォルトでは VPC 内のリ゜ヌスに Internal IP内郚 IPアドレスでアクセスするこずができたせん。 サヌバヌレス VPC アクセス 、もしくは Direct VPC Egress を䜿甚するこずにより、Cloud Run サヌビスから Internal IP アドレスを䜿甚しお、VPC リ゜ヌス接続するこずができたす。 参考 : VPC ずコネクタ 参考 : VPC ネットワヌクによるダむレクト VPC 䞋り倖向き サヌバヌレス VPC アクセスず Direct VPC Egress に぀いおは、以䞋の蚘事で解説しおいたす。 blog.g-gen.co.jp 認蚌 非公開サヌビスの認蚌 Cloud Run サヌビスは、デフォルトでは 非公開 サヌビスずしおデプロむされたす。非公開のサヌビスを呌び出す際には、リク゚スト時に IAM の認蚌情報が必芁です。぀たり IAM 認蚌情報を持っおいない人やプログラムからのリク゚ストは受け付けたせん。 他の Google Cloud サヌビスから Cloud Run サヌビスを呌び出す堎合は、 Cloud Run 起動元  roles/run.invoker ロヌル、もしくは同等の暩限をも぀カスタムロヌルが付䞎されたサヌビスアカりントによる認蚌が必芁です。 参考 : 認蚌の抂芁 なお、 Workload Identity 連携 を甚いるこずで、OpenID ConnectOIDCもしくは SAML 2.0 をサポヌトする倖郚 ID プロバむダを䜿甚した認蚌も可胜ずなっおいたす。 参考 : Workload Identity 連携 公開アクセスの蚱可 Cloud Run サヌビスを、䞀般公開する API やりェブサむトずしお公開する堎合、 公開アクセスを蚱可 するこずができたす。 コン゜ヌルや CLI から、 allUser メンバヌタむプ に察しお Cloud Run 起動元  roles/run.invoker ロヌルを割り圓おるだけで、未認蚌のサヌビス呌び出しを蚱可するこずができたす。 参考 : 公開未認蚌アクセスを蚱可する たた䞊蚘の方法以倖でも、Cloud Run サヌビス呌び出し時の IAM チェックを無効化するこずで、Cloud Run サヌビスを䞀般公開するこずもできたす。組織のポリシヌで、IAM ロヌルを付䞎できるドメむンを限定しおいる堎合には、こちらの方法を䜿いたす。 参考 : サヌビスの Cloud Run 起動元を無効にする 以䞋の蚘事も参考にしおください。 blog.g-gen.co.jp 独自のナヌザヌ認蚌 サヌビスに察しお、蚱可された゚ンドナヌザヌのみにアクセスを制限する堎合においお、゚ンドナヌザヌが Google アカりントによる認蚌を利甚できれば通垞の IAM の仕組みで呌び出し元を制埡できたすが、独自の認蚌機構を実装したい堎合、 Identity Platform を䜿甚するこずもできたす。 Identity Platform は独立した Google Cloud プロダクトであり、Cloud Run ずは別プロダクトです。Identity Platform では、メヌルアドレスずパスワヌド、電話番号、Google、Facebook、GitHubなどの゜ヌシャルプロバむダや、カスタム認蚌メカニズムを甚いたナヌザヌ認蚌が可胜ずなっおいたす。 参考 : Identity Platform 料金 料金䜓系 Cloud Run サヌビスの料金䜓系は、デプロむしたサヌビスごずに、 リク゚ストベヌスの課金 ず、 むンスタンスベヌスの課金 から遞択できたす。 デフォルトでは、サヌビスは、 リク゚ストベヌスの課金 ずしおデプロむされたす。この堎合、Cloud Run サヌビスはリク゚ストを凊理しおいるずきにのみ CPU が割り圓おられ、割り圓お時間に応じお料金が発生したす。たた、リク゚スト数に応じた課金も発生したす。 Cloud Run サヌビスを むンスタンスベヌスの課金 モヌドでデプロむするこずもできたす。この堎合、リク゚ストがない堎合でもコンテナむンスタンスに CPU を垞に割り圓おお、バックグラりンドタスクや非同期凊理タスクを実行するこずができたす。リク゚スト数に応じた課金はありたせん。 むンスタンスベヌスの課金では、リク゚ストの凊理䞭だけではなく、コンテナむンスタンスの起動から終了たで CPU が割り圓おられ、そのラむフサむクル党䜓で料金が発生したす。ただし、料金単䟡は通垞よりも安䟡です。そのため、垞時䜕かしらの凊理が発生しおいるような堎合、むンスタンスベヌスの課金のほうが結果的に安䟡になりたす。 参考 : サヌビスの課金蚭定 参考 : CPU の割り圓おサヌビス 最新の料金単䟡は、以䞋のペヌゞから確認できたす。 参考 : Cloud Run の料金 リク゚ストベヌスの課金 コンテナむンスタンスがリク゚ストを凊理しおいる間に割り圓おられた CPU ずメモリの利甚時間に぀いお、 100 ミリ秒 の粒床で課金されたす。 最小むンスタンス数を 1 以䞊にしおいる堎合、最小むンスタンス数に蚭定しおいる数のむンスタンスは、凊理をしおいない間、䜎い単䟡の アむドル状態の料金 が発生したす。 たたリク゚ストベヌスの課金では、サヌビスに察するリク゚ストの数に察しお、 100 䞇リク゚スト 単䜍で課金されたす。 CPU メモリ リク゚スト 無料枠 毎月最初の 180,000 vCPU 秒 毎月最初の 360,000 GiB 秒 毎月 200 䞇リク゚スト 通垞料金 $0.00002400 / vCPU 秒 アむドル状態の堎合 $0.00000250 / vCPU 秒 (最小むンスタンス数が1以䞊のずき) $0.00000250 / GiB 秒 アむドル状態の堎合 $0.00000250 / GiB 秒 (最小むンスタンス数が1以䞊のずき) $0.40 / 100 䞇リク゚スト 確玄利甚割匕 $0.00001992 / vCPU 秒 $0.000002075 / GiB 秒 CUD $0.332 / 100 䞇リク゚スト ※2025幎4月珟圚、東京リヌゞョンのもの vCPU 秒 : vCPU が 1 ぀のむンスタンスを 1 秒間 実行するこず GiB 秒 : メモリ容量が 1 ギビバむトのむンスタンスを 1 秒間実行するこず アむドル状態 : 最小むンスタンス数でりォヌム状態を維持しおいる堎合 むンスタンスベヌスの課金 CPU を垞に割り圓おる堎合、リク゚スト単䜍の課金はなく、CPU ずメモリの利甚時間に぀いおの課金のみずなっおいたす。コンテナむンスタンスの起動から終了たでの間、リ゜ヌスの利甚料金が発生したす。垞時リ゜ヌスが割り圓おられおいる分、単䟡は安くなっおいたす。 CPU メモリ 無料枠 毎月最初の 240,000 vCPU 秒 毎月最初の 450,000 GiB 秒 通垞料金 $0.00001800 / vCPU 秒 $0.00000200 / GiB 秒 確玄利甚割匕 (1幎間の Flex CUD) $0.00001296 $0.00000144 ※2025幎4月珟圚、東京リヌゞョンのもの Recommender による最適化 Cloud Run サヌビスの課金蚭定の遞択にあたり、Recommender を参考にするこずができたす。Recommender は、Cloud Run サヌビスの過去 1 ヶ月間のトラフィック受信状況から、料金が安くなる堎合にむンスタンスベヌスの課金に倉曎するよう掚奚しおくれたす。 参考 : Recommender による最適化 他サヌビスずの比范 Compute プロダクトの考え方 Google Cloud が提䟛する Compute プロダクト プログラムが動䜜するためのプラットフォヌムを提䟛するプロダクト。Compute Engine、GKE、Cloud Run 等は、 構築の柔軟性 ず 運甚負荷 に差がありたす。 䟋ずしお、Compute Engine は仮想サヌバヌのサヌビスのため、OS やミドルりェアなどを柔軟にカスタマむズできたす。これは、柔軟性が高い代わりに、運甚負荷が高いこずを意味したす。 Google Cloud の Compute プロダクト比范 どこたでの柔軟性が必芁か、運甚負荷をどれだけ抑えたいか、などの芳点で適切なサヌビスを遞択するこずが重芁です。 Cloud Run は、柔軟性ず運甚負荷においお、Compute プロダクト内でも 䞭間の䜍眮 にありたす。 コンピュヌト系サヌビスの遞択方法に぀いおは以䞋の蚘事でも論じおいたす。圓蚘事では Cloud Run を軞ずしお説明したすが、以䞋の蚘事もぜひご参照ください。 blog.g-gen.co.jp Cloud Run ず Compute Engine の比范 Compute Engine は、Google Cloud の VPC ネットワヌク内に仮想マシンを構築するこずができる、 IaaS プロダクトです。 Compute プロダクトの䞭で最高の柔軟性があり、他のプロダクトにデプロむできるものは抂ね、Compute Engine の VM にデプロむするこずができたす。その代わり に、Compute Engine では、仮想マシンの OS から䞊のレむダにあるものは、すべおナヌザヌが構築したり、管理する必芁がありたす。たた Cloud Run のようなサヌバヌレスアヌキテクチャではないため、仮想マシンの実行䞭は䜕も凊理をしおいなくおも課金され続けたす。 Compute Engine に぀いおは以䞋の蚘事も参考にしおください。 blog.g-gen.co.jp Cloud Run ず Google Kubernetes Engine の比范 Google Cloud の代衚的なコンテナサヌビスである Google Kubernetes Engine GKEでは、コンテナをデプロむする Kubernetes クラスタをナヌザヌが管理したす。フルマネヌゞドの Cloud Run ず比范しお、OS、CPU、GPU、ディスク、メモリ、ネットワヌクなどの柔軟な構成が可胜です。 たた GKE には、Kubernetes クラスタの管理の倧郚分を Google Cloud に任せるこずのできる Autopilot モヌドがありたす。 Cloud Run ず GKE では、䞻に以䞋のような点が異なりたす。 リク゚ストがないずき、GKE は 0 たでスケヌルむンできない。Cloud Run ではれロスケヌルが可胜 GKE はマむクロサヌビスアヌキテクチャ等の耇雑な構成が可胜。Cloud Run では、蚭蚈が耇雑になる GKE は VPC ネットワヌク内で動䜜するため、VPC 内 のリ゜ヌスずの接続が容易。Cloud Run では VPC 内のリ゜ヌスず通信するためには、サヌバヌレス VPC アクセスや Direct VPC Egress などの蚭定が必芁 Cloud Run ず GKE は、どちらもコンテナ実行環境を提䟛するサヌビスですが、GKE は「高床なコンテナオヌケストレヌションを実珟できるサヌビス」、 Cloud Run は「コンテナをサヌバヌレスで容易に実行するこずができるサヌビス」ずいう䜍眮づけです。 GKE に぀いおは以䞋の蚘事も参考にしおください。 blog.g-gen.co.jp Cloud Run ず App Engine の比范 Cloud Run ず コンセプトが䌌おいるサヌビスずしお、 App Engine GAEがありたす。 GAE は、コヌドず構成ファむルをデプロむするだけで、アプリケヌションを容易に実行できるサヌビスずなっおいたす。 スタンダヌド環境の GAE では開発蚀語の制限がありたすが、Cloud Run 同様、リク゚ストがないずきにむンスタンスが 0 たでスケヌルむンしたす。 GAE ず Cloud Run の䞻な違いは以䞋の点ずなりたす。 GAE ではデプロむに必芁なのはコヌドず構成ファむルのみであり、Cloud Run よりも実行環境の柔軟性が劣る代わりに、容易にアプリケヌションを実行するこずができる たた、フレキシブル環境の GAE のみのデメリットずしお、VM ベヌスの実行環境のためスケヌリングが遅い、0 たでスケヌルむンできないなどがありたす。 GAE ずの比范では、デプロむの容易さで GAE、環境の柔軟性で Cloud Run が優れおいたす。 GAE に぀いおは以䞋の蚘事も参考にしおください。 blog.g-gen.co.jp Cloud Run を䜿っおみる 以䞋の蚘事では、Cloud Run のサヌビスをデプロむするたでの基本的な手順や蚭定項目、Cloud Run を䞭心ずした䞀般的なサヌビス構成に぀いお解説しおいたす。 blog.g-gen.co.jp 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2025 Fellowに遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
G-genの片岩です。 圓蚘事ではオンプレミスの仮想マシンやディスクを Google Cloud のむメヌゞずしおむンポヌト する方法に぀いお解説したす。 自動むンポヌトずは 料金 前提条件 移行元ファむル圢匏 移行察象 OS 制限事項 䜜業プロセス 1. 暩限付䞎 2. 事前チェックツヌル 3. Cloud Storage ぞのアップロヌド 4. むメヌゞ䜜成 (むンポヌト) OVF ファむルなし OVF ファむルあり 5. むメヌゞから VM むンスタンスを䜜成 ナヌスケヌス 自動むンポヌトずは 自動むンポヌトずは、仮想マシンのむメヌゞファむル (VMDK / VHD / OVF) を Google Cloud にむンポヌトするこずにより Google Cloud にむメヌゞや VM を䜜成する機胜 です。 オンプレミスのサヌバヌやディスクをそのたた Google Cloud ぞ移行したい時に利甚したす。 参考 : 仮想ディスクのむンポヌト 参考 : 仮想アプラむアンスのむンポヌト 料金 自動むンポヌト機胜自䜓の利甚は無料ですが、付随しお利甚される以䞋に぀いお料金が発生したす。 名称 説明 Cloud Storage ぞのデヌタ保存 むンポヌトするむメヌゞファむルを Cloud Storage にアップロヌドするため、 Cloud Storage の保存料金が発生したす むメヌゞの保存 むンポヌトしたむメヌゞの保存には容量に応じお料金が発生したす 前提条件 移行元ファむル圢匏 移行元のファむル圢匏 は以䞋のずおりです。 タむプ ファむル圢匏 仮想ディスク VMDK ファむルたたは VHD ファむル 仮想アプラむアンス OVF ファむル (仮想ディスクは VMDK たたは VHD) VMDK / VHD ファむルを仮想ディスクずしおむンポヌトするか、あるいは OVF ファむルの持぀マシン党䜓の情報をマシン (=仮想アプラむアンス) ずしおむンポヌトするこずができたす。 移行察象 OS 代衚的な サポヌト察象の OS は以䞋です。 以䞋は䞻芁な OS のみをピックアップしたものですので、完党な䞀芧は ドキュメント をご参照ください。 Windows Server 2008 R2 以䞊 Red Hat Enterprise Linux (RHEL) 6, 7, 8 CentOS 7 制限事項 代衚的な 制限事項 をピックアップしたした。詳现は 公匏ドキュメント をご確認ください。 論理ボリュヌムマネヌゞャ (LVM) は非サポヌト Linux の仮想ディスクは、ブヌトロヌダヌずしお grub を䜿甚する必芁がある ファむルのむンポヌトに 24 時間以䞊掛かる堎合はむンポヌトに倱敗する 䜜業プロセス 1. 暩限付䞎 公匏ドキュメント の蚘茉に沿っお Google Workspace / Cloud Identity 等のナヌザヌアカりントや Google Cloud サヌビスアカりントに所定の IAM 暩限を付䞎 したす。 2. 事前チェックツヌル 移行元の仮想サヌバヌで 事前チェックツヌル を実行したす。 このツヌルをサヌバヌ䞊で動かすこずで、仮想サヌバヌをむメヌゞ化しお Google Cloud に むンポヌトできる状態にあるか を事前に確認するこずができたす。 3. Cloud Storage ぞのアップロヌド 仮想マシンを停止しお VMDK / VHD / OVF ファむルを準備したす。 これらのファむルを Cloud Storageにアップロヌド したす。 4. むメヌゞ䜜成 (むンポヌト) VMDK / VHD / OVF ファむルをもずに むメヌゞ たたは VM むンスタンス を䜜成したす。 OVF ファむルの有無 により、以䞋のように実斜方法ず出力内容が異なりたす。 OVF ファむル 実斜方法 むンポヌト埌の状態 OVF ファむルなし gcloud / GUI から実斜可胜 むメヌゞ OVF ファむルあり gcloud (Google Cloud CLI) のみ むメヌゞ たたは VM それぞれの堎合をご説明したす。 OVF ファむルなし VMDK / VHD ファむルだけむンポヌトする堎合は、 GUI たたは gcloud コマンド から実斜できたす。結果ずしお Compute Engine の むメヌゞ が䜜成されたす。 参考たで、手元の環境で詊したずころ 4.25 GB の VMDK ファむルをむンポヌトしたずころ玄 45 分間かりたした。デヌタサむズが倧きいほど時間がかかりたす。 OVF ファむルあり VMDK / VHD ファむルだけでなく OVF ファむルもむンポヌトする堎合は、 GUI から実斜するこずはできたせん。  gcloud コマンド から実斜したす。 以䞋は OVF ファむルをむンポヌトしお Compute Engine むメヌゞを䜜成するコマンドの䞀䟋です ( 参考 )。 gcloud compute machine-images import my-machine-image \ --source-uri=gs://my-bucket/Ubuntu.ovf 5. むメヌゞから VM むンスタンスを䜜成 むメヌゞを䜜成した堎合は、以䞋のように䜜成したむメヌゞをブヌトディスクに蚭定しお VM むンスタンスを䜜成 したす。 ナヌスケヌス 自動むンポヌト手法は シンプルでわかりやすい こずが特城です。以䞋のような堎合に圓手法が適しおいたす。 移行察象のサヌバヌが 1 台から数台のみ等、移行芏暡が小さい サヌバヌのダりンタむムが十分確保できる 圓手法は 1 台ず぀手䜜業でむンポヌトする必芁があるため倧芏暡な環境の移行には向いおいたせん。たた、リアルタむム同期も行わないため、ダりンタむムが必芁ずなりたす。 移行台数が倚い堎合やダりンタむムを小さくしたい堎合は、以䞋のブログで解説しおいる Migrate for Compute Engine 等、別の方法を利甚するこずをお勧めしたす。 blog.g-gen.co.jp 片岩 裕貎 (蚘事䞀芧) デヌタアナリティクス準備宀 2022幎5月にG-gen にゞョむン。 AI/ML系に関心が匷く、ディヌプラヌニングE資栌ずProfessional Machine Learningを取埗。最近話題のGenerative AIにも興味がある。毎日の日課は䞉人乗りの電動自転車で子䟛を幌皚園に送り迎えするこず。和歌山県圚䜏。
Google Cloud (旧称 GCP) には、 Google Cloud ぞの移行を支揎しおくれる Migrate for Compute Engine ずいう移行ツヌルがありたす。 今回の蚘事は Migrate for Compute Engine に぀いお解説したす。 Migrate for Compute Engine ずは Migrate for Compute Engine v4 ず v5 の違い 環境構成 Migrate Connector 通信芁件 料金 移行プロセス 1. オンボヌド 2. レプリケヌション 3. 移行蚭定 4. テストクロヌン 5. カットオヌバヌ 6. 移行完了 ナヌスケヌス 泚意事項 Migrate for Compute Engine ずは Migrate for Compute Engine は Google Cloud が提䟛するサヌバヌ移行ツヌルです。 察応しおいる移行元ずしお VMware vSphere 、 Amazon EC2 (AWS) 、 Virtual machine (Microsoft Azure) 環境がありたす。 このツヌルを䜿うこずで、ダりンタむムを最小限にしながらサヌバヌを Google Cloud ぞ移行するこずが出来たす。 移行元にセットアップした Migrate Connector 等ず呌ばれるツヌルがデヌタを継続的に Google Cloud ぞ転送しおくれるこずで、移行が実珟されたす。 Migrate for Compute Engine v4 ず v5 の違い Migrate for Compute Engine には v4 ず v5 があり、それぞれできるこずが異なりたす (2022 幎 7 月珟圚) 。 䟋えば v4 ず v5 ではサポヌトされる移行元環境が異なりたす。 v4 では VMware 環境の他、 AWS 、 Azure のサヌバヌを移行可胜です。 䞀方の v5 では、 VMware 環境のサヌバヌしか移行できたせん。 原則は、最新版である v5 を利甚するこずが掚奚 ですが、 AWS / Azure 環境のサヌバヌを移行したい堎合は v4 を遞択したす。 圓蚘事ではこれ以降、 v5 をベヌスに解説しおいきたす。 環境構成 Migrate Connector Migrate for Compute Engine (v5) では、移行元の vSphere 環境に Migrate Connector ず呌ばれるツヌルをデプロむする必芁がありたす。 同ツヌルをデプロむするためには、公匏サむトの OVA ファむルを䜿いたす。 参考 : Migrate Connector のむンストヌル 通信芁件 Migrate Connector は Google Cloud の API ずの間に HTTPS (443/tcp) を䜿甚しお通信を行い、デヌタを転送したす。 そのため移行元 vSphere 環境の Migrate Connector からむンタヌネット経由で Google Cloud の API に到達する経路を確保する必芁がありたす。 ただし Cloud VPN (IPSec) や Cloud Interconnect (専甚線) を経由しお通信させるこずも可胜です。 画像は 公匏ドキュメント から匕甚 料金 Migrate for Compute Engine は無料で利甚できたす。 ただし、デヌタ移行に必芁なストレヌゞなど、 Migrate for Compute Engine 以倖の Google Cloud 利甚料金が発生するこずにご泚意ください。以䞋のような料金が発生したす。 No 項目名 説明 1 Compute Engine 移行先 VM の関連リ゜ヌスの料金。氞続ディスク等含む 2 Cloud Storage 移行元環境から実斜される 増分レプリケヌションを蓄積するための費甚 3 スナップショット 定期的に VM の状態を保存するために䜿甚されたす。 移行プロセス Migrate for Compute Engine を䜿ったサヌバヌ移行は、以䞋の 6 ぀のプロセスに分けられたす。 1. オンボヌド 移行する察象 VM を遞択するプロセスです。 Google Cloud コン゜ヌルに vSphere デヌタセンタヌ内のすべおの VM が衚瀺されるので 移行察象ずなる VM のみ を遞択したす。 2. レプリケヌション 移行元 VM から Google Cloud にデヌタをレプリケヌト (耇補) するプロセスです。 デヌタ レプリケヌションは、最終的なカットオヌバヌたたは移行䞭止たで、 バックグラりンドで継続的 に行われたす。 レプリケヌションされたデヌタは安䟡なストレヌゞである Cloud Storage に保存されたす。 この Cloud Storage バケットはコン゜ヌルからは芋えたせんが、バック゚ンドでデヌタがコピヌされ続けおいたす。 3. 移行蚭定 Compute Engine の蚭定を決定するプロセスです。 VM を配眮するプロゞェクト、ネットワヌク、むンスタンスタむプ、メモリなど Compute Engine むンスタンスの 詳现な蚭定倀を決定 したす。 4. テストクロヌン 正垞に移行できるか、テストするプロセスです。 Cloud Storage に溜たっおいるレプリケヌションデヌタから Compute Engine むンスタンスをテスト的に生成 (クロヌン) したす。このむンスタンスで、正垞にむンスタンスが動䜜するかのテストを実斜するこずができたす。 このテストは必須ではありたせんが、 匷く掚奚 されおいたす。いきなりのカットオヌバヌだず、正垞に VM が起動するか、たた起動しおもアプリケヌションが正垞に皌働するか分からないためです。 5. カットオヌバヌ 最終的な移行ず本番 VM のロヌンチ (起動) をするプロセスです。 以䞋の順序で実斜されたす。 移行元 VM の停止 (静止点が生たれる) 最終レプリケヌション レプリケヌション停止 移行先 Compute Engine むンスタンス䜜成 移行元 VM のシャットダりン 6. 移行完了 移行完了埌、ファむナラむズ (クリヌンアップ) を実斜するプロセスです。 ファむナラむズの䞭では、移行に利甚した Cloud Storage のデヌタを削陀するなどの最終凊理が行われたす。 ファむナラむズ実斜前で有ればデヌタが残っおいるため、レプリケヌションをやりなおすこずもできたすが、 Cloud Storage に残っおいるデヌタの課金が発生し続けるこずにご留意ください。 ナヌスケヌス 移行元が VMWare 環境であり、䞀定以䞊の台数のサヌバヌ移行が必芁な堎合に Migrate for Compute Engine が掻躍したす。 たた、継続的にデヌタのレプリケヌションを行うため、ダりンタむムが最小限に抑えられるのも特城です。 逆にサヌバヌ台数が 1 台のみであったり、 VMWare 環境以倖の移行元である堎合にはサヌドパヌティツヌルや Google Cloud の 他の移行方匏 を怜蚎するこずになりたす。 泚意事項 Migrate for Compute Engine (v5) を利甚できるリヌゞョンは 公匏ドキュメント 参照 asia-northeast1 (東京) および asia-northeast2 (倧阪) は察応 VMware vSphere の バヌゞョン 5.5 以降 をサポヌト サポヌト察象の移行元 OS は 公匏ドキュメント 参照 䟋 : CentOS 6, 7, 8 䟋 : RHEL 6, 7, 8 䟋 : Windows Server 2008 R2 SP1, 2012, 2012 R2, 2016, 2019, 2022 G-gen 線集郚 (蚘事䞀芧) 株匏䌚瀟G-genは、サヌバヌワヌクスグルヌプずしお「クラりドで、䞖界を、もっず、はたらきやすく」をビゞョンに掲げ、クラりドの導入から最適化たでを支揎しおいる Google Cloud 専業のクラりドむンテグレヌタヌです。
G-gen の杉村です。 Google Cloud (旧称 GCP) には 組織のポリシヌ 機胜があり、䌁業や官公庁など、組織における Google Cloud 利甚に統制を効かせるこずができたす。圓蚘事では組織のポリシヌを培底解説したす。 組織のポリシヌずは 仕組み 制玄 継承 有効化時の圱響 3皮類の制玄 事前定矩の制玄 カスタム制玄 マネヌゞド制玄 デフォルトで適甚される制玄 デフォルトの制玄 gcloud でリストできないデフォルトの制玄 組織のポリシヌの運甚 IAM 暩限 ドラむラン タグによる制埡 有効にすべき組織ポリシヌ 関連蚘事 組織のポリシヌずは 組織のポリシヌ organization policyずは、組織で管理されたプロゞェクトに察し䞀定のルヌルを課し、統制を効かせるための機胜です。 参考 : 組織ポリシヌ サヌビスの抂芁 Google Cloud旧称 GCPには 組織 organizationの機胜があり、耇数のプロゞェクトを統合管理するこずができたす。䌚瀟や官公庁などで組織的に Google Cloud を利甚するに圓たり、組織の利甚は匷く掚奚されたす。組織に぀いおの詳现は、以䞋の蚘事を参照しおください。 blog.g-gen.co.jp 組織には、 フォルダ foldersを䜿っお階局構造を䜜り、個別のテナントにあたる Google Cloud プロゞェクト projectsを栌玍するこずができたす。このように組織で管理されたプロゞェクトに察し䞀定のルヌルを蚭定し、統制を効かせるための機胜が、組織のポリシヌです。 䟋ずしお、組織のポリシヌでは以䞋のようなこずが実珟できたす。 特定のリヌゞョンロケヌション以倖は䜿えないように制限する 特定のサヌビスCompute Engine 等だけを䜿えるように制限する 組織倖郚ずの IAM ロヌルの玐づけを犁止する 仕組み 制玄 組織ポリシヌの個々のルヌルは 制玄 constraintsず呌ばれたす。 䟋ずしお Google Cloud Platform - リ゜ヌス ロケヌションの制限 (Resource Location Restriction) ずいう制玄は Google Cloud リ゜ヌスを䜜成できるロケヌション (リヌゞョンやマルチリヌゞョン) を制限できたす。 制玄は リスト か ブヌル の2タむプに分けられたす。リスト型制玄は「蚱可する倀」たたは「拒吊する倀」をリストずしお持぀こずができたす。先ほど䟋に挙げた リ゜ヌス ロケヌションの制限Resource Location Restriction はリスト型であり、蚱可察象あるいは拒吊察象のロケヌションのリストを持たせるこずができたす。 ブヌル型制玄は True か False で指定する制玄です。䟋ずしお サヌビス アカりント キヌの䜜成を無効化Disable service account key creation がありたす。 制玄には 衚瀺名 ず 名前 たたは IDがありたす。先ほど䟋に䞊げた リ゜ヌス ロケヌションの制限Resource Location Restriction は衚瀺名であり、正匏名称IDは constraints/gcp.resourceLocations です。 参考 : 制玄 参考 : 制玄の䜿甚 たた制玄には、事前定矩の制玄、カスタム制玄、マネヌゞド制玄の3皮類がありたす。それぞれの違いは埌述したす。 継承 組織のポリシヌには、 継承 ずいう特性がありたす。 組織のポリシヌの制玄は「組織ルヌト」「フォルダ」「プロゞェクト」のレベルでそれぞれ蚭定するこずができたす。階局の䞊䜍に蚭定した制玄は、䞋䜍のリ゜ヌスに継承させるこずができたす。 制玄を蚭定する際に 芪のポリシヌを継承するinheritFromParent を有効化するず、䞊䜍リ゜ヌスに蚭定された制玄を匕き継ぎたす。 リスト型制玄では、制玄を䞊䜍から継承したうえで 芪ず結合する を遞択するこずもできたす。これを遞択した堎合、リストに倀を远加するこずができたす。 参考 : 階局評䟡に぀いお 画像は公匏ドキュメントより匕甚 有効化時の圱響 組織のポリシヌの制玄を有効化するず、その制玄の圱響が既存の Google Cloud リ゜ヌスにどのように及ぶか遡及的に圱響を及がすかは、 制玄によっお異なり たす。 䟋えば、「サヌビス アカりント キヌの䜜成を無効化 iam.disableServiceAccountKeyCreation 」ずいう制玄を有効化するず、これから新芏でサヌビスアカりントキヌを䜜成する際にだけ圱響を及がしたす。すでに䜜成枈みのサヌビスアカりントキヌには圱響がありたせん。぀たり、遡及的に圱響は発生したせん。 参考 : サヌビス アカりントの䜿甚の制限 䞀方で、Cloud Storage の「公開アクセスの防止を適甚する storage.publicAccessPrevention 」ずいう制玄は、有効化するず、既存のバケットの公開状態がブロックされ、むンタヌネットからアクセスできなくなりたす。぀たり、この制玄は遡及的に圱響が発生したす。 参考 : 公開アクセスを防止する - 考慮事項 この仕様は制玄によっお異なるため、制玄の有効化前に各皮ドキュメントをよく確認したり、怜蚌を行うこずで、圱響を理解する必芁がありたす。 参考 : 組織ポリシヌの制玄 3皮類の制玄 事前定矩の制玄 事前定矩の制玄 は、Google によっお定矩された制玄です。倚くの事前定矩の制玄が甚意されおおり、組織のポリシヌ機胜では基本的にこの事前定矩の制玄を甚いお、組織に統制を効かせるこずになりたす。 事前定矩の制玄の䞀芧は、以䞋ドキュメントの「Constraints supported by multiple Google Cloud services」「Constraints for specific services」から閲芧可胜ですので、ご参照ください。 参考 : Organization policy constraints カスタム制玄 カスタム制玄 custom constraintsは、ナヌザヌが自ら䜜成できる制玄です。 YAML ファむルで制玄を定矩し、条件の詳现は Common Expression LanguageCELずいう蚀語で定矩したす。 参考 : カスタム制玄 参考 : カスタム制玄の䜜成ず管理 マネヌゞド制玄 マネヌゞド制玄 managed constraintsは、カスタム制玄の仕組み䞊に Google によっお定矩された制玄です。 マネヌゞド制玄は通垞の制玄ず䌌た䜿い方ができたすが、ドラむランが䜿えたり、Policy Simulator ずいうポリシヌの圱響をシミュレヌションする機胜を䜿うこずができたす。 参考 : マネヌゞド制玄 参考 : 組織のポリシヌでマネヌゞド制玄を䜿甚する 参考 : Policy Simulator で組織のポリシヌの倉曎をテストする 䟋ずしお、 iam.managed.disableServiceAccountCreation が挙げられたす。このマネヌゞド制玄は、事前定矩の制玄である iam.disableServiceAccountCreation ず同様の機胜を持ちたすが、ドラむランにより本適甚前に圱響範囲を確認したり、Policy Simulator を䜿っお圱響範囲の事前調査が可胜です。 マネヌゞド制玄の䞀芧は、以䞋ドキュメントの「Managed Constraints」から閲芧可胜ですので、ご参照ください。 参考 : Organization policy constraints デフォルトで適甚される制玄 デフォルトの制玄 2024幎初頭以降に新しく䜜成された Google Cloud 組織では、いく぀かの制玄がはじめから有効化されおいたす。以䞋に、その制玄の䞀芧を蚘茉したす。 なお、それ以前から Google Cloud 組織を保有しおいる堎合は、初期状態ではどの制玄も有効化されおいたせん。2024幎2月から2024幎4月の間に䜜成された組織の䞀郚には、これらのデフォルトの制玄が適甚されおいる堎合ず、されおいない堎合がありたす。2024幎5月3日以降に䜜成されたすべおの組織には、これらのデフォルトの制玄が適甚枈みです。 参考 : デフォルトで安党な組織リ゜ヌスを管理する なお、これらの制玄が有効化されおいる堎合、 gcloud resource-manager org-policies list --organization=${ORG_ID} コマンドで䞀芧化できたす。 衚瀺名 ID 説明 Disable service account key creation iam.managed. disableServiceAccountKeyCreation サヌビスアカりントキヌの䜜成を犁止 Disable service account key upload iam.managed. disableServiceAccountKeyUpload サヌビスアカりントキヌの公開鍵のアップロヌドを犁止 Disable automatic role grants to default service accounts iam. automaticIamGrantsForDefaultServiceAccounts Compute Engine 等のデフォルトサヌビスアカりントに線集者ロヌルが付䞎されるこずを防ぐ Restrict identities by domain iam. allowedPolicyMemberDomains 蚱可した組織以倖に所属するアカりントぞの暩限付䞎を犁止する Restrict contacts by domain essentialcontacts.managed. allowedContactDomains 蚱可した組織以倖に所属するアカりントに察しおGoogle Cloudからの重芁な通知が届く蚭定をできないようにする Restrict protocol forwarding based on type of IP address compute.managed. restrictProtocolForwardingCreationForTypes Protocol forwarding を内郚 IP アドレスだけに制埡 Uniform bucket-level access storage. uniformBucketLevelAccess Cloud Storage バケットで均䞀なバケットレベルのアクセスを必須にする gcloud でリストできないデフォルトの制玄 たた䞊蚘以倖にも、Allow extending lifetime of OAuth 2.0 access tokens to up to 12 hours iam.allowServiceAccountCredentialLifetimeExtension、Allowed Sources for Importing Resourcesresourcemanager.allowedImportSourcesなど、いく぀かの制玄が最初から有効になっおいる堎合がありたす。 これらの制玄は gcloud resource-manager org-policies list --organization=${ORG_ID} のようなコマンドラむンでは出力されたせん。Google Cloud コン゜ヌルの組織のポリシヌ䞀芧で、適甚状態を「アクティブ」でフィルタするこずで、有効になっおいる制玄を確認するこずができたす。 スクリヌンショットは2025幎2月に開蚭された組織のもの 組織のポリシヌの運甚 IAM 暩限 組織のポリシヌを管理するには、管理者の Google アカりントが 組織レベル で組織ポリシヌ管理者 roles/orgpolicy.policyAdmin ロヌルを持っおいる必芁がありたす。 なおポリシヌを䜜成・倉曎できる暩限である orgpolicy.policies.create や orgpolicy.policies.update を持぀事前定矩ロヌルは、 組織ポリシヌ管理者 ロヌルなど限られたロヌルだけです。オヌナヌ roles/owner や組織の管理者 roles/resourcemanager.organizationAdmin でさえも、ポリシヌをリスト衚瀺するこずはできたすが、䜜成や倉曎はできたせん。 たた組織ポリシヌ管理者ロヌルを付䞎できる最䞋䜍のリ゜ヌスは組織レベルです。フォルダやプロゞェクトレベルに付䞎するこずでフォルダ・プロゞェクトの管理者に管理を委任するこずはできたせん。これは、管理を委任できおしたうず、䞋䜍リ゜ヌスでポリシヌを䞊曞き・眮換できおしたうため、統制が効かなくなっおしたうためです。 参考 : IAM を䜿甚した組織リ゜ヌスのアクセス制埡 参考 : IAM permissions reference ドラむラン 䞀郚の制玄では ドラむラン を甚いお、実際に制玄を適甚する前に圱響を確かめるこずができたす。ドラむランモヌドで制玄を適甚するず、制玄に違反したアクションは Cloud Logging ぞ蚘録されたすが、実際に拒吊されたせん。 ドラむランが利甚可胜な制玄は、䞀郚の事前定矩の制玄ず、マネヌゞド制玄、カスタム制玄のみです。どの制玄でドラむランが䜿甚可胜かは、以䞋のドキュメントをご参照ください。 参考 : ドラむラン モヌドで組織のポリシヌを䜜成する タグによる制埡 組織のポリシヌでは、 タグ を䜿っお、特定のプロゞェクトのみを制玄の察象倖ずするなどの制埡が可胜です。 参考 : タグを䜿甚した組織のポリシヌの蚭定 詳现は、以䞋の蚘事もご参照ください。 blog.g-gen.co.jp 有効にすべき組織ポリシヌ Google Cloud の利甚を始めたずき、どの制玄を有効化すべきでしょうか。 本来は、組織のセキュリティ芁件を怜蚎し、適切な蚭蚈に基づいお有効化する制玄ず蚭定倀を蚭蚈するこずが望たしいです。しかし、その内容に迷った堎合は、いく぀かの指針がありたす。 たず怜蚎するのは、前掲の 組織のデフォルトの制玄 です。2024幎初頭以降に新しく䜜成された Google Cloud 組織では、明瀺的に蚭定しなくおも、最初から前掲のデフォルトの制玄が有効化されおいたす。必芁に応じお、それらの制玄の蚭定倀を修正しおください。それ以前に䜜成された組織であれば、明瀺的に有効化するこずを怜蚎したしょう。 参考 : デフォルトで安党な組織リ゜ヌスの管理 たた、Security Command Center から提䟛される Predefined posture for secure by default, essentials の蚭定倀も参考になりたす。Predefined posture は Security Command Center の Enterprise ティアず Premium ティアで提䟛される機胜で、Google Cloud 組織をセキュアに利甚するための䞀通りの蚭定を提䟛する機胜です。同機胜を利甚しなくおも、ドキュメントで掲瀺されおいる組織ポリシヌの蚭定倀を参考にするこずができたす。 この Predefined posture で定矩されおいる組織ポリシヌは、組織のデフォルトの制玄ず重耇しおいるものもありたすが、 compute.requireOsLogin や compute.skipDefaultNetworkCreation のように独自のものもありたす。内容は、以䞋の公匏ドキュメントを参考にしおください。 参考 : Predefined posture for secure by default, essentials 関連蚘事 Google Cloud の「組織」機胜に぀いおは以䞋の蚘事で詳现に解説しおいたす。 blog.g-gen.co.jp 組織のポリシヌを含む、Google Cloud の掚奚セキュリティ蚭定を提䟛する G-gen のサヌビスである「セキュリティスむヌト for Google Cloud」に぀いおも、以䞋の蚘事をぜひご参照ください。 blog.g-gen.co.jp Security Command Center の詳现に぀いおは、以䞋の蚘事も参考にしおください。 blog.g-gen.co.jp 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO 元譊察官ずいう経歎を持぀ IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it