[{"data":1,"prerenderedAt":779},["ShallowReactive",2],{"/ja-jp/blog/aws-multi-account-cicd-gitlab":3,"navigation-ja-jp":46,"banner-ja-jp":442,"footer-ja-jp":452,"blog-post-authors-ja-jp-Tsukasa Komatsubara|Issei Hamada, Sony Biz Networks Corporation":658,"blog-related-posts-ja-jp-aws-multi-account-cicd-gitlab":685,"assessment-promotions-ja-jp":731,"next-steps-ja-jp":770},{"id":4,"title":5,"authorSlugs":6,"body":9,"categorySlug":10,"config":11,"content":15,"description":9,"extension":31,"isFeatured":12,"meta":32,"navigation":12,"path":33,"publishedDate":24,"seo":34,"stem":40,"tagSlugs":41,"__hash__":45},"blogPosts/ja-jp/blog/aws-multi-account-cicd-gitlab.yml","Aws Multi Account Cicd Gitlab",[7,8],"tsukasa-komatsubara","issei-hamada-sony-biz-networks-corporation",null,"devsecops",{"featured":12,"template":13,"slug":14},true,"BlogPost","aws-multi-account-cicd-gitlab",{"category":10,"tags":16,"body":23,"date":24,"heroImage":25,"authors":26,"title":29,"description":30},[17,18,19,20,21,22],"partners","AWS","CI/CD","integrations","public sector","tutorial","***編集部注：私たちは時折、パートナーコミュニティのメンバーにGitLabブログへの寄稿をお願いしています。今回、ソニービズネットワークス社のエンジニアである濱田一成氏に、共同執筆いただきました。***\nソニービズネットワークス株式会社所属のエンジニア、濱田 一成です。先日、GitLab 様との共同企画でAWS様の作成したマルチアカウントIaC・CI/CDワークショップを、GitLabを用いた構成にリファクタリングしました。本記事は、そのワークショップの解説記事です。\n# 従来の構成\n![従来の構成](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760602837/zlrn0hwtrnkfzqxakeya.png)\n元のワークショップはAWSサービスのみでCI/CDパイプラインを構成しています。このワークショップは手軽に継続的インテグレーションを体験出来ることから、非常に高い評価を得ていました。しかし現在AWS CodeCommitは新規顧客の受け入れを停止しており、元ワークショップも新たなお客様のご利用が出来なくなっていました。\n# リファクタリング後の構成\n![リファクタリング後の構成](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760602839/ztsdyztzdtoyvusqkknp.png)\nそこで今回、AWS CodeCommitをGitLabに置き換え、CI/CDを体験するワークショップとしてリファクタリングを行いました。本ワークショップのAWS CDKコードをご利用頂く事で、GitLabをソースリポジトリとして組み込んだCI/CDパイプラインを体験頂けます。\n# ワークショップのポイント：AWS CodeConnections\nAWS CodeConnectionsは、AWSと様々なコードリポジトリを接続するサービスです。本サービスを利用する事で、SaaS版GitLabはもちろん、セルフホスティング版のGitLabも、AWS上に構築したCI/CDパイプラインに組み込むことが出来るようになります。今回のワークショップではVPC内にGitLabサーバを構築し、インターネット経由でAWS CodeConnectionsと接続します。\n![ワークショップのポイント： AWS CodeConnections](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760602837/ivj1wswqvlwrkqlzrs70.png)\n## プライベートネットワーク接続にも対応している\n今回のワークショップではインターネット経由でGitLabと接続していますが、もちろん閉域に閉じることも可能です。AWS CodeConnectionsを作成する時に、オプションでVPCを指定する事が出来ます。こちらを指定すると、AWS CodeConnectionsとGitLab間の通信専用のENIが作成されます。AWS CodeConnectionsは、このENIを経由してGitLabと通信する事で、閉域網内での利用を実現しています。\n![プライベートネットワーク接続にも対応している](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760602892/tn5rx1nrpiyyzglmcuo9.png)\n# ワークショップ手順解説\n従来のワークショップとの差分は、【Lab 1：CI/CDパイプライン環境のセットアップ】のうち、【手順5. GitLabをデプロイする】のみです。そこで今回は本セクションについて重点的に解説します。\n## 前提事項：GitLab用公開ドメインを用意する\n本ワークショップでは、GitLabと同じアカウントのRoute53にホストされている公開ドメインが必要です。\nAWS CodeConnectionsの要件として、GitLabとの通信はTLS暗号化が必須となっています。GitLabはデフォルトでLet’s Encryptと統合していますが、GitLabのインストール中に指定したURLの名前解決を行えないとLet’s Encryptの設定が失敗してしまいます。その為、今回はCDKのデプロイプロセスの中にレコード登録を組み込んでいます。\nちなみに、このAWS CodeConnectionsのTLS要件はプライベート接続でも同様に求められます。その場合、CodeConnectionsの設定作成時にプライベート証明書をアップロードする必要があります。\n## 手順1. インフラ CI/CDのセットアップに必要なアセットのダウンロード\n本Labの実施に必要なコード一式を、gitコマンドでダウンロードしてください。\n```shell\ngit clone \n\nhttps://github.com/issei-hamada/goverment-cloud-iac-cicd-with-gitlab.git\n```\n## 手順2. アセットの確認\nダウンロードしたプロジェクトの配下に、以下ディレクトリがあることを確認します。\n* artifact-repository  \n* gitlab  \n* cicd-pipeline  \n* cdk-role\n後の手順で、ディレクトリ毎に作業します。\n## 手順3. パッケージのインストール\nNode.jsの必要なライブラリをインストールします。\n```shell\n# ディレクトリ移動 \n\ncd goverment-cloud-iac-cicd-with-gitlab \n\n# package.json に登録されているものをインストール\n\nnpm ci\n```\n## 手順4. artifact-repositoryをデプロイする\n\n 以下コマンドを順に実行し、artifact-repositoryをデプロイします。\n\n```text\n# ディレクトリ移動\n\ncd artifact-repository\n\n# 対象アカウントに CDK で必要なリソースを作成\n\nnpx cdk bootstrap\n\n# デプロイ\n\nnpx cdk deploy\n```\n### AWS CodeArtifactの役割\nAWS CodeArtifactとは、ソフトウェア開発で使用するパッケージを安全に保存、公開、共有するためのフルマネージド型のアーティファクトリポジトリサービスです。ここで言う「パッケージ」とは、HTTPリクエストを手軽に実装するための、pythonで言う「requests」、JavaScriptで言う「Axios」のようなパッケージ（ライブラリとも表現する事がありますね）を指します。例えばpythonでソフトウェアを開発する際、pipの参照先をCodeArtifact に設定する事で、開発者全員が予めCodeArtifactに登録されたパッケージを利用出来るようになります。\nソフトウェア開発におけるパッケージ管理のセキュリティ・コンプライアンスを強化する事がAWS CodeArtifactの役割です。\n## 手順5. GitLabをデプロイする\nここからが、アップデート後のコアとなる手順です。AWSにGitLabをデプロイしていきます。\n### 5-1. デプロイパラメータを設定する\nまずは、デプロイ時に利用する必須パラメータを設定します。gitlab/parameter.tsファイルを修正して下さい。\n![table](https://res.cloudinary.com/about-gitlab-com/image/upload/v1761206827/l7v6ilyephbhzd5uhgtm.jpg)\n基本的にデフォルト値は設定されていますが、★の付いているホストゾーンID・ドメイン名のみ個別に設定が必要です。\n次に、ユーザデータ（gitlab/lib/sh/gitlab-install.sh）内のURLを書き換える必要があります。16行目の\u003Chttps://gitlab.example.com>を、GitLabの接続URLに書き換えて下さい。\n```shell\nEXTERNAL_URL=\"https://gitlab.example.com\" apt-get install -y gitlab-ee\n```\nGitLabはデフォルトでLet’s Encryptと連携しています。こちらを記述する事で、インストール後、指定のドメインにhttpsアクセス可能な状態で起動します。\n### 5-2. GitLab Stackをデプロイする\n初めてCDKを実行する場合は、gitlabディレクトリへ移動し、CDKをbootstrapします。\n```text\n# リポジトリ移動\n\ncd gitlab\n\n# CDK 用リソース作成\n\nnpx cdk bootstrap\n```\n次に、GitLab EC2インスタンスをデプロイします。\n```text\n# デプロイ\n\nnpx cdk deploy\n```\n* EC2 のキーペアについて\n本ワークショップではCDKを使ってキーペアを生成しています。CDKでは秘密鍵をAWS Systems Manager Parameter Storeに保存する仕様になっています。インスタンス起動時点でセッションマネージャを利用出来る設定にはなっていますが、必要に応じて/ec2/keypair/GitLabから取得し、ファイルを生成してください。\nこれでインスタンスのデプロイは完了です。GitLabのインストールも自動で行われますが、CDKのデプロイ完了から10~15分程度かかります。ブラウザから設定したURLにアクセスし、ログインページが表示されるまでお待ちください。\n### 5-3. GitLabへログイン\nログインページが表示されれば、GitLabのインストールは完了です。OSログインして初期パスワードを確認します。\n1. EC2コンソールにてGitLabインスタンスを選択し、「接続」から「セッションマネージャ」でEC2に接続します。  \n2. 以下のcatコマンドを実行します。\n\n   ```text\n   $sudo cat /etc/gitlab/initial_root_password\n   # WARNING: This value is valid only in the following conditions\n   # 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).\n   # 2. Password hasn't been changed manually, either via UI or via command line.\n   #\n   # If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.\n   Password: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n   # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.\n   ```\n3. **Password**の値が、GitLab rootユーザの初期パスワードです。これをコピーしておきます。  \n4. ブラウザからGitLabへアクセスし、`ユーザ名：root` / `パスワード：前項で取得したパスワード`を使って、ログインします。\nブラウザからアプリケーションにログイン出来れば、本手順は完了です。\n### 5-4. GitLabグループ作成\nGitLabではグループにプロジェクト（いわゆるリポジトリ）を紐づけて管理する為、まずはグループを作成します。\n1. ログイン後のトップページにて、左メニューの「Group」を選択\n\n   ![ログイン後のトップページにて、左メニューの「Group」を選択](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760602852/bmosa0dhvbkowx9bakpb.png)\n2. 画面中央右の「New group」を押下\n\n   ![画面中央右の「New group」を押下](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685678/fci5jjjmgrrdcz5vzr6z.png)\n3. 「Create group」を押下\n\n   ![「Create group」を押下](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685678/kfusu353kpdxrpqqkzxc.png)\n4. 「Group name」を入力し、「Create group」を押下\n\n   ![「Group name」を入力し、「Create group」を押下](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685678/kfusu353kpdxrpqqkzxc.png)\n\n今回は、「development-group」として下さい。\nこれでグループ作成は完了です。\n### 5-5. ワークショップ用プロジェクト作成\n次は、前段で作成したグループに紐づくプロジェクトを作成していきます。\n1. GitLabコンソール左メニュー右上の「＋」アイコンをクリックし、「New project/repository」をクリック\n\n   ![GitLabコンソール左メニュー右上の「＋」アイコンをクリックし、「New project/repository」をクリック](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685678/ccsawinrpngssuugubwd.png)\n2. 「Create blank project」をクリック\n\n   ![「Create blank project」をクリック](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685680/y35bltsbs6uxdpjvsakq.png)\n3. プロジェクト名を入力し、「Create project」を押下\n\n   Project URLで、name spaceに 5-4 で作成したグループ名が入力されている事を確認します。また、本 workshop ではプロジェクト名を「cicd-workshop」として下さい。\n\n   ![プロジェクト名を入力し、「Create project」を押下](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685678/i7snizlqy5z2zr7ljof6.png)\n\n以上でプロジェクトの作成が完了し、リポジトリのクローンやプッシュが可能な状態になりました。次は、GitLabとAWSの接続設定に必要な認証情報を払い出します。\n### 5-6. パーソナルアクセストークンを払い出す\nGitLabと外部リソースを連携する際、パーソナルアクセストークン（PAT（という認証情報を利用します。今回はAWSとGitLabを連携する為に必要です。\n1. 左メニュー右上のユーザアイコンをクリックし、「Edit profile」をクリック\n\n   ![左メニュー右上のユーザアイコンをクリックし、「Edit profile」をクリック](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685680/za00t5yqiveuhn9u7dn4.png)\n2. 左メニューの「Access tokens」をクリック\n\n   ![左メニューの「Access tokens」をクリック](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685681/jdtqfpmpzzkjsu86lpg3.png)\n3. 右上の「Add new token」ボタンを押下\n\n   ![右上の「Add new token」ボタンを押下](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685681/eydhfbaxiosfgxgumzav.png)\n4. 「Select scope」にて「api」と「admin_mode」にチェックを入れ、「Create token」ボタンを押下\n\n   token name には、任意の値を入れて下さい。\n\n   ![「Select scope」にて「api」と「admin_mode」にチェックを入れ、「Create token」ボタンを押下](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685682/qf2r6zq7m1ohx5xkgrfx.png)\n5. 「Your token」に表示されているトークンをコピーし、控える\n\n   ![「Your token」に表示されているトークンをコピーし、控える](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685682/cixkiacbowzltfzlwb9y.png)\n\n以上でPATの払い出しが完了し、GitLabとAWSを連携する準備が出来ました。\n### 補足：パーソナルアクセストークンの有効期間について\nPATの有効期間については、AWS CodeConnectionsとの接続設定を作成する時に有効であればよいです。**接続設定を作成した後は、PATを削除しても問題ありません。**\nGitLabとAWS CodeConnectionsの連携設定を作成すると、GitLabのApplicationsに以下のようなアプリが作成されます。\n![GitLabとAWS CodeConnectionsの連携設定を作成すると、GitLabのApplicationsに以下のようなアプリが作成されます。](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685684/m6bmbg2fh5hi7dbow119.png)\nPATは、このアプリをGitLab側に作成する為だけに必要な認証情報なのです。\n## 手順6. AWS CodeConnectionsを作成する\nここからAWSの作業に戻ります。AWS CodeConnectionsを作成し、GitLab側で認証します。\n### 6-1. 「接続」を作成\n1. AWSコンソールの検索窓にて「CodePipeline」と入力し、サービスページへ移動  \n2. 左メニューの「設定」プルダウンから、「接続」を選択  \n3. 右上の「接続を作成」ボタンを押下\n\n   ![右上の「接続を作成」ボタンを押下](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685685/mmjmevc8pmx0jdhccade.png)\n4. 「プロバイダーを選択する」にて「GitLab Self Managed」を選択し、接続設定を入力後、「GitLab Self Managedに接続」ボタンを押下  \n\n   * 接続名：任意の値  \n   * URL：作成した GitLab の URL を入力  \n   * 「VPCを使用」には**チェックを入れない**\n\n   → プライベートサブネット内にあるGitLabと接続する時のオプション\n\n   ![「VPCを使用」にはチェックを入れない → プライベートサブネット内にあるGitLabと接続する時のオプション](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685685/jxznizrfagkijqwgbz5l.png)\n\nこれでAWS CodeConnectionsの「接続」を作成できました。現時点では、接続ステータスは「保留中」で問題ありません。次の手順で承認作業を行います。\n### 6-2. GitLabにてAWS CodeConnectionsの接続を承認する\n1. 先ほど作成した「接続」の、右上「保留中の接続を更新」ボタンを押下\n\n   ![先ほど作成した「接続」の、右上「保留中の接続を更新」ボタンを押下](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760685685/m6qzsgi30hmtg2ne5ziw.png)\n2. ポップアップウィンドウが開く。テキストボックスに個人用アクセストークンを入力し、「続行」ボタンを押下\n\n   ![ポップアップウィンドウが開く。テキストボックスに個人用アクセストークンを入力し、「続行」ボタンを押下](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760602837/o5vl4pqo4cq1nxulbmff.png)\n3. GitLabの認証画面が開く。「Authorize ~」ボタンを押下\n\n   この時、作業しているブラウザからGitLabに接続できる必要があります。ワークショップ環境であれば問題ありませんが、社内環境と接続する際はご注意下さい。\n\n   ![GitLabの認証画面が開く。「Authorize ~」ボタンを押下](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760602837/yk7pxz3eoow2tjbczkyc.png)\n4. 「ホストインスタンスでのインストールの確認」にて、「続行」を押下\n\n   ![「ホストインスタンスでのインストールの確認」にて、「続行」を押下](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760602837/hzlepvaoolcoa1ql1eca.png)\n5. 「接続」のステータスが「利用可能」になったら完了\n\n   ![「接続」のステータスが「利用可能」になったら完了](https://res.cloudinary.com/about-gitlab-com/image/upload/v1760602837/jr1sogiwmmhdbe3cqwey.png)\n6. 「接続設定」に記載されているARNを控える\n以上でAWS CodeConnectionsの設定は完了です。これでAWS CodePipelineのソースリポジトリとしてGitLabを指定出来るようになりました。次の手順では、実際にAWS CodePipelineをデプロイしてCI/CDパイプラインを動かせるようにしていきます。\n### 補足：AWS CodeConnectionsから参照出来るGitLabプロジェクトの制御方法\nAWS CodePipelineでソースとして指定できるプロジェクトは「3. GitLab の認証画面が開く。「Authorize ~」ボタンを押下」手順を実行する際に、GitLabへログインしていたユーザによって決まります。スクリーンショットではAdministratorになっていますが、実際の構築では各々のユーザ名になります。PATを払い出す際に「admin_mode」にチェックを入れても、全てのプロジェクトを参照できるようになるわけではありません\n## 手順7. cicd-pipeline をデプロイする\nAWS CodeConnectionsをソースに指定し、CI/CDパイプラインをデプロイします。基本的に元のワークショップと変わらないのですが、2つだけパラメータを追加しています。\n### 7-1. デプロイパラメータを設定する\ncicd-pipeline/parameter.tsに、先ほどメモしたAWS CodeConnectionsのARNとソースとして指定したいGitLabのプロジェクト名を入力します。\n```text\n// CodeConnections parameters\n\n\ncodeConnectionArn: 'arn:aws:codeconnections:ap-northeast-1:xxxxxxxxxxxx:connection/xxxxxxxxxxxx',\n\n\ngitlabTargetProject: 'development-group/cicd-workshop',\n```\n### 7-2. デプロイする\n初めて CDK を実行する場合は、対象のディレクトリへ移動し、CDK を bootstrap します。これは対象のアカウントとリージョンの組み合わせで初めて CDK を実行するときに必要です。\n```text\n# リポジトリ移動\n\ncd cicd-pipeline\n\n# CDK用リソースを作成\n\nnpx cdk bootstrap --profile cicd\n\n# デプロイ\n\nnpx cdk deploy --profile cicd\n```\n以上でCI/CDパイプラインのデプロイは完了です。\n## 手順8. cdk-roleをデプロイする\n最後に、パイプライン内で利用するIAMロールを作成します。本ワークショップはマルチアカウントを想定している為、アカウントを跨いでCDKを実行する際にこのIAMロールを利用します。デプロイ手順は、以下コマンドを順に実行するだけです。\n```text\n# リポジトリ移動\n\ncd cdk-role\n\n# CDK用リソースを作成\n\nnpx cdk bootstrap --profile cicd\n\n# デプロイ\n\nnpx cdk deploy --profile cicd\n```\nコマンドが正常に完了すれば、CI/CDパイプラインに関するリソースのデプロイは完了です。\n## 手順9. CDKコードを GitLabにpushする\nここまでの手順で、GitLabとAWS上に作成したCI/CDパイプラインの連携設定が完了しました。あとはGitLabにブランチを作成し、コードをプッシュすれば各環境にコードがデプロイされます。\n1. GitLabプロジェクトに develop/staging/production ブランチを作成する  \n2. feature ブランチを作成し、開発/検証/本番環境へデプロイするCDKコードを push する  \n3. develop -> staging -> production ブランチとマージしていくことで各環境にコードがデプロイされることを確認\nLab 2：ソース管理 以降の手順については、従来のワークショップの手順と同一です。手順内のAWS CodeCommitを適宜GitLabに読み替えて実施して下さい。\n## 終わりに\nAWS CodeConnectionsさえ作ってしまえば、GitLabとAWSを簡単に連携出来るようになります。本ワークショップではシングルアカウントを想定して解説しましたが、Resource Access Managerを使う事でマルチアカウントにも対応可能です。AWSとGitLabを組み合わせたCI/CDパイプラインのご相談があれば、ソニービズネットワークスまでご相談下さい。\n以上、ソニービズネットワークスのAWS Ambassador、濱田 一成がお送りしました。\n***謝辞：本ブログは、Amazon Web Services, Inc. 社作成のワークショップ「[マルチアカウント IaC・CI/CD ワークショップ ](https://catalog.us-east-1.prod.workshops.aws/workshops/f95fc450-f2bf-47e2-9834-11f1470cbfd1/ja-JP)」を元に、GitLab版の作成依頼をGitLab Japanからソニービズネットワークス社濱田様にご依頼をして作成いただいたものになります。***\n***ソニービズネットワークス社は、ソニーグループの法人向けICTソリューション事業を展開しています。高品質な法人向けインターネット接続サービス「NUROアクセス」を主力に、クラウドサービス、セキュリティ、AIサービスなど、ビジネスに必要なインフラとシステムをワンストップで提供し、企業の成長と効率化を支援しています。この度、GitLabのオフィシャルリセールパートナーとなりました。***\n","2025-10-23","https://res.cloudinary.com/about-gitlab-com/image/upload/v1760931161/nm0kiehnfb0xdmthakmr.jpg",[27,28],"Tsukasa Komatsubara","Issei Hamada, Sony Biz Networks Corporation","GitLabで実現するマルチアカウントCI/CD","AWS CodeConnectionsを活用し、GitLabとAWSを連携させたCI/CDパイプラインの構築方法を解説。マルチアカウント環境でのIaC実装をステップバイステップで紹介します。","yml",{},"/ja-jp/blog/aws-multi-account-cicd-gitlab",{"config":35,"title":37,"description":38,"ogTitle":39},{"noIndex":36,"ogImage":25},false,"GitLabで実現するマルチアカウントCI/CD\n","AWS CodeConnectionsを活用し、GitLabとAWSを連携させたCI/CDパイプラインの構築方法を解説。マルチアカウント環境でのIaC実装をステップバイステップで紹介します。\n","","ja-jp/blog/aws-multi-account-cicd-gitlab",[17,42,43,20,44,22],"aws","cicd","public-sector","SJUZVcE8tn0Sg9iwqE8sjPBpw6LpxW5B5uBqFPgNrFg",{"data":47},{"logo":48,"freeTrial":53,"sales":58,"login":63,"items":68,"search":372,"minimal":405,"duo":422,"pricingDeployment":432},{"config":49},{"href":50,"dataGaName":51,"dataGaLocation":52},"/ja-jp/","gitlab logo","header",{"text":54,"config":55},"無料トライアルを開始",{"href":56,"dataGaName":57,"dataGaLocation":52},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":59,"config":60},"お問い合わせ",{"href":61,"dataGaName":62,"dataGaLocation":52},"/ja-jp/sales/","sales",{"text":64,"config":65},"サインイン",{"href":66,"dataGaName":67,"dataGaLocation":52},"https://gitlab.com/users/sign_in/","sign in",[69,96,190,195,294,354],{"text":70,"config":71,"cards":73},"プラットフォーム",{"dataNavLevelOne":72},"platform",[74,80,88],{"title":70,"description":75,"link":76},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":77,"config":78},"プラットフォームを詳しく見る",{"href":79,"dataGaName":72,"dataGaLocation":52},"/ja-jp/platform/",{"title":81,"description":82,"link":83},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":84,"config":85},"GitLab Duoのご紹介",{"href":86,"dataGaName":87,"dataGaLocation":52},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":89,"description":90,"link":91},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":92,"config":93},"詳細はこちら",{"href":94,"dataGaName":95,"dataGaLocation":52},"/ja-jp/why-gitlab/","why gitlab",{"text":97,"left":12,"config":98,"link":100,"lists":104,"footer":173},"製品",{"dataNavLevelOne":99},"solutions",{"text":101,"config":102},"すべてのソリューションを表示",{"href":103,"dataGaName":99,"dataGaLocation":52},"/ja-jp/solutions/",[105,129,151],{"title":106,"description":107,"link":108,"items":113},"自動化","CI/CDと自動化でデプロイを加速",{"config":109},{"icon":110,"href":111,"dataGaName":112,"dataGaLocation":52},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[114,117,120,125],{"text":19,"config":115},{"href":116,"dataGaLocation":52,"dataGaName":19},"/ja-jp/solutions/continuous-integration/",{"text":81,"config":118},{"href":86,"dataGaLocation":52,"dataGaName":119},"gitlab duo agent platform - product menu",{"text":121,"config":122},"ソースコード管理",{"href":123,"dataGaLocation":52,"dataGaName":124},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":126,"config":127},"自動化されたソフトウェアデリバリー",{"href":111,"dataGaLocation":52,"dataGaName":128},"Automated software delivery",{"title":130,"description":131,"link":132,"items":137},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":133},{"href":134,"dataGaName":135,"dataGaLocation":52,"icon":136},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[138,142,147],{"text":139,"config":140},"Application Security Testing",{"href":134,"dataGaName":141,"dataGaLocation":52},"Application security testing",{"text":143,"config":144},"ソフトウェアサプライチェーンの安全性",{"href":145,"dataGaLocation":52,"dataGaName":146},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":148,"config":149},"Software Compliance",{"href":150,"dataGaName":148,"dataGaLocation":52},"/ja-jp/solutions/software-compliance/",{"title":152,"link":153,"items":158},"測定",{"config":154},{"icon":155,"href":156,"dataGaName":157,"dataGaLocation":52},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[159,163,168],{"text":160,"config":161},"可視性と測定",{"href":156,"dataGaLocation":52,"dataGaName":162},"Visibility and Measurement",{"text":164,"config":165},"バリューストリーム管理",{"href":166,"dataGaLocation":52,"dataGaName":167},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":169,"config":170},"分析とインサイト",{"href":171,"dataGaLocation":52,"dataGaName":172},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":174,"items":175},"GitLabが活躍する場所",[176,181,186],{"text":177,"config":178},"Enterprise",{"href":179,"dataGaLocation":52,"dataGaName":180},"/ja-jp/enterprise/","enterprise",{"text":182,"config":183},"スモールビジネス",{"href":184,"dataGaLocation":52,"dataGaName":185},"/ja-jp/small-business/","small business",{"text":187,"config":188},"公共機関",{"href":189,"dataGaLocation":52,"dataGaName":21},"/ja-jp/solutions/public-sector/",{"text":191,"config":192},"価格",{"href":193,"dataGaName":194,"dataGaLocation":52,"dataNavLevelOne":194},"/ja-jp/pricing/","pricing",{"text":196,"config":197,"link":199,"lists":203,"feature":281},"関連リソース",{"dataNavLevelOne":198},"resources",{"text":200,"config":201},"すべてのリソースを表示",{"href":202,"dataGaName":198,"dataGaLocation":52},"/ja-jp/resources/",[204,236,254],{"title":205,"items":206},"はじめに",[207,212,217,222,227,232],{"text":208,"config":209},"インストール",{"href":210,"dataGaName":211,"dataGaLocation":52},"/ja-jp/install/","install",{"text":213,"config":214},"クイックスタートガイド",{"href":215,"dataGaName":216,"dataGaLocation":52},"/ja-jp/get-started/","quick setup checklists",{"text":218,"config":219},"学ぶ",{"href":220,"dataGaLocation":52,"dataGaName":221},"https://university.gitlab.com/","learn",{"text":223,"config":224},"製品ドキュメント",{"href":225,"dataGaName":226,"dataGaLocation":52},"https://docs.gitlab.com/","product documentation",{"text":228,"config":229},"ベストプラクティスビデオ",{"href":230,"dataGaName":231,"dataGaLocation":52},"/ja-jp/getting-started-videos/","best practice videos",{"text":233,"config":234},"インテグレーション",{"href":235,"dataGaName":20,"dataGaLocation":52},"/ja-jp/integrations/",{"title":237,"items":238},"検索する",[239,244,249],{"text":240,"config":241},"お客様成功事例",{"href":242,"dataGaName":243,"dataGaLocation":52},"/ja-jp/customers/","customer success stories",{"text":245,"config":246},"ブログ",{"href":247,"dataGaName":248,"dataGaLocation":52},"/ja-jp/blog/","blog",{"text":250,"config":251},"リモート",{"href":252,"dataGaName":253,"dataGaLocation":52},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":255,"items":256},"つなげる",[257,262,267,272,277],{"text":258,"config":259},"GitLabサービス",{"href":260,"dataGaName":261,"dataGaLocation":52},"/ja-jp/services/","services",{"text":263,"config":264},"コミュニティ",{"href":265,"dataGaName":266,"dataGaLocation":52},"/community/","community",{"text":268,"config":269},"フォーラム",{"href":270,"dataGaName":271,"dataGaLocation":52},"https://forum.gitlab.com/","forum",{"text":273,"config":274},"イベント",{"href":275,"dataGaName":276,"dataGaLocation":52},"/events/","events",{"text":278,"config":279},"パートナー",{"href":280,"dataGaName":17,"dataGaLocation":52},"/ja-jp/partners/",{"backgroundColor":282,"textColor":283,"text":284,"image":285,"link":289},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":286,"config":287},"ソースプロモカード",{"src":288},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":290,"config":291},"最新情報を読む",{"href":292,"dataGaName":293,"dataGaLocation":52},"/ja-jp/the-source/","the source",{"text":295,"config":296,"lists":298},"会社情報",{"dataNavLevelOne":297},"company",[299],{"items":300},[301,306,312,314,319,324,329,334,339,344,349],{"text":302,"config":303},"GitLabについて",{"href":304,"dataGaName":305,"dataGaLocation":52},"/ja-jp/company/","about",{"text":307,"config":308,"footerGa":311},"採用情報",{"href":309,"dataGaName":310,"dataGaLocation":52},"/jobs/","jobs",{"dataGaName":310},{"text":273,"config":313},{"href":275,"dataGaName":276,"dataGaLocation":52},{"text":315,"config":316},"経営陣",{"href":317,"dataGaName":318,"dataGaLocation":52},"/company/team/e-group/","leadership",{"text":320,"config":321},"チーム",{"href":322,"dataGaName":323,"dataGaLocation":52},"/company/team/","team",{"text":325,"config":326},"ハンドブック",{"href":327,"dataGaName":328,"dataGaLocation":52},"https://handbook.gitlab.com/","handbook",{"text":330,"config":331},"投資家向け情報",{"href":332,"dataGaName":333,"dataGaLocation":52},"https://ir.gitlab.com/","investor relations",{"text":335,"config":336},"トラストセンター",{"href":337,"dataGaName":338,"dataGaLocation":52},"/ja-jp/security/","trust center",{"text":340,"config":341},"AI Transparency Center",{"href":342,"dataGaName":343,"dataGaLocation":52},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":345,"config":346},"ニュースレター",{"href":347,"dataGaName":348,"dataGaLocation":52},"/company/contact/#contact-forms","newsletter",{"text":350,"config":351},"プレス",{"href":352,"dataGaName":353,"dataGaLocation":52},"/press/","press",{"text":59,"config":355,"lists":356},{"dataNavLevelOne":297},[357],{"items":358},[359,362,367],{"text":59,"config":360},{"href":61,"dataGaName":361,"dataGaLocation":52},"talk to sales",{"text":363,"config":364},"サポートポータル",{"href":365,"dataGaName":366,"dataGaLocation":52},"https://support.gitlab.com","support portal",{"text":368,"config":369},"カスタマーポータル",{"href":370,"dataGaName":371,"dataGaLocation":52},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":373,"login":374,"suggestions":381},"閉じる",{"text":375,"link":376},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":377,"config":378},"GitLab.com",{"href":66,"dataGaName":379,"dataGaLocation":380},"search login","search",{"text":382,"default":383},"提案",[384,386,391,393,397,401],{"text":81,"config":385},{"href":86,"dataGaName":81,"dataGaLocation":380},{"text":387,"config":388},"コード提案（AI）",{"href":389,"dataGaName":390,"dataGaLocation":380},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":19,"config":392},{"href":116,"dataGaName":19,"dataGaLocation":380},{"text":394,"config":395},"GitLab on AWS",{"href":396,"dataGaName":394,"dataGaLocation":380},"/ja-jp/partners/technology-partners/aws/",{"text":398,"config":399},"GitLab on Google Cloud",{"href":400,"dataGaName":398,"dataGaLocation":380},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":402,"config":403},"GitLabを選ぶ理由",{"href":94,"dataGaName":404,"dataGaLocation":380},"Why GitLab?",{"freeTrial":406,"mobileIcon":410,"desktopIcon":415,"secondaryButton":418},{"text":54,"config":407},{"href":408,"dataGaName":57,"dataGaLocation":409},"https://gitlab.com/-/trials/new/","nav",{"altText":411,"config":412},"GitLabアイコン",{"src":413,"dataGaName":414,"dataGaLocation":409},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":411,"config":416},{"src":417,"dataGaName":414,"dataGaLocation":409},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":205,"config":419},{"href":420,"dataGaName":421,"dataGaLocation":409},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/compare/gitlab-vs-github/","get started",{"freeTrial":423,"mobileIcon":428,"desktopIcon":430},{"text":424,"config":425},"GitLab Duoの詳細について",{"href":426,"dataGaName":427,"dataGaLocation":409},"/ja-jp/gitlab-duo/","gitlab duo",{"altText":411,"config":429},{"src":413,"dataGaName":414,"dataGaLocation":409},{"altText":411,"config":431},{"src":417,"dataGaName":414,"dataGaLocation":409},{"freeTrial":433,"mobileIcon":438,"desktopIcon":440},{"text":434,"config":435},"料金ページに戻る",{"href":193,"dataGaName":436,"dataGaLocation":409,"icon":437},"back to pricing","GoBack",{"altText":411,"config":439},{"src":413,"dataGaName":414,"dataGaLocation":409},{"altText":411,"config":441},{"src":417,"dataGaName":414,"dataGaLocation":409},{"title":443,"button":444,"config":449},"エージェント型AIがソフトウェア配信をどのように変革するかをご覧ください",{"text":445,"config":446},"GitLab Transcendを今すぐ視聴",{"href":447,"dataGaName":448,"dataGaLocation":52},"/ja-jp/events/transcend/virtual/","transcend event",{"layout":450,"icon":451},"release","AiStar",{"data":453},{"text":454,"source":455,"edit":461,"contribute":466,"config":471,"items":476,"minimal":650},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":456,"config":457},"ページのソースを表示",{"href":458,"dataGaName":459,"dataGaLocation":460},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":462,"config":463},"このページを編集",{"href":464,"dataGaName":465,"dataGaLocation":460},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":467,"config":468},"ご協力をお願いします",{"href":469,"dataGaName":470,"dataGaLocation":460},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":472,"facebook":473,"youtube":474,"linkedin":475},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[477,500,554,584,619],{"title":70,"links":478,"subMenu":483},[479],{"text":480,"config":481},"DevSecOpsプラットフォーム",{"href":79,"dataGaName":482,"dataGaLocation":460},"devsecops platform",[484],{"title":191,"links":485},[486,490,495],{"text":487,"config":488},"プランの表示",{"href":193,"dataGaName":489,"dataGaLocation":460},"view plans",{"text":491,"config":492},"Premiumを選ぶ理由",{"href":493,"dataGaName":494,"dataGaLocation":460},"/ja-jp/pricing/premium/","why premium",{"text":496,"config":497},"Ultimateを選ぶ理由",{"href":498,"dataGaName":499,"dataGaLocation":460},"/ja-jp/pricing/ultimate/","why ultimate",{"title":501,"links":502},"ソリューション",[503,508,511,513,518,523,527,530,533,538,540,542,544,549],{"text":504,"config":505},"デジタルトランスフォーメーション",{"href":506,"dataGaName":507,"dataGaLocation":460},"/ja-jp/topics/digital-transformation/","digital transformation",{"text":509,"config":510},"セキュリティとコンプライアンス",{"href":134,"dataGaName":141,"dataGaLocation":460},{"text":126,"config":512},{"href":111,"dataGaName":112,"dataGaLocation":460},{"text":514,"config":515},"アジャイル開発",{"href":516,"dataGaName":517,"dataGaLocation":460},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":519,"config":520},"クラウドトランスフォーメーション",{"href":521,"dataGaName":522,"dataGaLocation":460},"/ja-jp/topics/cloud-native/","cloud transformation",{"text":524,"config":525},"SCM",{"href":123,"dataGaName":526,"dataGaLocation":460},"source code management",{"text":19,"config":528},{"href":116,"dataGaName":529,"dataGaLocation":460},"continuous integration & delivery",{"text":164,"config":531},{"href":166,"dataGaName":532,"dataGaLocation":460},"value stream management",{"text":534,"config":535},"GitOps",{"href":536,"dataGaName":537,"dataGaLocation":460},"/ja-jp/solutions/gitops/","gitops",{"text":177,"config":539},{"href":179,"dataGaName":180,"dataGaLocation":460},{"text":182,"config":541},{"href":184,"dataGaName":185,"dataGaLocation":460},{"text":187,"config":543},{"href":189,"dataGaName":21,"dataGaLocation":460},{"text":545,"config":546},"教育",{"href":547,"dataGaName":548,"dataGaLocation":460},"/ja-jp/solutions/education/","education",{"text":550,"config":551},"金融サービス",{"href":552,"dataGaName":553,"dataGaLocation":460},"/ja-jp/solutions/finance/","financial services",{"title":196,"links":555},[556,558,560,562,565,567,570,572,574,576,578,580,582],{"text":208,"config":557},{"href":210,"dataGaName":211,"dataGaLocation":460},{"text":213,"config":559},{"href":215,"dataGaName":216,"dataGaLocation":460},{"text":218,"config":561},{"href":220,"dataGaName":221,"dataGaLocation":460},{"text":223,"config":563},{"href":225,"dataGaName":564,"dataGaLocation":460},"docs",{"text":245,"config":566},{"href":247,"dataGaName":248},{"text":568,"config":569},"お客様の成功事例",{"href":242,"dataGaLocation":460},{"text":240,"config":571},{"href":242,"dataGaName":243,"dataGaLocation":460},{"text":250,"config":573},{"href":252,"dataGaName":253,"dataGaLocation":460},{"text":258,"config":575},{"href":260,"dataGaName":261,"dataGaLocation":460},{"text":263,"config":577},{"href":265,"dataGaName":266,"dataGaLocation":460},{"text":268,"config":579},{"href":270,"dataGaName":271,"dataGaLocation":460},{"text":273,"config":581},{"href":275,"dataGaName":276,"dataGaLocation":460},{"text":278,"config":583},{"href":280,"dataGaName":17,"dataGaLocation":460},{"title":585,"links":586},"Company",[587,589,591,593,595,597,599,603,608,610,612,614],{"text":302,"config":588},{"href":304,"dataGaName":297,"dataGaLocation":460},{"text":307,"config":590},{"href":309,"dataGaName":310,"dataGaLocation":460},{"text":315,"config":592},{"href":317,"dataGaName":318,"dataGaLocation":460},{"text":320,"config":594},{"href":322,"dataGaName":323,"dataGaLocation":460},{"text":325,"config":596},{"href":327,"dataGaName":328,"dataGaLocation":460},{"text":330,"config":598},{"href":332,"dataGaName":333,"dataGaLocation":460},{"text":600,"config":601},"Sustainability",{"href":602,"dataGaName":600,"dataGaLocation":460},"/sustainability/",{"text":604,"config":605},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":606,"dataGaName":607,"dataGaLocation":460},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":335,"config":609},{"href":337,"dataGaName":338,"dataGaLocation":460},{"text":345,"config":611},{"href":347,"dataGaName":348,"dataGaLocation":460},{"text":350,"config":613},{"href":352,"dataGaName":353,"dataGaLocation":460},{"text":615,"config":616},"現代奴隷制の透明性に関する声明",{"href":617,"dataGaName":618,"dataGaLocation":460},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":59,"links":620},[621,623,628,630,635,640,645],{"text":59,"config":622},{"href":61,"dataGaName":62,"dataGaLocation":460},{"text":624,"config":625},"サポートを受ける",{"href":626,"dataGaName":627,"dataGaLocation":460},"/support/","get help",{"text":368,"config":629},{"href":370,"dataGaName":371,"dataGaLocation":460},{"text":631,"config":632},"ステータス",{"href":633,"dataGaName":634,"dataGaLocation":460},"https://status.gitlab.com/","status",{"text":636,"config":637},"利用規約",{"href":638,"dataGaName":639,"dataGaLocation":460},"/terms/","terms of use",{"text":641,"config":642},"プライバシーに関する声明",{"href":643,"dataGaName":644,"dataGaLocation":460},"/ja-jp/privacy/","privacy statement",{"text":646,"config":647},"Cookieの設定",{"dataGaName":648,"dataGaLocation":460,"id":649,"isOneTrustButton":12},"cookie preferences","ot-sdk-btn",{"items":651},[652,654,656],{"text":636,"config":653},{"href":638,"dataGaName":639,"dataGaLocation":460},{"text":641,"config":655},{"href":643,"dataGaName":644,"dataGaLocation":460},{"text":646,"config":657},{"dataGaName":648,"dataGaLocation":460,"id":649,"isOneTrustButton":12},[659,672],{"id":660,"title":27,"body":9,"config":661,"content":663,"description":9,"extension":31,"meta":667,"navigation":12,"path":668,"seo":669,"stem":670,"__hash__":671},"blogAuthors/en-us/blog/authors/tsukasa-komatsubara.yml",{"template":662},"BlogAuthor",{"name":27,"config":664},{"headshot":665,"ctfId":666},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659784/Blog/Author%20Headshots/gitlab_tsukasa.jpg","31YQLiBRrJPn35BBhY69ly",{},"/en-us/blog/authors/tsukasa-komatsubara",{},"en-us/blog/authors/tsukasa-komatsubara","O5IhL3DQ7MAo8yzVzaeGvidF81OrGBrv7DgR3C9ySBc",{"id":673,"title":674,"body":9,"config":675,"content":677,"description":9,"extension":31,"meta":680,"navigation":12,"path":681,"seo":682,"stem":683,"__hash__":684},"blogAuthors/en-us/blog/authors/issei-hamada-sony-biz-networks-corporation.yml","Issei Hamada Sony Biz Networks Corporation",{"template":662,"gitlabHandle":676},"https://gitlab.com/issei-hamada",{"config":678,"name":28},{"headshot":679},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1760414048/buvcowublhq36ongtzbx.png",{},"/en-us/blog/authors/issei-hamada-sony-biz-networks-corporation",{},"en-us/blog/authors/issei-hamada-sony-biz-networks-corporation","25f53KYYX9JQ20bcj6IUFir2T0KOIPcMehhE6OTkA9A",[686,704,719],{"content":687,"config":702},{"heroImage":688,"body":689,"authors":690,"updatedDate":692,"date":693,"title":694,"tags":695,"description":701,"category":10},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1770082992/ll61ekf2lcgogkgay69j.jpg","*2026年2月5日追記：本文内に東レ様の事例を追加しました。*\n\n2025年11月に開催した年次イベント「GitLab Epic Tour Japan 2025」の模様をお伝えします。\n\n> 【期間限定！動画で見る】GitLab Epic Tour Japan 2025 オンデマンド配信は[こちら](https://www.event-site.info/gitlab-epic-conference-japan-2025/?r=eventreport)\n\nGitLabは2025年11月28日、都内で年次イベントで「GitLab Epic Tour Japan 2025 〜AI駆動ソフトウェア開発の攻めと守り〜」を開催しました。生成AIの登場により、ソフトウェア開発の現場は大きな変化にさらされることになりました。コード生成AIを活用して生産性向上を狙う「攻め」については、すでに多くの開発者が取り組んでいます。一方、AIが生成したコードの脆弱性をどうすべきかという「守り」の重要性が、かつてないほど高まっています。この日のイベントでは、AI時代の開発プラットフォームのあり方、そして日本企業が直面する課題への具体的な処方箋を示しました。本稿では、主要セッションの内容を中心に、イベントの全容をレポートします。\n\n## **「DevSecOps認知度30%」の数年後に、AI Native時代がやってきた**\n\n![「DevSecOps認知度30%」の数年後に、AI Native時代がやってきた](https://res.cloudinary.com/about-gitlab-com/image/upload/v1770083035/sp4llxhmbx2kcawgexyp.jpg \"GitLab合同会社 Japan Country Manager 小澤 正治\")\n\nオープニングセッションでは、GitLab Japan Country manager小澤 正治がご挨拶させていただきました。小澤は2年半前の入社当時を振り返り、次のように語ります。\n\n「当時、経済産業省のレポートを読むと、国内の[DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/)の認知度はわずか30%でした。正直、どうしようかと震えていたのですが、状況は大きく変わりました。この変化にワクワクしています」\n\nこの2年半で、GitLab自身も大きく進化しました。当時は単に「[DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/) Platform」でしたが、AI要素を付加した「AI Powered」が枕詞になりました。そして現在は、「AI Native [DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/) Platform」です。つまり、GitLabそのものがAIを中核に据えたプラットフォームへと成長したと言えます。\n\n![「DevSecOps認知度30%」の数年後に、AI Native時代がやってきた](https://res.cloudinary.com/about-gitlab-com/image/upload/v1770083037/z1vvb6yuqznqlpe9nukf.jpg \"GitLab合同会社 Staff Regional Marketing Manager 川口 修平\")\n\n続いて登壇したStaff Regional Marketing Manager 川口 修平は、AI導入により開発者1人あたり年間120万円相当の工数を削減でき、その結果として日本の経済効果が約1兆6000億円に上るという試算を[紹介](https://japanese-developer-survey.about.gitlab-review.app/ja-jp/developer-survey/japan/)。ただし、AI活用に立ちはだかる困難を、「3つの壁」として提示しました。\n\nまずは、技術的負債の壁。レガシーコードやドキュメント不足が、AIのコンテキスト理解を妨げています。続いて、セキュリティリスクの壁。 AI生成コードの約45%に脆弱性が含まれるというデータがあり、インシデントを防ぐ防災に加えて、被害を最小限にする減災の考え方も不可欠になります。最後に、人材の壁。エンジニアの役割はコードを書くことから、AIの成果物が正しいかどうかを評価することへシフトします。\n\nこれらの課題を解決するカギになるのが、[GitLab Duo Agent Platform](https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/)（以下、DAP）です。開発サイクル上のすべての情報を単一データストアへと集約することで、AIがコンテキストを深く理解し、精度が高く、かつ自律的な支援が可能になります。\n\n## **「Prompt to Production」の危険性と、自律型AIエージェントの未来**\n\n![「Prompt to Production」の危険性と、自律型AIエージェントの未来](https://res.cloudinary.com/about-gitlab-com/image/upload/v1770083038/ydpympgpv51g0tncpw7j.jpg \"GitLab CTO Asia Pacific & Japan Andrew Haschka\")\n\n続いて登壇したGitLab CTO Asia Pacific & Japan Andrew Haschka氏は、アジア太平洋地域のリーダーたちとの対話から得た知見をに基づき、AI活用の次のステージについて語りました。\n\nHaschkaは、「AIを正しく機能させるためには、開発の全工程を網羅した“信頼できる唯一の情報源”が不可欠です」と強調します。現在、多くの企業は開発現場にAIを導入していますが、その用途は「AIコーディング」に偏りすぎています。しかしながら、計画、テスト、セキュリティといった周辺プロセスにも、AIによる最適化の余地があるのです。\n\n「私は、ガバナンスがない状態で、バラバラのAIツールを使うことをPrompt to Productionと呼び、危険視しています。テストやセキュリティチェックをスキップし、プロンプトの結果をいきなり本番環境へ反映してしまうリスクがあるためです」（Haschka）\n\nこの問題を解決するのが、[DAP](https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/)と[Agentic Flows](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/)。人間がAIに質問して答えを得るチャットボット形式とは一線を画す概念で、1人の人間が多数のAIエージェントを指揮します。すると、エージェント同士が連携し、計画から実装、テストまでを自律的な流れとして実行することになります。\n\nHaschkaは、「GitLabのAIエージェントは、組織のポリシーというガードレールの下で動きます。だからこそ、リスクを最小限に抑えながらイノベーションを加速できるのです」と話します。「AIは、開発者のためにコードを書いてくれるだけでなく、チームメンバーとして一緒に働いてくれる存在になります」。\n\nAIツールをバラバラに使う段階は終わりました。すでに、統合プラットフォーム上でAIを“良き同僚”として迎え入れる環境は整っています。\n\n## **3つの壁を突破する具体的アプローチ**\n\n![3つの壁を突破する具体的アプローチ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1770083038/gazgh2phoxeiglbzsutt.jpg \"GitLab合同会社 ソリューションアーキテクト 本部長 藤田 周\")\n\n続いて、ソリューションアーキテクト 本部長 藤田 周が登壇しました。藤田は、オープニングで提示された3つの壁に対する、より実践的で技術的な解決策を深掘りしました。\n\n技術的負債の壁は、リアーキテクチャで乗り越えます。古いシステムを単にクラウドに乗せ換える「リホスト」や、すべてを作り直す「リビルド」は、コストの面でも効果の面で現実的にならないケースが目につきます。そこで藤田は、生成AIを活用した「リアーキテクチャ」を提唱します。\n\n具体的には、まずレガシーコードをAIに読み込ませ、人間にとってもAIにとっても理解しやすい「マークダウン形式の設計書」を出力。ブラックボックス化した仕様を可視化した上で、モダンなコードとテストケースをAIに生成させるというアプローチを取ります。これにより、手のつけられなかった旧来のシステムが、最新のアーキテクチャ上で以前と同様の機能を提供してくれるようになります。\n\nセキュリティリスクの壁は、スピードがカギを握ることになります。巷間、「脆弱性が公開されてから攻撃が始まるまで、わずか15分」という数字が語られていますが、これは現実です。攻撃を受けてから人間が会議を開き、パッチ適用の計画を立てている間に、攻撃者はすでに侵入を開始しているのです。\n\n藤田はデモを通じて、GitLabの[Security Analyst Agent](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/agents/foundational_agents/security_analyst_agent/)がこのスピードに対抗できることを示しました。AIエージェントが膨大な脆弱性情報の中から誤検知を取り除き、自動で対応すべき優先順位を付け、さらに修正コードまで作成してくれます。人間はAIの提案を確認してマージボタンを押すだけです。藤田は、「精神論や手動チェックではもう守りきれないのです」と語りました。\n\n人材の壁をクリアする第一歩は、伴走支援のエコシステムを構成することです。エンジニアに求められるスキルセットが変化する中、何らかのツールを導入したり、担当者のスキルアップを図るだけでは、解決策になりません。藤田氏は、専門性の高いパートナー企業による伴走支援の重要性について話し、GitLabをプラットフォームとして開発プロセスを最適化すると同時に、優れたパートナー企業をプロセスに取り込み、さらに組織変革をセットで進めます。その際に、パートナー企業が組織変革についてもサポートしてくれれば理想でしょう。\n\n藤田は講演の中で、[DAP](https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/)による開発の自律化についても紹介しました。AIが先回りして動いてくれる一例が「Issue to MR」です。AIがイシューを読み、計画を立て、コードを書き、マージリクエストまで作成します。また、人間がレビューする前にAIがセキュリティや規約チェックを行う機能により、人間の負荷を劇的に下げることができます。これら一連の仕組みは、プロジェクト全体のコンテキストをAIが理解することで支えられています。\n\n## **4社の最新事例発表も実施**\n\n![4社の最新事例発表も実施](https://res.cloudinary.com/about-gitlab-com/image/upload/v1770083239/nilg9jbd5b6p6epbybqw.jpg \"お客様の講演\")\n\nこの日のイベントでは、ピクシブ株式会社様、東レ株式会社様、日立グループ様（株式会社日立プラントサービス様、株式会社日立システムズ様）、株式会社みんなの銀行様（登壇順）の4社のユーザー企業様がご登壇され、それぞれの挑戦についてご共有いただきました。各社の取り組みについては、以下のリンクよりご覧ください。\n\n・[株式会社みんなの銀行様](https://about.gitlab.com/ja-jp/blog/epic-tokyo-2025-minna-no-ginko/)\n\n・[東レ株式会社様](https://about.gitlab.com/ja-jp/blog/epic-tokyo-2025-toray/)　**NEW！**\n\n・[ピクシブ株式会社様](https://about.gitlab.com/ja-jp/blog/epic-tokyo-2025-pixiv/)  **NEW!**\n\n・日立グループ様（株式会社日立プラントサービス様、株式会社日立システムズ様）**（近日公開予定）**\n\n## **次は1年後。きっと大きな変化が起きているはず**\n\n![次は1年後。きっと大きな変化が起きているはず](https://res.cloudinary.com/about-gitlab-com/image/upload/v1770083054/p39lvxa768ifqlezd4jw.jpg \"会場の様子\")\n\nクロージングセッションに再登壇した小澤は、部分最適の罠について強調しました。AIを活用することで特定の作業やプロセスが高速化したとしても、それが故に別の場所にボトルネックが生まれることになっては意味がありません。全体最適を目指すことが大切で、そのためにGitLabが持つシングルデータストアという基盤が効いてくることになります。\n\nさらに、GitLabが講演した内容と発表された事例を総括し、「かつてDevOpsはSecurityを加えて[DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/)になりました。それがいまや完全に[DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/)として一体のものとして認識されています。その上で、AI活用が進んでいるのです」と話します。GitLabのAI Native DevSecOpsも、テクノロジーの通過点であり、さらに最適化された未来が待っているのでしょう。\n\n2026年の秋にもまた、GitLabは「Epic Tour Japan」を実施します。\n\n小澤は、「1年先は近いようで遠いです。いまはまだ読めない変化が起きているはずです。しかし、GitLabも世の中のニーズに合わせて柔軟に進化していきます。来年のこのイベントで、これから生まれる新しい事例を皆様にお伝えできることにワクワクしています」と結び、今年のEpic Tourは盛況のうちに幕を閉じました。",[691],"GitLab Japan Team","2026-02-17","2026-02-03","AI駆動ソフトウェア開発の攻めと守り【GitLab Epic Tour Japan 2025レポート】",[696,697,698,699,700],"AI/ML","customers","DevSecOps","security","user stories","2025年11月に開催した年次イベント「GitLab Epic Tour Japan 2025」の模様をご紹介。",{"featured":12,"template":13,"slug":703},"event-report-epic-tokyo-2025",{"content":705,"config":717},{"heroImage":706,"body":707,"authors":708,"updatedDate":710,"date":711,"title":712,"tags":713,"description":716,"category":10},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1766026372/vmnafxuxmxwzevccjzjz.jpg","***編集部注：私たちは時折、パートナーコミュニティのメンバーにGitLabブログへの寄稿をお願いしています。今回は、サイオステクノロジー株式会社の西下容史氏に寄稿いただきました。***\\\n\\\n***当ブログは、GitLabを運用されている方を対象にしています。開発の中核を担うGitLabは、何らかの障害（例えばサーバーの停止やGitLab自体の停止など）が原因で止まってしまうと、開発業務に大きな影響が出てしまいます。このためGitLabには「止まらない仕組み」が求められています。***\\\n***このブログでは、GitLabの止まらない仕組みを、直感的なGUIが用意されたHAクラスター製品による冗長化構成で実現する方法が紹介されています。***\n\n## **開発を止めないために：GitLabの冗長化を考える**\n\n### GitLabの停止が開発チームに与える影響\n\nGitLabをSelf-Managed版で運用されている企業のインフラ担当者やDevOpsエンジニアの皆さん、GitLabの可用性について不安を感じたことはありませんか？\n\n特に金融系・公共系企業では、セキュリティやコンプライアンスの観点から自社環境でGitLabを運用するケースが増えています。しかし、GitLabが障害で停止してしまうと、開発チーム全体の業務が止まり、システムやサービスのリリースに遅れが発生するなど、ビジネスへの影響は計り知れません。\n\nバージョン管理、CI/CD、課題管理といった開発の中核を担うGitLabだからこそ、「止まらない仕組み」が求められています。\n\n### HAクラスター構成による高可用性の実現\n\nこのような課題に対する有効な解決策が、HAクラスター構成によるGitLabの冗長化です。稼働系と待機系のノードを用意し、障害発生時には自動的に切り替えることで、最小限のダウンタイムでサービスを継続できます。\n\n本記事では、世界で9万ライセンス以上の導入実績を持つHAクラスター製品「LifeKeeper for Linux」を使用した、GitLabの冗長化構成を具体的にご紹介します。Amazon EC2環境でのAZ跨ぎ構成を例に、データ共有の仕組み、障害監視とフェイルオーバーの自動化、そして直感的なGUI操作による管理方法まで、実際の検証結果に基づいて解説していきます。\n\n開発を止めないインフラ基盤の構築を検討されている方は、ぜひ最後までお読みください。\n\n## GitLabとは：開発基盤に求められる高可用性\n\nGitLabは、分散型バージョン管理システムの「Git」を利用したDevSecOpsプラットフォームであり、世界中で多くの企業に採用されています。ファイルのバージョン管理、課題管理、CI/CDパイプラインなど、ソフトウェア開発に必要な機能を統合的に提供します。\n\n## GitLabが停止したときの影響\n\n### GitLab停止時の影響範囲\n\nGitLabが停止すると、以下のような影響が即座に発生します：\n\n\\- **開発作業の停止**: コードのプッシュ・プル、マージリクエストのレビューができなくなる\n\n* **CI/CDの停止**: ビルド、テスト、デプロイといった自動化ワークフローが機能しなくなる\n* **コラボレーションの遮断**: 課題管理やプロジェクト管理機能が使えず、チーム間の連携が途絶える\n* **緊急対応の不可**: 本番環境のバグフィックスやセキュリティパッチ適用ができない\n\n停止時間が数時間に及べば開発計画が大幅に狂い、1日以上の停止は経営層への報告事項となる深刻なビジネスインパクトをもたらします。\n\n### Self-Managed版GitLabにおける冗長化の必要性\n\nGitLabには、SaaS版とSelf-Managed版の2つが提供されています。Self-Managed版は自社で用意した環境（IaaSやオンプレミス）にセットアップして利用するため、可用性の担保は利用者側の責任となります。\n\n特に開発チームの規模が大きい場合や、ミッションクリティカルなシステム開発を行っている場合は、障害発生を前提とした冗長化構成が不可欠です。予め待機系ノードを用意しておき、障害発生時には自動的に稼働系から待機系に切り替えることで、最小限のダウンタイムでの復旧が実現できます。\n\n## 冗長化を実現する技術要素\n\nGitLabの停止リスクに対する有効な解決策が、HAクラスター構成による冗長化です。ここでは、高可用性を実現するための技術要素と、その中核を担う「LifeKeeper for Linux」について解説します。\n\n### HAクラスター構成の基本的な考え方\n\nHAクラスター構成では、稼働系（Active）と待機系（Standby）の2つのノードを用意します。通常時は稼働系でGitLabが動作し、障害が発生した際には自動的に待機系へ切り替わることで、サービスの継続性を確保します。\n\nこの仕組みにより、ハードウェア障害やソフトウェア障害が発生しても、数分程度のダウンタイムでGitLabを復旧できます。重要なのは、待機系が常にスタンバイ状態にあり、稼働系のデータをリアルタイムで同期していることです。これにより、切り替え時にもデータの一貫性が保たれ、開発者は障害発生前とほぼ同じ状態で作業を継続できます。\n\n### LifeKeeper for Linuxとは\n\nLifeKeeper for Linuxは、サイオステクノロジーが提供するHAクラスター製品で、全世界で9万ライセンス以上の導入実績を持つ信頼性の高いソリューションです。Linux環境におけるアプリケーションの高可用性を実現するために設計されており、GitLabのような重要なDevSecOpsプラットフォームの保護に最適です。\n\nLifeKeeperの大きな特徴は、アプリケーションレベルでの可用性担保を実現できる点です。単にサーバーの冗長化を行うだけでなく、GitLabというアプリケーション自体を監視し、異常を検知した際には自動的にフェイルオーバーを実行します。\n\n### 冗長化構成を支える3つの技術要素\n\nLifeKeeperによる冗長化構成は、以下の3つの技術要素で構成されています。\n\n#### 1. データ同期とレプリケーション\n\nLifeKeeperの製品ラインナップである「DataKeeper」は、ローカルディスク（Amazon EC2環境ではEBS）をブロックレベルでリアルタイム同期します。これにより、共有ストレージを使用せずに論理的な共有ディスクを実現できます。稼働系で発生したデータの変更は即座に待機系へ反映されるため、フェイルオーバー時にもデータの整合性が保たれます。\n\n#### 2. 多層的な障害監視\n\nLifeKeeperは2種類の障害監視を並行して実行します。1つ目は、クラスターノード間の相互ハートビート通信によるノード自体の障害監視です。2つ目は、稼働系で動作するGitLabなどのソフトウェアの障害監視です。この多層的な監視により、ハードウェア障害とソフトウェア障害の両方を確実に検知できます。\n\n#### 3. 自動フェイルオーバー機能\n\n障害を検知すると、LifeKeeperは自動的にフェイルオーバーを実行します。待機系ノードでGitLabを起動し、アクセス経路を切り替えることで、サービスを継続します。この一連のプロセスは自動化されているため、深夜や休日に障害が発生した場合でも、管理者の手動介入なしに復旧が完了します。\n\n### 自動フェイルオーバーがもたらすメリット\n\n自動フェイルオーバーの最大のメリットは、復旧時間の短縮です。手動での復旧作業では、障害の検知、原因の特定、復旧手順の実行に多くの時間がかかりますが、自動フェイルオーバーであれば数分以内に復旧が完了します。\\\nまた、人的ミスのリスクも排除できます。緊急時の手動作業では、手順の誤りや設定ミスが発生しがちですが、事前に設定された自動プロセスであれば、確実かつ一貫した復旧が可能です。\\\nさらに、24時間365日の監視体制を人的リソースだけで維持するのは困難ですが、自動フェイルオーバーがあれば、深夜や休日でもシステムが自律的に障害対応を行います。これにより、運用担当者の負担を大幅に軽減できます。\n\n### クラウド環境での冗長化にも対応\n\nLifeKeeperは、Amazon EC2などのクラウド環境での冗長化にも対応しています。標準機能として「Recovery Kit for Route53」や「Recovery Kit for EC2」が提供されており、クラウド特有のネットワーク構成にも柔軟に対応できます。これにより、オンプレミス環境だけでなく、IaaSを利用したSelf-Managed版GitLabの冗長化も実現可能です。\n\n## GitLabのHAクラスター構成\n\nそれでは、LifeKeeper for Linuxを使ってどのようにGitLabを冗長化するのかを見てみましょう。\n\n今回当社では、Amazon EC2環境でAZを跨いだ冗長化構成を検証しました。下記の図は検証構成の概念図です。\n\n![GitLabのHAクラスター構成](https://res.cloudinary.com/about-gitlab-com/image/upload/v1767660747/qdiodwqpg0bgjreswrnf.jpg)\n\n管理クライアントからはRoute53による名前解決でActive側のクラスターノードへのアクセスを実現しています。LifeKeeper for Linuxの標準機能の「Recovery Kit for EC2」を使うことで、スクリプト開発を行わずにGUI上でクラスターのアクセス制御を容易に設定できます。\\\n\\[参考]\\\n今回の検証ではElastic IPによる制御による名前解決を使用しましたが、LifeKeeperは製品の標準機能で下記の方式に対応しています。\\\n[→『LifeKeeper』によるAmazon EC2の冗長化構成の例](https://bccs.sios.jp/usecases/aws.html)\n\n* Recovery Kit for Route53：Route53の名前解決およびクラスターの切り替わり時にAレコードを書き換えて、名前解決した実IPに向けて通信する方式  \n* Recovery Kit for EC2：\n\n\n  - Elastic IPをActiveノードのENIに割り当てることで、外部からActiveノードへの接続を可能にする方式\n  \n  - CIDRの外を指す仮想IPに向けて通信し、クラスターの切り替わり時にルートテーブルの送信先が仮想IPのターゲットを書き換えて通信する方式\n\n\n### データ共有\n\n前述の通り、クラスターノード間のデータ共有には「DataKeeper」を使用しています。本検証では、EBSをブロックレベルでリアルタイム同期することで、論理的な共有ディスクを実現しました。\n\n## 障害監視とフェイルオーバー\n\nLifeKeeperは下記の2種類の障害監視を並行して行っており、障害が検知されると自動的に待機系に切り替え（フェイルオーバー）て復旧を実現します。\n\n1. 相互のハートビート通信によるノードの障害の監視  \n2. Active側の監視対象のソフトウェアの障害の監視\n\n上記の2.については、今回の検証ではQSP（Quick Service Protection）という機能を使っています。QSPはserviceのstatus/stop/startを使って簡易的にソフトウェアを監視や切り替えて保護できる機能です。\\\n\\[参考]\\\n今回の検証ではソフトウェアの保護にQSPを使用しましたが、LifeKeeperは他に下記の2つの方式に対応しています。\n\n* Application Recovery Kit：SIOSが開発した制御スクリプトのラインナップを使う方式  \n* Generic ARK：ユーザーが開発した制御スクリプトをLifeKeeperに組み込んで使う方式\n\n## 直感的な操作を実現するWebGUI\n\nLifeKeeperには直感的な操作を実現するWebGUIが標準機能として提供されています。GitLabのプログラムやファイルシステムなど、各保護対象をクラスターリソースとして登録し、依存関係（起動や停止させる時に他のクラスターリソースを道連れにするかしないか）もツリー構造で直感的かつ効率的に設定できます。\n\n＜クラスターの切り替え前＞\n\n![直感的な操作を実現するWebGUI - クラスターの切り替え前](https://res.cloudinary.com/about-gitlab-com/image/upload/v1767661178/riengalkhmlzhdy1dx4r.jpg)\n\n＜クラスターの切り替え後＞\n\n![直感的な操作を実現するWebGUI - クラスターの切り替え後](https://res.cloudinary.com/about-gitlab-com/image/upload/v1767661364/fo4sjpey107bgsztwijp.jpg)\n\n手順の詳細はぜひ検証レポートをご覧ください。下記からダウンロード頂けます。\n\nhttps://mk.sios.jp/lifekeeper-gitlab-report_l\n\n## まとめとHAクラスター製品「LifeKeeper」について\n\nここまでご覧頂きました通り、開発の中核を担うGitLabには「止まらない仕組み」が求められています。このためには、GitLabの障害を自動的に検知・復旧し、安定した運用が求められます。こうした冗長化構成を、直感的なWebのGUI上で容易に構築できるのが「LifeKeeper」なのです。\n\n「LifeKeeper」は、サイオステクノロジーが提供する全世界で9万ライセンス以上の導入実績があるHAクラスター製品です。「LifeKeeper」を導入することで、アプリケーションレベルでの可用性担保の実現に加えて、データレプリケーション製品の「DataKeeper」と組み合わせることで共有ストレージを使用せずクラウド上でシステムを冗長化させ、システム全体の可用性が高められます。\\\n詳細情報は、\u003Chttps://bccs.sios.jp/lifekeeper/> をご覧ください。\n\n> ### *サイオステクノロジーについて*\n>\n> *サイオステクノロジーは、Linuxに代表されるオープンソースソフトウェアを活用したシステムインテグレーションを原点とし、自社開発ソフトウェアおよびSaaSの販売とサービスを行っています。直近では、クラウドをはじめとするDXの技術領域に注力し、AIの活用支援や次世代を支える製品とサービスを提供しています。これからも革新的なソフトウェア技術を追求し、世界のIT産業に影響力のある存在となって価値を創造し、社会の発展に貢献してまいります。*\\\n> *詳細情報は、\u003Chttps://sios.jp> をご覧ください。*",[27,709],"Hiroshi Nishishita, SIOS Technology, Inc.","2026-01-07","2025-12-19","GitLabを少ない工数で冗長化して安定運用を実現する ～HAクラスターソフトウェア「LifeKeeper」による冗長化～",[714,20,17,715],"cloud native","production","この記事では、GitLabの止まらない仕組みを、直感的なGUIが用意されたHAクラスター製品による冗長化構成で実現する方法をご紹介します。",{"featured":36,"template":13,"slug":718},"gitlab-high-availability-with-lifekeeper-hacluster",{"content":720,"config":729},{"category":10,"body":721,"date":722,"authors":723,"heroImage":724,"title":725,"description":726,"tags":727},"GitLabは2025年10月、パシフィコ横浜で開催された「Gartner IT Symposium/Xpo™ 2025」に出展しました。初日のセッションでは、オリンパス株式会社R&Dセンターオブ ソフトウエアエクセレンス グローバルバイスプレジデント 児玉 達弘氏をお招きし、社 内のGitLab浸透とAI活用についてインタビュー形式でお話しいただきました。聞き手は当社カントリーマネージャー 小澤 正治が務めました。本記事では、その模様をお伝えします。 \n\n## AI導入を他業界より慎重に進めていたことが、むしろチャンスにつながった\n\n![AI導入を他業界より慎重に進めていたことが、むしろチャンスにつながった](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765783041/pm0s0p6gfethidu8yb9k.jpg)\n\n*オリンパス株式会社 R&Dセンターオブソフトウエアエクセレンス グ ローバルバイスプレジデント 児玉 達弘氏*\n\n児玉氏は、モバイル業界や自動車業界で様々な開発をリードし、現在はオリンパスのグローバルなソフトウエア開発をリードする立場です。同社のグローバル拠点は約40あり、各国・地域で医療機器業界に特有の厳格な法規制を遵守して開発を進める必要があります。\n\nこういった厳しい規制により、医療機器業界は新しい技術を採用するにあたって他業界より慎重に対応しながら、時間をかけて導入をする必要があります。ソフトウエア開発におけるAI活用でも同様です。しかし、児玉氏は「AIでは、こういった状況がむしろチャンスにつながりました」と話します。\n\n![図：オリンパスにおけるAI活用](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765975635/m7lyrb00rw0zd0owaz6d.jpg)\n\n*図：オリンパスにおけるAI活用*\n\n現在は、同社R&Dのオペレーション領域をイノベーション、製品・サービス、R&D 開発支援、および業務効率改善という4つに切り分けてAI活用を加速。児玉氏のリードするR&D組織における開発支援では自社開発AIと市場にあるAI製品の双方を活用しています。児玉氏は、「社内でのAIへの注目度は高まっています。いまはトライ・アンド・エラーで進めています」と語ります。では、AIの採用が時間がかかったことが、なぜ同社にとってチャンスになるのでしょう。\n\n## グローバル標準開発基盤とAIをセットで導入\n\n![グローバル標準開発基盤とAIをセットで導入](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765783041/bqhgg6aiar7a1zejrfza.jpg)\n\n*左からオリンパス株式会社 R&Dセンターオブソフトウエアエクセレンス グ ローバルバイスプレジデント 児玉 達弘氏、GitLab合同会社 Japan Country Manager 小澤 正治*\n\nオリンパスが最初に取り組んだのは、開発基盤の標準化です。開発のグローバル化が進む中、各国・地域で異なる開発基盤を運用していたため、コードやナレッジの共有が困難な状況にあり、その抜本的な改革が求められていました。標準開発基盤を導入することで、これらのアセットを容易に共有できるようになり、同時に重複するライセンスコストを削減できるというメリットもあります。\n\n児玉氏は、「生産性の高い開発基盤を利用できれば、優秀なエンジニアの確保にもつながります。これまでは、業界特有の法規制で身動きが取りづらく、実際に他業界と比べると遅れていましたが、一気に追いつきたいのです」と語ります。 \n\nそれに対して、小澤は「AIコーディングは数年前からエンジニアの生産性を高められるレベルに達したと話題になっていますが、AIコーディングそのものではなく、開発基盤を見直してその上でAIを活用するという思考に至った経緯はどこにあるのでしょう」と問いかけます。\n\n児玉氏によると、最も優先した事項は、世界中のエンジニアが同じ環境で開発できる基盤を整えることです。アセットやナレッジをスムーズに共有し、開発全体の効率性を高めるという命題がありました。実際に、力点を置いたのはそこなのですが、ちょうど同社が開発基盤の整備を進めていたタイミングで、AIツールが急速に普及しだしたという背景があります。 \n\n「これが極めて好都合だったのです。統一された基盤の上でAIを活用できるため、コーディングの生産性をさらに高めるための準備を一気に整えることができました。各国の医療法規制に対応することができ、さらにAI-Readyなグローバル標準開発基盤になります」（児玉氏） \n\n## インフラ専属チームを基盤にしたグローバルな開発組織へ\n\n![インフラ専属チームを基盤にしたグローバルな開発組織へ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765783040/x48rxcdt7z7tpwpre8av.jpg)\n\n*左からオリンパス株式会社 R&Dセンターオブソフトウエアエクセレンス グ ローバルバイスプレジデント 児玉 達弘氏、GitLab合同会社 Japan Country Manager 小澤 正治*\n\n![図：3つの変革](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765805070/hd02ebw61fp0gwn78d0r.jpg)\n\n*図：3つの変革*\n\n開発基盤の刷新と同時に、組織変革も進めました。全世界の組織がかかわるため、さまざまな声が上がってくるものですが、まずはビジョンを示し、ロードマップを含めて丁寧に説明。ボトムアップ型の提案を受け入れながら、目指す世界観を共有して進めています。 \n\n児玉氏は「日本の組織は、インフラを重視しない傾向がありますよね（笑）。一方、欧米企業はインフラを非常に重視しています。私は欧米企業で働いた経験もあり、そういった思考を取り入れました。インフラ専任チームを主体とし、プラットフォームエンジニアリングに加えて、他の先進技術の組織を傘下に持つグローバル組織へと再編したのです。\n\n開発基盤の標準化は、オフショアパートナーの担当者からも好評でした。プラットフォームが統一されている方が働きやすいという評価です。「セキュリティおよびコンプライアンス面でも標準化した方が優れています。環境がバラバラなら1つずつ見なければなりませんが、環境が1つであれば、点で見れば、おおよそ全体を網羅することができますから」（児玉氏） \n\n## 開発基盤と親和性の高いAIを採用\n\n![開発基盤と親和性の高いAIを採用](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765783038/hjimih3bw6v1jh5dfj1f.jpg)\n\n*GitLab合同会社 Japan Country Manager 小澤 正治*\n\nそして、開発基盤上にAIを導入しました。[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)です。これにより、開発プロセスの生産性の向上、コーディングの効率化推進、および各開発拠点の生産性格差の是正を図ります。現在は、各国・地域でパイロット・プロジェクトを立ち上げながら、徐々に浸透させている段階です。 \n\n児玉氏は、「現場の担当者が実際に使ってみて、“すばらしい！”という声が出てくると、周りの部署は“いつから使えるの？”となります。興味のあるエンジニアにどんどん使ってもらうと、自然に皆の心が動いていくものです。すでに、基本的にはGitLabを使ってもらえる流れになっています」と話します。 \n\n小澤は、「安全性が強く求められ、規制の強い業界ですから、AI導入へのハードルは高かったのではありませんか」と問いかけます。\n\n> **なぜオリンパスはグローバル標準のAIとしてGitLab Duoを採用したのか** \n>\n> 開発基盤であるGitLabとの「親和性の高さ」が第一の理由です。GitLabと一体化した製品として設計されているため、開発者は作業の流れを止めることなく、自然な形でAIのサポートを受けられます。次に、セキュリティを最重要視する医療機器メーカーの 必須条件である「オンプレミス環境への対応」です。GitLab Duoなら管理された社内 環境で優れたAI機能を利用できます。最後に、「データの安全性」。GitLabが開発 コードなどの機密情報をAIの学習に利用しないことが契約書に明記されており、情報 漏洩のリスクなく安心して使えることが大きな決め手になりました。 \n\n## 近い将来、エンジニアにはより一層のヒューマンスキルが求められる\n\n![近い将来、エンジニアにはより一層のヒューマンスキルが求められる](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765783040/dpzfx1lwihqolr0tbvaa.jpg)\n\n*オリンパス株式会社 R&Dセンターオブソフトウエアエクセレンス グ ローバルバイスプレジデント 児玉 達弘氏*\n\n児玉氏は今後も、[GitLabのカスタマーサクセス](https://about.gitlab.com/ja-jp/services/)チームとの連携を強化し、GitLabと[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)をオリンパスのグローバル標準開発基盤として、さらなる浸透を図ります。また、確実に進めていかなければならないのは、継続的に実施しなければならない法規制への対応です。児玉氏は、これらに加えて、新たな開発基盤を活用して仕事を進めるエンジニアの働き方を再定義する必要があると考えています。 \n\n実際に使ってみると、コーディング関連の作業はかなりAIにサポートしてもらえることがわかりました。そうなると、エンジニアの仕事は将来的に上流部分と成果物のチェックが主になります。人とAIの仕事の切り分けが進めば、「AIと一緒にどう働くのが効果的か」、「AIをどう働かせればいいのか」という命題に答えを出す必要が出てくるでしょう。\n\n児玉氏は、AIを活用して働く近い将来のエンジニア像について、次のように話してくれました。「AIは進化が非常に速いため、継続的に学び続ける意欲が不可欠です。その上で、AIだけでは解決できない複雑な問題に対応するための問題解決能力や、チームで協力して仕事を進めるコミュニケーション能力といったヒューマンスキルがより一層求められます。AIを正しく使い、AIに正しく行動させる倫理的な判断力も求められてくるのではないでしょうか」\n\n![](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765783046/imrebw0dspdmpap6ga2e.jpg)\n\n*ステージの様子*\n\n![＜ブースの様子＞](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765783042/rtkszppq4jriueqcrxx4.jpg)\n*ブースの様子*\n\n![ノベルティの水筒](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765783044/liwg8dkg1dlcxgu2co6b.jpg)\n*イベントで配られたノベルティ（水筒）*\n\n![ノベルティのステッカー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765783044/psnz3c5aqqk5kwxijrwa.jpg)\n*イベントで配られたノベルティ（ステッカー）*","2025-12-17",[691],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1765782992/oprjzjvey9xx4fvtdevb.jpg","GitLabとGitLab Duoをグローバル標準に、プラットフォーム・エンジニアリング領域で AI活用を加速するオリンパス【イベントレポート】","2025年10月に開催された「Gartner IT Symposium/Xpo™ 2025」の当社セッションにおいて、オリンパス株式会社R&Dセンターオブソフトウエアエクセレンスグローバルバイスプレジデント児玉達弘氏にご講演いただいた模様をお伝えします。",[696,728,697,698,276,700],"collaboration",{"featured":12,"template":13,"slug":730},"event-report-gartner-it-symposium-xpo-2025",{"promotions":732},[733,747,759],{"id":734,"categories":735,"header":737,"text":738,"button":739,"image":744},"ai-modernization",[736],"ai-ml","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":740,"config":741},"Get your AI maturity score",{"href":742,"dataGaName":743,"dataGaLocation":248},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":745},{"src":746},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":748,"categories":749,"header":751,"text":738,"button":752,"image":756},"devops-modernization",[750,10],"product","Are you just managing tools or shipping innovation?",{"text":753,"config":754},"Get your DevOps maturity score",{"href":755,"dataGaName":743,"dataGaLocation":248},"/assessments/devops-modernization-assessment/",{"config":757},{"src":758},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":760,"categories":761,"header":762,"text":738,"button":763,"image":767},"security-modernization",[699],"Are you trading speed for security?",{"text":764,"config":765},"Get your security maturity score",{"href":766,"dataGaName":743,"dataGaLocation":248},"/assessments/security-modernization-assessment/",{"config":768},{"src":769},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"header":771,"blurb":772,"button":773,"secondaryButton":777},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":54,"config":774},{"href":775,"dataGaName":57,"dataGaLocation":776},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":59,"config":778},{"href":61,"dataGaName":62,"dataGaLocation":776},1772652105765]