[{"data":1,"prerenderedAt":2431},["ShallowReactive",2],{"/ja-jp/blog/secure-ai-agent-deployment-to-gke":3,"navigation-ja-jp":1651,"banner-ja-jp":2081,"footer-ja-jp":2089,"blog-post-authors-ja-jp-Regnard Raquedan":2330,"blog-related-posts-ja-jp-secure-ai-agent-deployment-to-gke":2345,"blog-promotions-ja-jp":2369,"next-steps-ja-jp":2422},{"id":4,"title":5,"authors":6,"body":8,"category":1629,"date":1630,"description":1631,"extension":1632,"externalUrl":1633,"faq":1633,"featured":1634,"heroImage":1635,"meta":1636,"navigation":284,"path":1637,"seo":1638,"slug":1641,"stem":1642,"tags":1643,"template":1648,"updatedDate":1649,"__hash__":1650},"blogPosts/ja-jp/blog/secure-ai-agent-deployment-to-gke.md","AIエージェントをGKEに安全にデプロイする方法",[7],"Regnard Raquedan",{"type":9,"value":10,"toc":1618},"minimark",[11,27,32,41,44,51,57,63,66,69,72,85,88,99,102,107,110,116,119,133,136,140,143,171,174,180,191,194,198,201,207,233,241,1092,1097,1100,1103,1106,1541,1545,1548,1555,1568,1571,1574,1577,1590,1614],[12,13,14,20,21,26],"p",{},[15,16,19],"a",{"href":17,"rel":18},"https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/",[],"AIエージェント","の構築はワクワクするものですが、安全に本番環境にデプロイする作業は複雑であってはなりません。このチュートリアルでは、GitLabの",[15,22,25],{"href":23,"rel":24},"https://cloud.google.com/blog/topics/partners/understand-the-google-cloud-gitlab-integration",[],"ネイティブGoogle Cloudインテグレーション","を使用することで、AIエージェントをGoogle Kubernetes Engine(GKE)に組み込み、スキャン機能込みのサービスアカウントキーなしで簡単にデプロイする方法を学びます。",[28,29,31],"h2",{"id":30},"aiエージェントのデプロイ先としてgkeを選ぶ理由","AIエージェントのデプロイ先としてGKEを選ぶ理由",[12,33,34,35,40],{},"GKEは、OIDC認証を通じてGitLab CI/CDパイプラインとシームレスに接続するエンタープライズグレードのオーケストレーションを提供します。開発チームは、クラウドインフラに対する完全な可視性、コンプライアンス、制御を維持しながらAIエージェントをデプロイできます。このガイドでは、GoogleのAgent Development Kit(",[15,36,39],{"href":37,"rel":38},"https://developers.googleblog.com/en/agent-development-kit-easy-to-build-multi-agent-applications/",[],"ADK",")を使用してアプリを構築し、GitLabでデプロイされるので、さらにシームレスな体験が期待できます。",[12,42,43],{},"このアプローチの3つの主要なメリット:",[12,45,46,50],{},[47,48,49],"strong",{},"完全なインフラ制御"," - データ、ルール、環境のすべてが自社管理となります。AIエージェントの実行場所と設定方法を完全に制御できます。",[12,52,53,56],{},[47,54,55],{},"ネイティブGitLabインテグレーション"," - 複雑な回避策は不要です。GitLabとGoogle Cloudのネイティブインテグレーションにより、既存のパイプラインがそのまま使用できます。",[12,58,59,62],{},[47,60,61],{},"本番環境レベルのスケーリング"," - AIワークロードの拡大に合わせて、GKEがスケーリングと内部オーケストレーションの負荷を自動的に処理します。",[12,64,65],{},"重要なのは、GitLabとGKEの組み合わせにより、デベロッパーエクスペリエンスを犠牲にすることなく、AIデプロイメントに必要なエンタープライズレベルの信頼性を提供するということです。",[28,67,68],{"id":68},"前提条件",[12,70,71],{},"開始前に、次のAPIが有効化されていることを確認してください：",[73,74,75,79,82],"ul",{},[76,77,78],"li",{},"GKE API",[76,80,81],{},"アーティファクトレジストリAPI",[76,83,84],{},"Vertex AI API",[12,86,87],{},"また、次が用意されていることも確認してください：",[73,89,90,93,96],{},[76,91,92],{},"GitLabプロジェクトの作成",[76,94,95],{},"GKEクラスターのプロビジョニング",[76,97,98],{},"アーティファクトレジストリのリポジトリの作成",[28,100,101],{"id":101},"デプロイプロセス",[103,104,106],"h3",{"id":105},"_1-gitlabでiamと権限を設定する","1. GitLabでIAMと権限を設定する",[12,108,109],{},"GitLabのインテグレーションページに移動して、Google Cloud認証(IAM)を設定します。",[12,111,112,115],{},[47,113,114],{},"設定 > インテグレーション","に移動し、Google Cloudインテグレーションを設定します。グループレベルインテグレーションを使用している場合、デフォルト設定がプロジェクトにすでに継承されていることに注意してください。つまり、グループレベルで一度設定すれば、すべてのプロジェクトがこの設定を継承し、機能するようになります。",[12,117,118],{},"最初から設定する場合は、次の情報を提供します：",[73,120,121,124,127,130],{},[76,122,123],{},"プロジェクトID",[76,125,126],{},"プロジェクト番号",[76,128,129],{},"ワークロードアイデンティティプールID",[76,131,132],{},"プロバイダーID",[12,134,135],{},"設定が完了すると、GitLabはGoogle Cloud ConsoleでCloud Shellを介して実行するスクリプトを提供します。このスクリプトを実行することで、適切なアクセスを有効にするために必要なサービスプリンシパルを備えたワークロードアイデンティティフェデレーションプールが作成されます。",[103,137,139],{"id":138},"_2-アーティファクトレジストリインテグレーションを設定する","2. アーティファクトレジストリインテグレーションを設定する",[12,141,142],{},"GitLabのインテグレーション設定画面で、アーティファクト管理を設定します。",[144,145,146,152,158],"ol",{},[76,147,148,151],{},[47,149,150],{},"アーティファクト管理","をクリックします。",[76,153,154,157],{},[47,155,156],{},"Googleアーティファクトレジストリ","を選択します。",[76,159,160,161],{},"次の情報を提供します:",[73,162,163,165,168],{},[76,164,123],{},[76,166,167],{},"リポジトリ名(事前に作成)",[76,169,170],{},"リポジトリの場所",[12,172,173],{},"GitLabは、Google Cloud Consoleで実行する別のスクリプトを提供します。",[12,175,176,179],{},[47,177,178],{},"重要:"," 次の手順に進む前に、ワークロードアイデンティティフェデレーションプールに次のロールを追加します：",[73,181,182,185,188],{},[76,183,184],{},"サービスアカウントユーザー",[76,186,187],{},"Kubernetesデベロッパー",[76,189,190],{},"Kubernetesクラスタービューアー",[12,192,193],{},"これらの権限により、後続の手順でGitLabがGKEにデプロイできるようになります。",[103,195,197],{"id":196},"_3-cicdパイプラインの作成","3. CI/CDパイプラインの作成",[12,199,200],{},"ここが重要な部分です。デプロイ用のCI/CDパイプラインの作成です。",[12,202,203,206],{},[47,204,205],{},"ビルド > パイプラインエディタ","に移動し、4つのステージを持つパイプラインを定義します：",[73,208,209,215,221,227],{},[76,210,211,214],{},[47,212,213],{},"Build"," - Dockerがコンテナイメージを作成します。",[76,216,217,220],{},[47,218,219],{},"Test"," - GitLab Auto DevOpsが組み込みのセキュリティスキャンを提供し、脆弱性がないことを確認します。",[76,222,223,226],{},[47,224,225],{},"Upload"," - GitLabの組み込みCI/CDコンポーネントを使用してGoogleアーティファクトレジストリにプッシュします。",[76,228,229,232],{},[47,230,231],{},"Deploy"," - Kubernetes定義を使用してGKEにデプロイします。",[12,234,235,236,240],{},"完全な",[237,238,239],"code",{},".gitlab-ci.yml","は次のとおりです:",[242,243,248],"pre",{"className":244,"code":245,"language":246,"meta":247,"style":247},"language-yaml shiki shiki-themes github-light","default:\n  tags: [ saas-linux-2xlarge-amd64 ]\n\nstages:\n  - build\n  - test\n  - upload\n  - deploy\n\nvariables:\n  GITLAB_IMAGE: $CI_REGISTRY_IMAGE/main:$CI_COMMIT_SHORT_SHA\n  AR_IMAGE: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/main:$CI_COMMIT_SHORT_SHA\n  GCP_PROJECT_ID: \"your-project-id\"\n  GKE_CLUSTER: \"your-cluster\"\n  GKE_REGION: \"us-central1\"\n  KSA_NAME: \"ai-agent-ksa\"\n\nbuild:\n  image: docker:24.0.5\n  stage: build\n  services:\n    - docker:24.0.5-dind\n  before_script:\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n  script:\n    - docker build -t $GITLAB_IMAGE .\n    - docker push $GITLAB_IMAGE\n\ninclude:\n  - template: Jobs/Dependency-Scanning.gitlab-ci.yml\n  - template: Jobs/Container-Scanning.gitlab-ci.yml\n  - template: Jobs/Secret-Detection.gitlab-ci.yml\n  - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main\n    inputs:\n      stage: upload\n      source: $GITLAB_IMAGE\n      target: $AR_IMAGE\n\ndeploy:\n  stage: deploy\n  image: google/cloud-sdk:slim\n  identity: google_cloud\n  before_script:\n    - apt-get update && apt-get install -y kubectl google-cloud-sdk-gke-gcloud-auth-plugin\n    - gcloud container clusters get-credentials $GKE_CLUSTER --region $GKE_REGION --project $GCP_PROJECT_ID\n  script:\n    - |\n      kubectl apply -f - \u003C\u003CEOF\n      apiVersion: apps/v1\n      kind: Deployment\n      metadata:\n        name: ai-agent\n        namespace: default\n      spec:\n        replicas: 2\n        selector:\n          matchLabels:\n            app: ai-agent\n        template:\n          metadata:\n            labels:\n              app: ai-agent\n          spec:\n            serviceAccountName: $KSA_NAME\n            containers:\n            - name: ai-agent\n              image: $AR_IMAGE\n              ports:\n              - containerPort: 8080\n              resources:\n                requests: {cpu: 500m, memory: 1Gi}\n                limits: {cpu: 2000m, memory: 4Gi}\n              livenessProbe:\n                httpGet: {path: /health, port: 8080}\n                initialDelaySeconds: 60\n              readinessProbe:\n                httpGet: {path: /health, port: 8080}\n                initialDelaySeconds: 30\n      ---\n      apiVersion: v1\n      kind: Service\n      metadata:\n        name: ai-agent-service\n        namespace: default\n      spec:\n        type: LoadBalancer\n        ports:\n        - port: 80\n          targetPort: 8080\n        selector:\n          app: ai-agent\n      ---\n      apiVersion: autoscaling/v2\n      kind: HorizontalPodAutoscaler\n      metadata:\n        name: ai-agent-hpa\n        namespace: default\n      spec:\n        scaleTargetRef:\n          apiVersion: apps/v1\n          kind: Deployment\n          name: ai-agent\n        minReplicas: 2\n        maxReplicas: 10\n        metrics:\n        - type: Resource\n          resource:\n            name: cpu\n            target: {type: Utilization, averageUtilization: 70}\n      EOF\n      \n      kubectl rollout status deployment/ai-agent -n default --timeout=5m\n      EXTERNAL_IP=$(kubectl get service ai-agent-service -n default -o jsonpath='{.status.loadBalancer.ingress[0].ip}')\n      echo \"Deployed at: http://$EXTERNAL_IP\"\n  only:\n    - main\n","yaml","",[237,249,250,263,279,286,294,303,311,319,327,332,340,352,363,374,385,396,407,412,420,431,441,449,458,466,474,482,490,498,503,511,524,536,548,561,569,579,590,601,606,614,623,633,644,651,659,667,674,683,689,695,701,707,713,719,725,731,737,743,749,755,761,767,773,779,785,791,797,803,809,815,821,827,833,839,845,851,857,862,868,874,880,886,891,897,902,907,913,919,925,931,936,942,947,953,959,964,970,975,980,986,992,998,1004,1010,1016,1022,1028,1034,1040,1046,1052,1058,1064,1070,1076,1084],{"__ignoreMap":247},[251,252,255,259],"span",{"class":253,"line":254},"line",1,[251,256,258],{"class":257},"shJU0","default",[251,260,262],{"class":261},"sgsFI",":\n",[251,264,266,269,272,276],{"class":253,"line":265},2,[251,267,268],{"class":257},"  tags",[251,270,271],{"class":261},": [ ",[251,273,275],{"class":274},"sYBdl","saas-linux-2xlarge-amd64",[251,277,278],{"class":261}," ]\n",[251,280,282],{"class":253,"line":281},3,[251,283,285],{"emptyLinePlaceholder":284},true,"\n",[251,287,289,292],{"class":253,"line":288},4,[251,290,291],{"class":257},"stages",[251,293,262],{"class":261},[251,295,297,300],{"class":253,"line":296},5,[251,298,299],{"class":261},"  - ",[251,301,302],{"class":274},"build\n",[251,304,306,308],{"class":253,"line":305},6,[251,307,299],{"class":261},[251,309,310],{"class":274},"test\n",[251,312,314,316],{"class":253,"line":313},7,[251,315,299],{"class":261},[251,317,318],{"class":274},"upload\n",[251,320,322,324],{"class":253,"line":321},8,[251,323,299],{"class":261},[251,325,326],{"class":274},"deploy\n",[251,328,330],{"class":253,"line":329},9,[251,331,285],{"emptyLinePlaceholder":284},[251,333,335,338],{"class":253,"line":334},10,[251,336,337],{"class":257},"variables",[251,339,262],{"class":261},[251,341,343,346,349],{"class":253,"line":342},11,[251,344,345],{"class":257},"  GITLAB_IMAGE",[251,347,348],{"class":261},": ",[251,350,351],{"class":274},"$CI_REGISTRY_IMAGE/main:$CI_COMMIT_SHORT_SHA\n",[251,353,355,358,360],{"class":253,"line":354},12,[251,356,357],{"class":257},"  AR_IMAGE",[251,359,348],{"class":261},[251,361,362],{"class":274},"$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/main:$CI_COMMIT_SHORT_SHA\n",[251,364,366,369,371],{"class":253,"line":365},13,[251,367,368],{"class":257},"  GCP_PROJECT_ID",[251,370,348],{"class":261},[251,372,373],{"class":274},"\"your-project-id\"\n",[251,375,377,380,382],{"class":253,"line":376},14,[251,378,379],{"class":257},"  GKE_CLUSTER",[251,381,348],{"class":261},[251,383,384],{"class":274},"\"your-cluster\"\n",[251,386,388,391,393],{"class":253,"line":387},15,[251,389,390],{"class":257},"  GKE_REGION",[251,392,348],{"class":261},[251,394,395],{"class":274},"\"us-central1\"\n",[251,397,399,402,404],{"class":253,"line":398},16,[251,400,401],{"class":257},"  KSA_NAME",[251,403,348],{"class":261},[251,405,406],{"class":274},"\"ai-agent-ksa\"\n",[251,408,410],{"class":253,"line":409},17,[251,411,285],{"emptyLinePlaceholder":284},[251,413,415,418],{"class":253,"line":414},18,[251,416,417],{"class":257},"build",[251,419,262],{"class":261},[251,421,423,426,428],{"class":253,"line":422},19,[251,424,425],{"class":257},"  image",[251,427,348],{"class":261},[251,429,430],{"class":274},"docker:24.0.5\n",[251,432,434,437,439],{"class":253,"line":433},20,[251,435,436],{"class":257},"  stage",[251,438,348],{"class":261},[251,440,302],{"class":274},[251,442,444,447],{"class":253,"line":443},21,[251,445,446],{"class":257},"  services",[251,448,262],{"class":261},[251,450,452,455],{"class":253,"line":451},22,[251,453,454],{"class":261},"    - ",[251,456,457],{"class":274},"docker:24.0.5-dind\n",[251,459,461,464],{"class":253,"line":460},23,[251,462,463],{"class":257},"  before_script",[251,465,262],{"class":261},[251,467,469,471],{"class":253,"line":468},24,[251,470,454],{"class":261},[251,472,473],{"class":274},"docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n",[251,475,477,480],{"class":253,"line":476},25,[251,478,479],{"class":257},"  script",[251,481,262],{"class":261},[251,483,485,487],{"class":253,"line":484},26,[251,486,454],{"class":261},[251,488,489],{"class":274},"docker build -t $GITLAB_IMAGE .\n",[251,491,493,495],{"class":253,"line":492},27,[251,494,454],{"class":261},[251,496,497],{"class":274},"docker push $GITLAB_IMAGE\n",[251,499,501],{"class":253,"line":500},28,[251,502,285],{"emptyLinePlaceholder":284},[251,504,506,509],{"class":253,"line":505},29,[251,507,508],{"class":257},"include",[251,510,262],{"class":261},[251,512,514,516,519,521],{"class":253,"line":513},30,[251,515,299],{"class":261},[251,517,518],{"class":257},"template",[251,520,348],{"class":261},[251,522,523],{"class":274},"Jobs/Dependency-Scanning.gitlab-ci.yml\n",[251,525,527,529,531,533],{"class":253,"line":526},31,[251,528,299],{"class":261},[251,530,518],{"class":257},[251,532,348],{"class":261},[251,534,535],{"class":274},"Jobs/Container-Scanning.gitlab-ci.yml\n",[251,537,539,541,543,545],{"class":253,"line":538},32,[251,540,299],{"class":261},[251,542,518],{"class":257},[251,544,348],{"class":261},[251,546,547],{"class":274},"Jobs/Secret-Detection.gitlab-ci.yml\n",[251,549,551,553,556,558],{"class":253,"line":550},33,[251,552,299],{"class":261},[251,554,555],{"class":257},"component",[251,557,348],{"class":261},[251,559,560],{"class":274},"gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main\n",[251,562,564,567],{"class":253,"line":563},34,[251,565,566],{"class":257},"    inputs",[251,568,262],{"class":261},[251,570,572,575,577],{"class":253,"line":571},35,[251,573,574],{"class":257},"      stage",[251,576,348],{"class":261},[251,578,318],{"class":274},[251,580,582,585,587],{"class":253,"line":581},36,[251,583,584],{"class":257},"      source",[251,586,348],{"class":261},[251,588,589],{"class":274},"$GITLAB_IMAGE\n",[251,591,593,596,598],{"class":253,"line":592},37,[251,594,595],{"class":257},"      target",[251,597,348],{"class":261},[251,599,600],{"class":274},"$AR_IMAGE\n",[251,602,604],{"class":253,"line":603},38,[251,605,285],{"emptyLinePlaceholder":284},[251,607,609,612],{"class":253,"line":608},39,[251,610,611],{"class":257},"deploy",[251,613,262],{"class":261},[251,615,617,619,621],{"class":253,"line":616},40,[251,618,436],{"class":257},[251,620,348],{"class":261},[251,622,326],{"class":274},[251,624,626,628,630],{"class":253,"line":625},41,[251,627,425],{"class":257},[251,629,348],{"class":261},[251,631,632],{"class":274},"google/cloud-sdk:slim\n",[251,634,636,639,641],{"class":253,"line":635},42,[251,637,638],{"class":257},"  identity",[251,640,348],{"class":261},[251,642,643],{"class":274},"google_cloud\n",[251,645,647,649],{"class":253,"line":646},43,[251,648,463],{"class":257},[251,650,262],{"class":261},[251,652,654,656],{"class":253,"line":653},44,[251,655,454],{"class":261},[251,657,658],{"class":274},"apt-get update && apt-get install -y kubectl google-cloud-sdk-gke-gcloud-auth-plugin\n",[251,660,662,664],{"class":253,"line":661},45,[251,663,454],{"class":261},[251,665,666],{"class":274},"gcloud container clusters get-credentials $GKE_CLUSTER --region $GKE_REGION --project $GCP_PROJECT_ID\n",[251,668,670,672],{"class":253,"line":669},46,[251,671,479],{"class":257},[251,673,262],{"class":261},[251,675,677,679],{"class":253,"line":676},47,[251,678,454],{"class":261},[251,680,682],{"class":681},"sD7c4","|\n",[251,684,686],{"class":253,"line":685},48,[251,687,688],{"class":274},"      kubectl apply -f - \u003C\u003CEOF\n",[251,690,692],{"class":253,"line":691},49,[251,693,694],{"class":274},"      apiVersion: apps/v1\n",[251,696,698],{"class":253,"line":697},50,[251,699,700],{"class":274},"      kind: Deployment\n",[251,702,704],{"class":253,"line":703},51,[251,705,706],{"class":274},"      metadata:\n",[251,708,710],{"class":253,"line":709},52,[251,711,712],{"class":274},"        name: ai-agent\n",[251,714,716],{"class":253,"line":715},53,[251,717,718],{"class":274},"        namespace: default\n",[251,720,722],{"class":253,"line":721},54,[251,723,724],{"class":274},"      spec:\n",[251,726,728],{"class":253,"line":727},55,[251,729,730],{"class":274},"        replicas: 2\n",[251,732,734],{"class":253,"line":733},56,[251,735,736],{"class":274},"        selector:\n",[251,738,740],{"class":253,"line":739},57,[251,741,742],{"class":274},"          matchLabels:\n",[251,744,746],{"class":253,"line":745},58,[251,747,748],{"class":274},"            app: ai-agent\n",[251,750,752],{"class":253,"line":751},59,[251,753,754],{"class":274},"        template:\n",[251,756,758],{"class":253,"line":757},60,[251,759,760],{"class":274},"          metadata:\n",[251,762,764],{"class":253,"line":763},61,[251,765,766],{"class":274},"            labels:\n",[251,768,770],{"class":253,"line":769},62,[251,771,772],{"class":274},"              app: ai-agent\n",[251,774,776],{"class":253,"line":775},63,[251,777,778],{"class":274},"          spec:\n",[251,780,782],{"class":253,"line":781},64,[251,783,784],{"class":274},"            serviceAccountName: $KSA_NAME\n",[251,786,788],{"class":253,"line":787},65,[251,789,790],{"class":274},"            containers:\n",[251,792,794],{"class":253,"line":793},66,[251,795,796],{"class":274},"            - name: ai-agent\n",[251,798,800],{"class":253,"line":799},67,[251,801,802],{"class":274},"              image: $AR_IMAGE\n",[251,804,806],{"class":253,"line":805},68,[251,807,808],{"class":274},"              ports:\n",[251,810,812],{"class":253,"line":811},69,[251,813,814],{"class":274},"              - containerPort: 8080\n",[251,816,818],{"class":253,"line":817},70,[251,819,820],{"class":274},"              resources:\n",[251,822,824],{"class":253,"line":823},71,[251,825,826],{"class":274},"                requests: {cpu: 500m, memory: 1Gi}\n",[251,828,830],{"class":253,"line":829},72,[251,831,832],{"class":274},"                limits: {cpu: 2000m, memory: 4Gi}\n",[251,834,836],{"class":253,"line":835},73,[251,837,838],{"class":274},"              livenessProbe:\n",[251,840,842],{"class":253,"line":841},74,[251,843,844],{"class":274},"                httpGet: {path: /health, port: 8080}\n",[251,846,848],{"class":253,"line":847},75,[251,849,850],{"class":274},"                initialDelaySeconds: 60\n",[251,852,854],{"class":253,"line":853},76,[251,855,856],{"class":274},"              readinessProbe:\n",[251,858,860],{"class":253,"line":859},77,[251,861,844],{"class":274},[251,863,865],{"class":253,"line":864},78,[251,866,867],{"class":274},"                initialDelaySeconds: 30\n",[251,869,871],{"class":253,"line":870},79,[251,872,873],{"class":274},"      ---\n",[251,875,877],{"class":253,"line":876},80,[251,878,879],{"class":274},"      apiVersion: v1\n",[251,881,883],{"class":253,"line":882},81,[251,884,885],{"class":274},"      kind: Service\n",[251,887,889],{"class":253,"line":888},82,[251,890,706],{"class":274},[251,892,894],{"class":253,"line":893},83,[251,895,896],{"class":274},"        name: ai-agent-service\n",[251,898,900],{"class":253,"line":899},84,[251,901,718],{"class":274},[251,903,905],{"class":253,"line":904},85,[251,906,724],{"class":274},[251,908,910],{"class":253,"line":909},86,[251,911,912],{"class":274},"        type: LoadBalancer\n",[251,914,916],{"class":253,"line":915},87,[251,917,918],{"class":274},"        ports:\n",[251,920,922],{"class":253,"line":921},88,[251,923,924],{"class":274},"        - port: 80\n",[251,926,928],{"class":253,"line":927},89,[251,929,930],{"class":274},"          targetPort: 8080\n",[251,932,934],{"class":253,"line":933},90,[251,935,736],{"class":274},[251,937,939],{"class":253,"line":938},91,[251,940,941],{"class":274},"          app: ai-agent\n",[251,943,945],{"class":253,"line":944},92,[251,946,873],{"class":274},[251,948,950],{"class":253,"line":949},93,[251,951,952],{"class":274},"      apiVersion: autoscaling/v2\n",[251,954,956],{"class":253,"line":955},94,[251,957,958],{"class":274},"      kind: HorizontalPodAutoscaler\n",[251,960,962],{"class":253,"line":961},95,[251,963,706],{"class":274},[251,965,967],{"class":253,"line":966},96,[251,968,969],{"class":274},"        name: ai-agent-hpa\n",[251,971,973],{"class":253,"line":972},97,[251,974,718],{"class":274},[251,976,978],{"class":253,"line":977},98,[251,979,724],{"class":274},[251,981,983],{"class":253,"line":982},99,[251,984,985],{"class":274},"        scaleTargetRef:\n",[251,987,989],{"class":253,"line":988},100,[251,990,991],{"class":274},"          apiVersion: apps/v1\n",[251,993,995],{"class":253,"line":994},101,[251,996,997],{"class":274},"          kind: Deployment\n",[251,999,1001],{"class":253,"line":1000},102,[251,1002,1003],{"class":274},"          name: ai-agent\n",[251,1005,1007],{"class":253,"line":1006},103,[251,1008,1009],{"class":274},"        minReplicas: 2\n",[251,1011,1013],{"class":253,"line":1012},104,[251,1014,1015],{"class":274},"        maxReplicas: 10\n",[251,1017,1019],{"class":253,"line":1018},105,[251,1020,1021],{"class":274},"        metrics:\n",[251,1023,1025],{"class":253,"line":1024},106,[251,1026,1027],{"class":274},"        - type: Resource\n",[251,1029,1031],{"class":253,"line":1030},107,[251,1032,1033],{"class":274},"          resource:\n",[251,1035,1037],{"class":253,"line":1036},108,[251,1038,1039],{"class":274},"            name: cpu\n",[251,1041,1043],{"class":253,"line":1042},109,[251,1044,1045],{"class":274},"            target: {type: Utilization, averageUtilization: 70}\n",[251,1047,1049],{"class":253,"line":1048},110,[251,1050,1051],{"class":274},"      EOF\n",[251,1053,1055],{"class":253,"line":1054},111,[251,1056,1057],{"class":274},"      \n",[251,1059,1061],{"class":253,"line":1060},112,[251,1062,1063],{"class":274},"      kubectl rollout status deployment/ai-agent -n default --timeout=5m\n",[251,1065,1067],{"class":253,"line":1066},113,[251,1068,1069],{"class":274},"      EXTERNAL_IP=$(kubectl get service ai-agent-service -n default -o jsonpath='{.status.loadBalancer.ingress[0].ip}')\n",[251,1071,1073],{"class":253,"line":1072},114,[251,1074,1075],{"class":274},"      echo \"Deployed at: http://$EXTERNAL_IP\"\n",[251,1077,1079,1082],{"class":253,"line":1078},115,[251,1080,1081],{"class":257},"  only",[251,1083,262],{"class":261},[251,1085,1087,1089],{"class":253,"line":1086},116,[251,1088,454],{"class":261},[251,1090,1091],{"class":274},"main\n",[1093,1094,1096],"h4",{"id":1095},"gkeの重要な設定","GKEの重要な設定",[12,1098,1099],{},"これが機能する理由、そしてGKEにこの追加設定が必要な理由は、Vertex AIと連携できるKubernetesサービスアカウントがクラスター内に必要だからです。このサービスアカウントには、Google CloudのAI機能にアクセスする権限が必要です。",[12,1101,1102],{},"この設定なしでは、アプリケーションはデプロイできますが、AIエージェントが機能しません。Vertex AIにアクセスできるKubernetesサービスアカウントを作成する必要があります。",[12,1104,1105],{},"この1回限りのセットアップを実行します:",[242,1107,1111],{"className":1108,"code":1109,"language":1110,"meta":247,"style":247},"language-bash shiki shiki-themes github-light","#!/bin/bash\n\n\nPROJECT_ID=\"your-project-id\"\n\n\nGSA_NAME=\"ai-agent-vertex\"\n\n\nGSA_EMAIL=\"${GSA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com\"\n\n\nKSA_NAME=\"ai-agent-ksa\"\n\n\nCLUSTER_NAME=\"your-cluster\"\n\n\nREGION=\"us-central1\"\n\n\n\n# GCPサービスアカウントを作成\n\n\ngcloud iam service-accounts create $GSA_NAME \\\n    --display-name=\"AI Agent Vertex AI\" \\\n    --project=$PROJECT_ID\n\n# Vertex AI権限を付与\n\n\ngcloud projects add-iam-policy-binding $PROJECT_ID \\\n    --member=\"serviceAccount:${GSA_EMAIL}\" \\\n    --role=\"roles/aiplatform.user\"\n\n# クラスター認証情報を取得\n\n\ngcloud container clusters get-credentials $CLUSTER_NAME \\\n    --region $REGION --project $PROJECT_ID\n\n# Kubernetesサービスアカウントを作成\n\n\nkubectl create serviceaccount $KSA_NAME -n default\n\n\n\n# アカウントをリンク\n\n\nkubectl annotate serviceaccount $KSA_NAME -n default \\\n    iam.gke.io/gcp-service-account=${GSA_EMAIL}\n\ngcloud iam service-accounts add-iam-policy-binding ${GSA_EMAIL} \\\n    --role=roles/iam.workloadIdentityUser \\\n    --member=\"serviceAccount:${PROJECT_ID}.svc.id.goog[default/${KSA_NAME}]\" \\\n    --project=$PROJECT_ID\n","bash",[237,1112,1113,1119,1123,1127,1137,1141,1145,1155,1159,1163,1183,1187,1191,1200,1204,1208,1217,1221,1225,1234,1238,1242,1246,1251,1255,1259,1281,1292,1300,1304,1309,1313,1317,1332,1347,1355,1359,1364,1368,1372,1390,1404,1408,1413,1417,1421,1440,1444,1448,1452,1457,1461,1465,1483,1491,1495,1510,1517,1535],{"__ignoreMap":247},[251,1114,1115],{"class":253,"line":254},[251,1116,1118],{"class":1117},"sAwPA","#!/bin/bash\n",[251,1120,1121],{"class":253,"line":265},[251,1122,285],{"emptyLinePlaceholder":284},[251,1124,1125],{"class":253,"line":281},[251,1126,285],{"emptyLinePlaceholder":284},[251,1128,1129,1132,1135],{"class":253,"line":288},[251,1130,1131],{"class":261},"PROJECT_ID",[251,1133,1134],{"class":681},"=",[251,1136,373],{"class":274},[251,1138,1139],{"class":253,"line":296},[251,1140,285],{"emptyLinePlaceholder":284},[251,1142,1143],{"class":253,"line":305},[251,1144,285],{"emptyLinePlaceholder":284},[251,1146,1147,1150,1152],{"class":253,"line":313},[251,1148,1149],{"class":261},"GSA_NAME",[251,1151,1134],{"class":681},[251,1153,1154],{"class":274},"\"ai-agent-vertex\"\n",[251,1156,1157],{"class":253,"line":321},[251,1158,285],{"emptyLinePlaceholder":284},[251,1160,1161],{"class":253,"line":329},[251,1162,285],{"emptyLinePlaceholder":284},[251,1164,1165,1168,1170,1173,1175,1178,1180],{"class":253,"line":334},[251,1166,1167],{"class":261},"GSA_EMAIL",[251,1169,1134],{"class":681},[251,1171,1172],{"class":274},"\"${",[251,1174,1149],{"class":261},[251,1176,1177],{"class":274},"}@${",[251,1179,1131],{"class":261},[251,1181,1182],{"class":274},"}.iam.gserviceaccount.com\"\n",[251,1184,1185],{"class":253,"line":342},[251,1186,285],{"emptyLinePlaceholder":284},[251,1188,1189],{"class":253,"line":354},[251,1190,285],{"emptyLinePlaceholder":284},[251,1192,1193,1196,1198],{"class":253,"line":365},[251,1194,1195],{"class":261},"KSA_NAME",[251,1197,1134],{"class":681},[251,1199,406],{"class":274},[251,1201,1202],{"class":253,"line":376},[251,1203,285],{"emptyLinePlaceholder":284},[251,1205,1206],{"class":253,"line":387},[251,1207,285],{"emptyLinePlaceholder":284},[251,1209,1210,1213,1215],{"class":253,"line":398},[251,1211,1212],{"class":261},"CLUSTER_NAME",[251,1214,1134],{"class":681},[251,1216,384],{"class":274},[251,1218,1219],{"class":253,"line":409},[251,1220,285],{"emptyLinePlaceholder":284},[251,1222,1223],{"class":253,"line":414},[251,1224,285],{"emptyLinePlaceholder":284},[251,1226,1227,1230,1232],{"class":253,"line":422},[251,1228,1229],{"class":261},"REGION",[251,1231,1134],{"class":681},[251,1233,395],{"class":274},[251,1235,1236],{"class":253,"line":433},[251,1237,285],{"emptyLinePlaceholder":284},[251,1239,1240],{"class":253,"line":443},[251,1241,285],{"emptyLinePlaceholder":284},[251,1243,1244],{"class":253,"line":451},[251,1245,285],{"emptyLinePlaceholder":284},[251,1247,1248],{"class":253,"line":460},[251,1249,1250],{"class":1117},"# GCPサービスアカウントを作成\n",[251,1252,1253],{"class":253,"line":468},[251,1254,285],{"emptyLinePlaceholder":284},[251,1256,1257],{"class":253,"line":476},[251,1258,285],{"emptyLinePlaceholder":284},[251,1260,1261,1265,1268,1271,1274,1277],{"class":253,"line":484},[251,1262,1264],{"class":1263},"s7eDp","gcloud",[251,1266,1267],{"class":274}," iam",[251,1269,1270],{"class":274}," service-accounts",[251,1272,1273],{"class":274}," create",[251,1275,1276],{"class":261}," $GSA_NAME ",[251,1278,1280],{"class":1279},"sYu0t","\\\n",[251,1282,1283,1286,1289],{"class":253,"line":492},[251,1284,1285],{"class":1279},"    --display-name=",[251,1287,1288],{"class":274},"\"AI Agent Vertex AI\"",[251,1290,1291],{"class":1279}," \\\n",[251,1293,1294,1297],{"class":253,"line":500},[251,1295,1296],{"class":1279},"    --project=",[251,1298,1299],{"class":261},"$PROJECT_ID\n",[251,1301,1302],{"class":253,"line":505},[251,1303,285],{"emptyLinePlaceholder":284},[251,1305,1306],{"class":253,"line":513},[251,1307,1308],{"class":1117},"# Vertex AI権限を付与\n",[251,1310,1311],{"class":253,"line":526},[251,1312,285],{"emptyLinePlaceholder":284},[251,1314,1315],{"class":253,"line":538},[251,1316,285],{"emptyLinePlaceholder":284},[251,1318,1319,1321,1324,1327,1330],{"class":253,"line":550},[251,1320,1264],{"class":1263},[251,1322,1323],{"class":274}," projects",[251,1325,1326],{"class":274}," add-iam-policy-binding",[251,1328,1329],{"class":261}," $PROJECT_ID ",[251,1331,1280],{"class":1279},[251,1333,1334,1337,1340,1342,1345],{"class":253,"line":563},[251,1335,1336],{"class":1279},"    --member=",[251,1338,1339],{"class":274},"\"serviceAccount:${",[251,1341,1167],{"class":261},[251,1343,1344],{"class":274},"}\"",[251,1346,1291],{"class":1279},[251,1348,1349,1352],{"class":253,"line":571},[251,1350,1351],{"class":1279},"    --role=",[251,1353,1354],{"class":274},"\"roles/aiplatform.user\"\n",[251,1356,1357],{"class":253,"line":581},[251,1358,285],{"emptyLinePlaceholder":284},[251,1360,1361],{"class":253,"line":592},[251,1362,1363],{"class":1117},"# クラスター認証情報を取得\n",[251,1365,1366],{"class":253,"line":603},[251,1367,285],{"emptyLinePlaceholder":284},[251,1369,1370],{"class":253,"line":608},[251,1371,285],{"emptyLinePlaceholder":284},[251,1373,1374,1376,1379,1382,1385,1388],{"class":253,"line":616},[251,1375,1264],{"class":1263},[251,1377,1378],{"class":274}," container",[251,1380,1381],{"class":274}," clusters",[251,1383,1384],{"class":274}," get-credentials",[251,1386,1387],{"class":261}," $CLUSTER_NAME ",[251,1389,1280],{"class":1279},[251,1391,1392,1395,1398,1401],{"class":253,"line":625},[251,1393,1394],{"class":1279},"    --region",[251,1396,1397],{"class":261}," $REGION ",[251,1399,1400],{"class":1279},"--project",[251,1402,1403],{"class":261}," $PROJECT_ID\n",[251,1405,1406],{"class":253,"line":635},[251,1407,285],{"emptyLinePlaceholder":284},[251,1409,1410],{"class":253,"line":646},[251,1411,1412],{"class":1117},"# Kubernetesサービスアカウントを作成\n",[251,1414,1415],{"class":253,"line":653},[251,1416,285],{"emptyLinePlaceholder":284},[251,1418,1419],{"class":253,"line":661},[251,1420,285],{"emptyLinePlaceholder":284},[251,1422,1423,1426,1428,1431,1434,1437],{"class":253,"line":669},[251,1424,1425],{"class":1263},"kubectl",[251,1427,1273],{"class":274},[251,1429,1430],{"class":274}," serviceaccount",[251,1432,1433],{"class":261}," $KSA_NAME ",[251,1435,1436],{"class":1279},"-n",[251,1438,1439],{"class":274}," default\n",[251,1441,1442],{"class":253,"line":676},[251,1443,285],{"emptyLinePlaceholder":284},[251,1445,1446],{"class":253,"line":685},[251,1447,285],{"emptyLinePlaceholder":284},[251,1449,1450],{"class":253,"line":691},[251,1451,285],{"emptyLinePlaceholder":284},[251,1453,1454],{"class":253,"line":697},[251,1455,1456],{"class":1117},"# アカウントをリンク\n",[251,1458,1459],{"class":253,"line":703},[251,1460,285],{"emptyLinePlaceholder":284},[251,1462,1463],{"class":253,"line":709},[251,1464,285],{"emptyLinePlaceholder":284},[251,1466,1467,1469,1472,1474,1476,1478,1481],{"class":253,"line":715},[251,1468,1425],{"class":1263},[251,1470,1471],{"class":274}," annotate",[251,1473,1430],{"class":274},[251,1475,1433],{"class":261},[251,1477,1436],{"class":1279},[251,1479,1480],{"class":274}," default",[251,1482,1291],{"class":1279},[251,1484,1485,1488],{"class":253,"line":721},[251,1486,1487],{"class":274},"    iam.gke.io/gcp-service-account=",[251,1489,1490],{"class":261},"${GSA_EMAIL}\n",[251,1492,1493],{"class":253,"line":727},[251,1494,285],{"emptyLinePlaceholder":284},[251,1496,1497,1499,1501,1503,1505,1508],{"class":253,"line":733},[251,1498,1264],{"class":1263},[251,1500,1267],{"class":274},[251,1502,1270],{"class":274},[251,1504,1326],{"class":274},[251,1506,1507],{"class":261}," ${GSA_EMAIL} ",[251,1509,1280],{"class":1279},[251,1511,1512,1515],{"class":253,"line":739},[251,1513,1514],{"class":1279},"    --role=roles/iam.workloadIdentityUser",[251,1516,1291],{"class":1279},[251,1518,1519,1521,1523,1525,1528,1530,1533],{"class":253,"line":745},[251,1520,1336],{"class":1279},[251,1522,1339],{"class":274},[251,1524,1131],{"class":261},[251,1526,1527],{"class":274},"}.svc.id.goog[default/${",[251,1529,1195],{"class":261},[251,1531,1532],{"class":274},"}]\"",[251,1534,1291],{"class":1279},[251,1536,1537,1539],{"class":253,"line":751},[251,1538,1296],{"class":1279},[251,1540,1299],{"class":261},[103,1542,1544],{"id":1543},"_4-gkeにデプロイする","4. GKEにデプロイする",[12,1546,1547],{},"完了したら、この変更をパイプラインにプッシュすると、準備完了です。",[12,1549,1550,1551,1554],{},"パイプラインがデプロイされたことを確認できます。",[47,1552,1553],{},"CI/CD > パイプライン","に移動すると、4つのステージが表示されます:",[73,1556,1557,1559,1562,1565],{},[76,1558,213],{},[76,1560,1561],{},"Test(定義されたすべてのセキュリティスキャンを含む)",[76,1563,1564],{},"アーティファクトレジストリへのUpload(成功)",[76,1566,1567],{},"GKEのKubernetesへのDeploy(成功)",[28,1569,1570],{"id":1570},"まとめ",[12,1572,1573],{},"GitLabとGoogle Cloudの組み合わせにより、AIエージェントをGKEに簡単かつ安全にデプロイできます。複雑な手順を踏む必要がなかったことが、おわかりいただけたと思います。GitLabのネイティブGoogle Cloudインテグレーションのおかげで実現できたのです。",[12,1575,1576],{},"デモ動画をご覧ください：",[1578,1579,1582,1583],"figure",{"className":1580},[1581],"video_container","\n  ",[1584,1585,1589],"iframe",{"src":1586,"frameBorder":1587,"allowFullScreen":1588},"https://www.youtube.com/embed/mc2pCL5Qjus?si=QoH02lvz5KH5Ku9O","0","true"," ",[1591,1592,1593],"blockquote",{},[12,1594,1595,1596,1601,1602,1607,1608,1613],{},"このチュートリアルの",[15,1597,1600],{"href":1598,"rel":1599},"https://gitlab.com/gitlab-partners-public/google-cloud/demos/gke-ai-agent",[],"完全なコード例","を使用して、今すぐ始めてみてください。まだGitLabユーザーでない場合は、",[15,1603,1606],{"href":1604,"rel":1605},"https://about.gitlab.com/ja-jp/free-trial/",[],"無料トライアル","でDevSecOpsプラットフォームをお試しください。Google Cloudでホストされているスタートアップ企業には、",[15,1609,1612],{"href":1610,"rel":1611},"https://about.gitlab.com/ja-jp/solutions/startups/google-cloud/",[],"GitLabをお試しいただける特典","があります。",[1615,1616,1617],"style",{},"html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}",{"title":247,"searchDepth":265,"depth":265,"links":1619},[1620,1621,1622,1628],{"id":30,"depth":265,"text":31},{"id":68,"depth":265,"text":68},{"id":101,"depth":265,"text":101,"children":1623},[1624,1625,1626,1627],{"id":105,"depth":281,"text":106},{"id":138,"depth":281,"text":139},{"id":196,"depth":281,"text":197},{"id":1543,"depth":281,"text":1544},{"id":1570,"depth":265,"text":1570},"ai","2025-11-10","このガイドでは、GitLabのAIパワーDevSecOpsプラットフォームを使用して、ADKベースのAIエージェントをGoogle Kubernetes Engineに簡単かつ安全にデプロイする方法を説明します。","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg",{},"/ja-jp/blog/secure-ai-agent-deployment-to-gke",{"config":1639,"title":5,"description":1640},{"noIndex":1634},"このガイドでは、GitLabのAI搭載DevSecOpsプラットフォームを使用して、ADKベースのAIエージェントをGoogle Kubernetes Engineに簡単かつ安全にデプロイする方法を説明します。","secure-ai-agent-deployment-to-gke","ja-jp/blog/secure-ai-agent-deployment-to-gke",[1644,1645,1646,1647],"AI","google","cloud native","tutorial","BlogPost","2025-11-18","Kt_PFlZu9cD7bZsz-zlsd31jCvgrpyUGEFETd1vdIyU",{"logo":1652,"freeTrial":1657,"sales":1662,"login":1667,"items":1672,"search":2001,"minimal":2034,"duo":2051,"switchNav":2060,"pricingDeployment":2071},{"config":1653},{"href":1654,"dataGaName":1655,"dataGaLocation":1656},"/ja-jp/","gitlab logo","header",{"text":1658,"config":1659},"無料トライアルを開始",{"href":1660,"dataGaName":1661,"dataGaLocation":1656},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":1663,"config":1664},"デモをリクエスト",{"href":1665,"dataGaName":1666,"dataGaLocation":1656},"/ja-jp/sales/?contact-topic=request-demo","sales",{"text":1668,"config":1669},"サインイン",{"href":1670,"dataGaName":1671,"dataGaLocation":1656},"https://gitlab.com/users/sign_in/","sign in",[1673,1702,1804,1809,1923,1979],{"text":1674,"config":1675,"menu":1677},"プラットフォーム",{"dataNavLevelOne":1676},"platform",{"type":1678,"columns":1679},"cards",[1680,1686,1694],{"title":1674,"description":1681,"link":1682},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":1683,"config":1684},"プラットフォームの詳細はこちら",{"href":1685,"dataGaName":1676,"dataGaLocation":1656},"/ja-jp/platform/",{"title":1687,"description":1688,"link":1689},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":1690,"config":1691},"GitLab Duoのご紹介",{"href":1692,"dataGaName":1693,"dataGaLocation":1656},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":1695,"description":1696,"link":1697},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":1698,"config":1699},"詳細はこちら",{"href":1700,"dataGaName":1701,"dataGaLocation":1656},"/ja-jp/why-gitlab/","why gitlab",{"text":1703,"left":284,"config":1704,"menu":1706},"製品",{"dataNavLevelOne":1705},"solutions",{"type":1707,"link":1708,"columns":1712,"feature":1783},"lists",{"text":1709,"config":1710},"すべてのソリューションを表示",{"href":1711,"dataGaName":1705,"dataGaLocation":1656},"/ja-jp/solutions/",[1713,1738,1761],{"title":1714,"description":1715,"link":1716,"items":1721},"自動化","CI/CDと自動化でデプロイを加速",{"config":1717},{"icon":1718,"href":1719,"dataGaName":1720,"dataGaLocation":1656},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[1722,1726,1729,1734],{"text":1723,"config":1724},"CI/CD",{"href":1725,"dataGaLocation":1656,"dataGaName":1723},"/ja-jp/solutions/continuous-integration/",{"text":1687,"config":1727},{"href":1692,"dataGaLocation":1656,"dataGaName":1728},"gitlab duo agent platform - product menu",{"text":1730,"config":1731},"ソースコード管理",{"href":1732,"dataGaLocation":1656,"dataGaName":1733},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":1735,"config":1736},"自動化されたソフトウェアデリバリー",{"href":1719,"dataGaLocation":1656,"dataGaName":1737},"Automated software delivery",{"title":1739,"description":1740,"link":1741,"items":1746},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":1742},{"href":1743,"dataGaName":1744,"dataGaLocation":1656,"icon":1745},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[1747,1751,1756],{"text":1748,"config":1749},"アプリケーションセキュリティテスト",{"href":1743,"dataGaName":1750,"dataGaLocation":1656},"Application security testing",{"text":1752,"config":1753},"ソフトウェアサプライチェーンセキュリティ",{"href":1754,"dataGaLocation":1656,"dataGaName":1755},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":1757,"config":1758},"ソフトウェアコンプライアンス",{"href":1759,"dataGaName":1760,"dataGaLocation":1656},"/ja-jp/solutions/software-compliance/","software compliance",{"title":1762,"link":1763,"items":1768},"測定",{"config":1764},{"icon":1765,"href":1766,"dataGaName":1767,"dataGaLocation":1656},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[1769,1773,1778],{"text":1770,"config":1771},"可視性と測定",{"href":1766,"dataGaLocation":1656,"dataGaName":1772},"Visibility and Measurement",{"text":1774,"config":1775},"バリューストリーム管理",{"href":1776,"dataGaLocation":1656,"dataGaName":1777},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":1779,"config":1780},"分析とインサイト",{"href":1781,"dataGaLocation":1656,"dataGaName":1782},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":1784,"type":1707,"items":1785},"GitLabが活躍する場所",[1786,1792,1798],{"text":1787,"config":1788},"大企業",{"icon":1789,"href":1790,"dataGaLocation":1656,"dataGaName":1791},"Building","/ja-jp/enterprise/","enterprise",{"text":1793,"config":1794},"スモールビジネス",{"icon":1795,"href":1796,"dataGaLocation":1656,"dataGaName":1797},"Work","/ja-jp/small-business/","small business",{"text":1799,"config":1800},"公共部門",{"icon":1801,"href":1802,"dataGaLocation":1656,"dataGaName":1803},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":1805,"config":1806},"価格",{"href":1807,"dataGaName":1808,"dataGaLocation":1656,"dataNavLevelOne":1808},"/ja-jp/pricing/","pricing",{"text":1810,"config":1811,"menu":1813},"関連リソース",{"dataNavLevelOne":1812},"resources",{"type":1707,"link":1814,"columns":1818,"feature":1912},{"text":1815,"config":1816},"すべてのリソースを表示",{"href":1817,"dataGaName":1812,"dataGaLocation":1656},"/ja-jp/resources/",[1819,1852,1879],{"title":1820,"items":1821},"はじめに",[1822,1827,1832,1837,1842,1847],{"text":1823,"config":1824},"インストール",{"href":1825,"dataGaName":1826,"dataGaLocation":1656},"/ja-jp/install/","install",{"text":1828,"config":1829},"クイックスタートガイド",{"href":1830,"dataGaName":1831,"dataGaLocation":1656},"/ja-jp/get-started/","quick setup checklists",{"text":1833,"config":1834},"学ぶ",{"href":1835,"dataGaLocation":1656,"dataGaName":1836},"https://university.gitlab.com/","learn",{"text":1838,"config":1839},"製品ドキュメント",{"href":1840,"dataGaName":1841,"dataGaLocation":1656},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":1843,"config":1844},"ベストプラクティスビデオ",{"href":1845,"dataGaName":1846,"dataGaLocation":1656},"/ja-jp/getting-started-videos/","best practice videos",{"text":1848,"config":1849},"インテグレーション",{"href":1850,"dataGaName":1851,"dataGaLocation":1656},"/ja-jp/integrations/","integrations",{"title":1853,"items":1854},"検索する",[1855,1860,1865,1870,1874],{"text":1856,"config":1857},"お客様成功事例",{"href":1858,"dataGaName":1859,"dataGaLocation":1656},"/ja-jp/customers/","customer success stories",{"text":1861,"config":1862},"ブログ",{"href":1863,"dataGaName":1864,"dataGaLocation":1656},"/ja-jp/blog/","blog",{"text":1866,"config":1867},"Demo Hub",{"href":1868,"dataGaName":1869,"dataGaLocation":1656},"/ja-jp/demo-hub/","demo hub",{"text":1871,"config":1872},"The Source",{"href":1873,"dataGaName":1864,"dataGaLocation":1656},"/ja-jp/the-source/",{"text":1875,"config":1876},"リモート",{"href":1877,"dataGaName":1878,"dataGaLocation":1656},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1880,"items":1881},"つなげる",[1882,1887,1892,1897,1902,1907],{"text":1883,"config":1884},"GitLabサービス",{"href":1885,"dataGaName":1886,"dataGaLocation":1656},"/ja-jp/services/","services",{"text":1888,"config":1889},"コントリビュート",{"href":1890,"dataGaName":1891,"dataGaLocation":1656},"https://contributors.gitlab.com","contribute",{"text":1893,"config":1894},"コミュニティ",{"href":1895,"dataGaName":1896,"dataGaLocation":1656},"/community/","community",{"text":1898,"config":1899},"フォーラム",{"href":1900,"dataGaName":1901,"dataGaLocation":1656},"https://forum.gitlab.com/","forum",{"text":1903,"config":1904},"イベント",{"href":1905,"dataGaName":1906,"dataGaLocation":1656},"/events/","events",{"text":1908,"config":1909},"パートナー",{"href":1910,"dataGaName":1911,"dataGaLocation":1656},"/ja-jp/partners/","partners",{"config":1913,"title":1916,"text":1917,"link":1918},{"background":1914,"textColor":1915},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","GitLabの最新情報","最新の機能と改善点に関する情報をお届けします。",{"text":1919,"config":1920},"最新情報を読む",{"href":1921,"dataGaName":1922,"dataGaLocation":1656},"/ja-jp/whats-new/","whats new",{"text":1924,"config":1925,"menu":1927},"企業情報",{"dataNavLevelOne":1926},"company",{"type":1707,"columns":1928},[1929],{"items":1930},[1931,1936,1942,1944,1949,1954,1959,1964,1969,1974],{"text":1932,"config":1933},"GitLabについて",{"href":1934,"dataGaName":1935,"dataGaLocation":1656},"/ja-jp/company/","about",{"text":1937,"config":1938,"footerGa":1941},"採用情報",{"href":1939,"dataGaName":1940,"dataGaLocation":1656},"/jobs/","jobs",{"dataGaName":1940},{"text":1903,"config":1943},{"href":1905,"dataGaName":1906,"dataGaLocation":1656},{"text":1945,"config":1946},"経営陣",{"href":1947,"dataGaName":1948,"dataGaLocation":1656},"/company/team/e-group/","leadership",{"text":1950,"config":1951},"ハンドブック",{"href":1952,"dataGaName":1953,"dataGaLocation":1656},"https://handbook.gitlab.com/","handbook",{"text":1955,"config":1956},"投資家向け情報",{"href":1957,"dataGaName":1958,"dataGaLocation":1656},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1960,"config":1961},"トラストセンター",{"href":1962,"dataGaName":1963,"dataGaLocation":1656},"/ja-jp/security/","trust center",{"text":1965,"config":1966},"AI Transparency Center",{"href":1967,"dataGaName":1968,"dataGaLocation":1656},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":1970,"config":1971},"ニュースレター",{"href":1972,"dataGaName":1973,"dataGaLocation":1656},"/company/contact/#contact-forms","newsletter",{"text":1975,"config":1976},"プレス",{"href":1977,"dataGaName":1978,"dataGaLocation":1656},"/press/","press",{"text":1980,"config":1981,"menu":1982},"お問い合わせ",{"dataNavLevelOne":1926},{"type":1707,"columns":1983},[1984],{"items":1985},[1986,1991,1996],{"text":1987,"config":1988},"お問い合わせはこちら",{"href":1989,"dataGaName":1990,"dataGaLocation":1656},"/ja-jp/sales/","talk to sales",{"text":1992,"config":1993},"サポートを受ける",{"href":1994,"dataGaName":1995,"dataGaLocation":1656},"https://support.gitlab.com/hc/en-us","support portal",{"text":1997,"config":1998},"カスタマーポータル",{"href":1999,"dataGaName":2000,"dataGaLocation":1656},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":2002,"login":2003,"suggestions":2010},"閉じる",{"text":2004,"link":2005},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":2006,"config":2007},"GitLab.com",{"href":1670,"dataGaName":2008,"dataGaLocation":2009},"search login","search",{"text":2011,"default":2012},"提案",[2013,2015,2020,2022,2026,2030],{"text":1687,"config":2014},{"href":1692,"dataGaName":1687,"dataGaLocation":2009},{"text":2016,"config":2017},"コード提案（AI）",{"href":2018,"dataGaName":2019,"dataGaLocation":2009},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":1723,"config":2021},{"href":1725,"dataGaName":1723,"dataGaLocation":2009},{"text":2023,"config":2024},"GitLab on AWS",{"href":2025,"dataGaName":2023,"dataGaLocation":2009},"/ja-jp/partners/technology-partners/aws/",{"text":2027,"config":2028},"GitLab on Google Cloud",{"href":2029,"dataGaName":2027,"dataGaLocation":2009},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":2031,"config":2032},"GitLabを選ぶ理由",{"href":1700,"dataGaName":2033,"dataGaLocation":2009},"Why GitLab?",{"freeTrial":2035,"mobileIcon":2039,"desktopIcon":2044,"secondaryButton":2047},{"text":1658,"config":2036},{"href":2037,"dataGaName":1661,"dataGaLocation":2038},"https://gitlab.com/-/trials/new/","nav",{"altText":2040,"config":2041},"GitLabアイコン",{"src":2042,"dataGaName":2043,"dataGaLocation":2038},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":2040,"config":2045},{"src":2046,"dataGaName":2043,"dataGaLocation":2038},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1820,"config":2048},{"href":2049,"dataGaName":2050,"dataGaLocation":2038},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":2052,"mobileIcon":2056,"desktopIcon":2058},{"text":2053,"config":2054},"GitLab Duoの詳細について",{"href":1692,"dataGaName":2055,"dataGaLocation":2038},"gitlab duo",{"altText":2040,"config":2057},{"src":2042,"dataGaName":2043,"dataGaLocation":2038},{"altText":2040,"config":2059},{"src":2046,"dataGaName":2043,"dataGaLocation":2038},{"button":2061,"mobileIcon":2066,"desktopIcon":2068},{"text":2062,"config":2063},"/switch",{"href":2064,"dataGaName":2065,"dataGaLocation":2038},"#contact","switch",{"altText":2040,"config":2067},{"src":2042,"dataGaName":2043,"dataGaLocation":2038},{"altText":2040,"config":2069},{"src":2070,"dataGaName":2043,"dataGaLocation":2038},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":2072,"mobileIcon":2077,"desktopIcon":2079},{"text":2073,"config":2074},"料金ページに戻る",{"href":1807,"dataGaName":2075,"dataGaLocation":2038,"icon":2076},"back to pricing","GoBack",{"altText":2040,"config":2078},{"src":2042,"dataGaName":2043,"dataGaLocation":2038},{"altText":2040,"config":2080},{"src":2046,"dataGaName":2043,"dataGaLocation":2038},{"title":2082,"button":2083,"config":2087},"GitLab Orbitが登場: AIエージェントのためのコンテキストレイヤー",{"text":1698,"config":2084},{"href":2085,"dataGaName":2086,"dataGaLocation":1656},"/ja-jp/gitlab-orbit/","orbit",{"layout":2088,"disabled":1634},"release",{"data":2090},{"text":2091,"source":2092,"edit":2098,"contribute":2103,"config":2108,"items":2113,"minimal":2321},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":2093,"config":2094},"ページのソースを表示",{"href":2095,"dataGaName":2096,"dataGaLocation":2097},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":2099,"config":2100},"このページを編集",{"href":2101,"dataGaName":2102,"dataGaLocation":2097},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":2104,"config":2105},"ご協力をお願いします",{"href":2106,"dataGaName":2107,"dataGaLocation":2097},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":2109,"facebook":2110,"youtube":2111,"linkedin":2112},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[2114,2159,2211,2254,2288],{"title":1805,"links":2115,"subMenu":2130},[2116,2120,2125],{"text":2117,"config":2118},"プランの表示",{"href":1807,"dataGaName":2119,"dataGaLocation":2097},"view plans",{"text":2121,"config":2122},"Premiumを選ぶ理由",{"href":2123,"dataGaName":2124,"dataGaLocation":2097},"/ja-jp/pricing/premium/","why premium",{"text":2126,"config":2127},"Ultimateを選ぶ理由",{"href":2128,"dataGaName":2129,"dataGaLocation":2097},"/ja-jp/pricing/ultimate/","why ultimate",[2131],{"title":1980,"links":2132},[2133,2135,2137,2139,2144,2149,2154],{"text":1980,"config":2134},{"href":1989,"dataGaName":1666,"dataGaLocation":2097},{"text":1992,"config":2136},{"href":1994,"dataGaName":1995,"dataGaLocation":2097},{"text":1997,"config":2138},{"href":1999,"dataGaName":2000,"dataGaLocation":2097},{"text":2140,"config":2141},"ステータス",{"href":2142,"dataGaName":2143,"dataGaLocation":2097},"https://status.gitlab.com/","status",{"text":2145,"config":2146},"利用規約",{"href":2147,"dataGaName":2148,"dataGaLocation":2097},"/terms/","terms of use",{"text":2150,"config":2151},"プライバシーに関する声明",{"href":2152,"dataGaName":2153,"dataGaLocation":2097},"/ja-jp/privacy/","privacy statement",{"text":2155,"config":2156},"Cookie 優先設定",{"dataGaName":2157,"dataGaLocation":2097,"id":2158,"isOneTrustButton":284},"cookie preferences","ot-sdk-btn",{"title":1703,"links":2160,"subMenu":2169},[2161,2165],{"text":2162,"config":2163},"DevSecOpsプラットフォーム",{"href":1685,"dataGaName":2164,"dataGaLocation":2097},"devsecops platform",{"text":2166,"config":2167},"AI支援開発",{"href":1692,"dataGaName":2168,"dataGaLocation":2097},"ai-assisted development",[2170],{"title":2171,"links":2172},"トピック",[2173,2177,2182,2187,2192,2197,2201,2206],{"text":1723,"config":2174},{"href":2175,"dataGaName":2176,"dataGaLocation":2097},"/ja-jp/topics/ci-cd/","cicd",{"text":2178,"config":2179},"GitOps",{"href":2180,"dataGaName":2181,"dataGaLocation":2097},"/ja-jp/topics/gitops/","gitops",{"text":2183,"config":2184},"DevOps",{"href":2185,"dataGaName":2186,"dataGaLocation":2097},"/ja-jp/topics/devops/","devops",{"text":2188,"config":2189},"バージョン管理",{"href":2190,"dataGaName":2191,"dataGaLocation":2097},"/ja-jp/topics/version-control/","version control",{"text":2193,"config":2194},"DevSecOps",{"href":2195,"dataGaName":2196,"dataGaLocation":2097},"/ja-jp/topics/devsecops/","devsecops",{"text":2198,"config":2199},"クラウドネイティブ",{"href":2200,"dataGaName":1646,"dataGaLocation":2097},"/ja-jp/topics/cloud-native/",{"text":2202,"config":2203},"コーディングのためのAI",{"href":2204,"dataGaName":2205,"dataGaLocation":2097},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":2207,"config":2208},"エージェント型AI",{"href":2209,"dataGaName":2210,"dataGaLocation":2097},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":2212,"links":2213},"ソリューション",[2214,2217,2219,2224,2228,2231,2234,2237,2239,2241,2244,2249],{"text":1748,"config":2215},{"href":1743,"dataGaName":2216,"dataGaLocation":2097},"Application Security Testing",{"text":1735,"config":2218},{"href":1719,"dataGaName":1720,"dataGaLocation":2097},{"text":2220,"config":2221},"アジャイル開発",{"href":2222,"dataGaName":2223,"dataGaLocation":2097},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":2225,"config":2226},"SCM",{"href":1732,"dataGaName":2227,"dataGaLocation":2097},"source code management",{"text":1723,"config":2229},{"href":1725,"dataGaName":2230,"dataGaLocation":2097},"continuous integration & delivery",{"text":1774,"config":2232},{"href":1776,"dataGaName":2233,"dataGaLocation":2097},"value stream management",{"text":2178,"config":2235},{"href":2236,"dataGaName":2181,"dataGaLocation":2097},"/ja-jp/solutions/gitops/",{"text":1787,"config":2238},{"href":1790,"dataGaName":1791,"dataGaLocation":2097},{"text":1793,"config":2240},{"href":1796,"dataGaName":1797,"dataGaLocation":2097},{"text":2242,"config":2243},"公共機関",{"href":1802,"dataGaName":1803,"dataGaLocation":2097},{"text":2245,"config":2246},"教育",{"href":2247,"dataGaName":2248,"dataGaLocation":2097},"/ja-jp/solutions/education/","education",{"text":2250,"config":2251},"金融サービス",{"href":2252,"dataGaName":2253,"dataGaLocation":2097},"/ja-jp/solutions/finance/","financial services",{"title":2255,"links":2256},"リソース",[2257,2259,2261,2263,2267,2269,2272,2274,2276,2278,2280,2282,2284,2286],{"text":1823,"config":2258},{"href":1825,"dataGaName":1826,"dataGaLocation":2097},{"text":1828,"config":2260},{"href":1830,"dataGaName":1831,"dataGaLocation":2097},{"text":1833,"config":2262},{"href":1835,"dataGaName":1836,"dataGaLocation":2097},{"text":1838,"config":2264},{"href":2265,"dataGaName":2266,"dataGaLocation":2097},"https://docs.gitlab.com/ja-jp","docs",{"text":1861,"config":2268},{"href":1863,"dataGaName":1864,"dataGaLocation":2097},{"text":2270,"config":2271},"最新リリース",{"href":1921,"dataGaName":1922,"dataGaLocation":2097},{"text":1856,"config":2273},{"href":1858,"dataGaName":1859,"dataGaLocation":2097},{"text":1875,"config":2275},{"href":1877,"dataGaName":1878,"dataGaLocation":2097},{"text":1883,"config":2277},{"href":1885,"dataGaName":1886,"dataGaLocation":2097},{"text":1888,"config":2279},{"href":1890,"dataGaName":1891,"dataGaLocation":2097},{"text":1893,"config":2281},{"href":1895,"dataGaName":1896,"dataGaLocation":2097},{"text":1898,"config":2283},{"href":1900,"dataGaName":1901,"dataGaLocation":2097},{"text":1903,"config":2285},{"href":1905,"dataGaName":1906,"dataGaLocation":2097},{"text":1908,"config":2287},{"href":1910,"dataGaName":1911,"dataGaLocation":2097},{"title":2289,"links":2290},"会社情報",[2291,2293,2295,2297,2299,2301,2305,2310,2312,2314,2316],{"text":1932,"config":2292},{"href":1934,"dataGaName":1926,"dataGaLocation":2097},{"text":1937,"config":2294},{"href":1939,"dataGaName":1940,"dataGaLocation":2097},{"text":1945,"config":2296},{"href":1947,"dataGaName":1948,"dataGaLocation":2097},{"text":1950,"config":2298},{"href":1952,"dataGaName":1953,"dataGaLocation":2097},{"text":1955,"config":2300},{"href":1957,"dataGaName":1958,"dataGaLocation":2097},{"text":2302,"config":2303},"Sustainability",{"href":2304,"dataGaName":2302,"dataGaLocation":2097},"/sustainability/",{"text":2306,"config":2307},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":2308,"dataGaName":2309,"dataGaLocation":2097},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1960,"config":2311},{"href":1962,"dataGaName":1963,"dataGaLocation":2097},{"text":1970,"config":2313},{"href":1972,"dataGaName":1973,"dataGaLocation":2097},{"text":1975,"config":2315},{"href":1977,"dataGaName":1978,"dataGaLocation":2097},{"text":2317,"config":2318},"現代奴隷制の透明性に関する声明",{"href":2319,"dataGaName":2320,"dataGaLocation":2097},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":2322},[2323,2325,2328],{"text":2145,"config":2324},{"href":2147,"dataGaName":2148,"dataGaLocation":2097},{"text":2326,"config":2327},"Cookieの設定",{"dataGaName":2157,"dataGaLocation":2097,"id":2158,"isOneTrustButton":284},{"text":2150,"config":2329},{"href":2152,"dataGaName":2153,"dataGaLocation":2097},[2331],{"id":2332,"title":7,"body":1633,"config":2333,"content":2335,"description":1633,"extension":2339,"meta":2340,"navigation":284,"path":2341,"seo":2342,"stem":2343,"__hash__":2344},"blogAuthors/en-us/blog/authors/regnard-raquedan.yml",{"template":2334},"BlogAuthor",{"name":7,"config":2336},{"headshot":2337,"ctfId":2338},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663118/Blog/Author%20Headshots/regnard_raquedan_headshot.png","rraquedan","yml",{},"/en-us/blog/authors/regnard-raquedan",{},"en-us/blog/authors/regnard-raquedan","1JCF9gTeSA0OaLWrorCsz7_b5_2A2kagAMVhH8r4NcM",[2346,2354,2361],{"title":2347,"description":2348,"heroImage":2349,"category":1629,"date":2350,"authors":2351,"slug":2353,"externalUrl":1633},"Loop Engineeringの実践方法：GitLab × Claude Codeでの実装例","GitLabとClaude Codeで実践するLoop Engineeringの実装例をご紹介。AIエージェントを自律稼働させるcron起動・Skills活用・ラベルベースのフローと、必須のガードレール設計を解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785215335/oevhcbrbev1zyfubdfxz.jpg","2026-07-31",[2352],"Issei Hamada, Sony Biz Networks Corporation","loop-engineering-gitlab-claude-code",{"title":2355,"description":2356,"heroImage":2357,"category":1629,"date":2350,"authors":2358,"slug":2360,"externalUrl":1633},"エージェント型AI、MCP、AIコードアシスタントを統制する方法","AIエージェントは、各ステップで人によるレビューを介さずに、コードの記述、プッシュ、デプロイを行うことができます。アクセス、権限、監査証跡を統制する実践的なフレームワークを解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785337625/ifzlc2hyzaxhzmjgyymh.png",[2359],"Julie Griffin","govern-agentic-ai-mcps-code-assistants",{"title":2362,"description":2363,"heroImage":2364,"category":1629,"date":2365,"authors":2366,"slug":2368,"externalUrl":1633},"Claude Opus 5、GitLabで最難関タスクに挑む","AnthropicのClaude Opus 5がGitLab Duo Agent Platformで利用可能になりました。速度を犠牲にすることなく、より深い推論力を提供します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-07-27",[2367],"Brittany Lutz","claude-opus-5-on-gitlab-duo-agent-platform",{"promotions":2370},[2371,2384,2396,2408],{"id":2372,"categories":2373,"header":2374,"text":2375,"button":2376,"image":2381},"ai-modernization",[1629],"AIの真価、組織全体で発揮できていますか？","所要時間は5分以内です",{"text":2377,"config":2378},"AI成熟度スコアを確認する",{"href":2379,"dataGaName":2380,"dataGaLocation":1864},"/ja-jp/assessments/ai-modernization-assessment/","modernization assessment",{"config":2382},{"src":2383},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":2385,"categories":2386,"header":2388,"text":2375,"button":2389,"image":2393},"devops-modernization",[2387,2196],"product","単にツールを管理するだけでなく、イノベーションを提供していますか？",{"text":2390,"config":2391},"DevOps成熟度スコアを確認しましょう",{"href":2392,"dataGaName":2380,"dataGaLocation":1864},"/ja-jp/assessments/devops-modernization-assessment/",{"config":2394},{"src":2395},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":2397,"categories":2398,"header":2400,"text":2375,"button":2401,"image":2405},"security-modernization",[2399],"security","スピードのためにセキュリティを犠牲にしていませんか？",{"text":2402,"config":2403},"セキュリティ成熟度スコアを確認しましょう",{"href":2404,"dataGaName":2380,"dataGaLocation":1864},"/ja-jp/assessments/security-modernization-assessment/",{"config":2406},{"src":2407},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":2409,"paths":2410,"header":2413,"text":2414,"button":2415,"image":2420},"github-azure-migration",[2411,2412],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","チームはGitHubのAzure移行に対応できていますか？","GitHubはすでにAzureを基盤として再構築を進めています。それがあなたのチームにとって何を意味するのか、ご確認ください。",{"text":2416,"config":2417},"GitLabとGitHubの比較を見る",{"href":2418,"dataGaName":2419,"dataGaLocation":1864},"/ja-jp/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":2421},{"src":2395},{"header":2423,"blurb":2424,"button":2425,"secondaryButton":2429},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":1658,"config":2426},{"href":2427,"dataGaName":1661,"dataGaLocation":2428},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":1980,"config":2430},{"href":1989,"dataGaName":1666,"dataGaLocation":2428},1786803792690]