[{"data":1,"prerenderedAt":710},["ShallowReactive",2],{"/ja-jp/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab":3,"navigation-ja-jp":40,"banner-ja-jp":453,"footer-ja-jp":466,"Tim Rizzi":676,"footer-source-/ja-jp/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab/":689,"next-steps-ja-jp":695},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":29,"_id":33,"_type":34,"title":35,"_source":36,"_file":37,"_stem":38,"_extension":39},"/ja-jp/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab","blog",false,"",{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},"Amazon ECRからGitLabへのコンテナイメージ移行の自動化","プラットフォームチームがCI/CDをGitLabに移行する際、コンテナイメージの移行がボトルネックになってはなりません。このガイドでは、パイプライン移行を自動化する方法を詳しく解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663129/Blog/Hero%20Images/blog-image-template-1800x945__28_.png","https://about.gitlab.com/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Amazon ECRからGitLabへのコンテナイメージ移行の自動化\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2025-02-13\",\n      }",{"title":9,"description":10,"authors":17,"heroImage":11,"date":19,"body":20,"category":21,"tags":22},[18],"Tim Rizzi","2025-02-13","「Amazon Elastic Container\nRegistry（ECR）からGitLabに数百ものコンテナイメージを移行する必要があるのですが、手伝ってもらえますか？」これまでのプラットフォームエンジニアとの会話の中で、何度もこの質問が出てきました。彼らは、DevSecOpsツールチェーンをGitLabに統合してモダナイズしようとしていたものの、コンテナイメージの移行の箇所でつまずいていました。個々のイメージの移行は簡単でも、数が多すぎると、手作業で行うのは現実的ではありません。\n\n\nまさに、あるエンジニアは「やるべきことはわかっています。プルして、再タグ付けして、プッシュするだけです。しかし、マイクロサービスが200個もあり、それぞれに複数のタグがあります。インフラストラクチャ関連の重要な仕事が山積みの中、この移行作業に何週間も費やすわけにはいきません」と話していました。\n\n\n## 課題\n\n\nこの会話をきっかけに、プロセス全体を自動化できないかと考えました。[CI/CD](https://about.gitlab.com/ja-jp/topics/ci-cd/)をGitLabに移行する際、コンテナイメージの移行がボトルネックになってはなりません。手作業はシンプルですが、繰り返しが多すぎます。各イメージをプルし、再タグ付けし、GitLabのコンテナレジストリにプッシュする…これを数十のリポジトリ、各イメージの何百ものタグに対して行うとなると、数日から数週間かかる途方もない作業になります。\n\n\n## 解決策\n\n\nそこで、こういった大変な作業を自動処理するGitLabパイプラインの作成に取り掛かりました。目標はシンプルです。プラットフォームエンジニアが数分でセットアップできて、一晩放置すればすべてのイメージの移行が完了している、そんなツールを作ることでした。\n\n\n### アクセス権の設定\n\n\nまずはセキュリティです。チームが最小限のAWS権限でこの移行作業を実行できるようにすることを重視しました。以下の読み取り専用のアイデンティティおよびアクセス管理（IAM）ポリシーを用意しました。\n\n\n```json\n\n{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"ecr:GetAuthorizationToken\",\n                \"ecr:BatchCheckLayerAvailability\",\n                \"ecr:GetDownloadUrlForLayer\",\n                \"ecr:DescribeRepositories\",\n                \"ecr:ListImages\",\n                \"ecr:DescribeImages\",\n                \"ecr:BatchGetImage\"\n            ],\n            \"Resource\": \"*\"\n        }\n    ]\n}\n\n```\n\n\n### GitLabの設定\n\n\nセキュリティの次はGitLab側の設定です。最小限の構成で済むようにしました。CI/CD設定で以下の変数を設定します。\n\n\n```\n\nAWS_ACCOUNT_ID: AWSのアカウントID\n\nAWS_DEFAULT_REGION: ECRのリージョン\n\nAWS_ACCESS_KEY_ID: [マスク]\n\nAWS_SECRET_ACCESS_KEY: [マスク]\n\nBULK_MIGRATE: true\n\n```\n\n\n### 移行パイプライン\n\n\nここからが本番です。このパイプラインはDocker-in-Dockerを使って構築し、すべてのイメージ操作を安定して実行できるようにしました。\n\n\n```yaml\n\nimage: docker:20.10\n\nservices:\n  - docker:20.10-dind\n\nbefore_script:\n  - apk add --no-cache aws-cli jq\n  - aws sts get-caller-identity\n  - aws ecr get-login-password | docker login --username AWS --password-stdin\n  - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}\n```\n\n\nこのパイプラインは3つのフェーズで構成され、それぞれが前のフェーズをベースにします。\n\n\n1. 検出\n\n\nまず、すべてのECRリポジトリを取得します。\n\n\n```bash\n\nREPOS=$(aws ecr describe-repositories --query\n'repositories[*].repositoryName' --output text)\n\n```\n\n\n2. タグの列挙\n\n\n次に、各リポジトリの全タグを取得します。\n\n\n```bash\n\nTAGS=$(aws ecr describe-images --repository-name $repo --query\n'imageDetails[*].imageTags[]' --output text)\n\n```\n\n\n3. 移行\n\n\n最後に、実際にイメージ移行を実行します。\n\n\n```bash\n\ndocker pull\n${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com/${repo}:${tag}\n\ndocker tag\n${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com/${repo}:${tag}\n${CI_REGISTRY_IMAGE}/${repo}:${tag}\n\ndocker push ${CI_REGISTRY_IMAGE}/${repo}:${tag}\n\n```\n\n\n## 期待できる成果\n\n\n移行に何週間もかける時間がないというプラットフォームエンジニアのために、このソリューションは次のような成果を提供します。\n\n\n- すべてのリポジトリとタグを自動的に検出・移行\n\n- ECRとGitLabのイメージ命名規則を統一\n\n- 転送失敗時のエラーハンドリング\n\n- 進捗を追跡できる明確なログ\n\n\n\n移行スクリプトを書いたり、移行作業を監視したりする必要がなくなり、プラットフォームエンジニアは他の重要な作業に集中できるようになります。\n\n\n## 使い方\n\n\n手順はシンプルです。\n\n\n1. `.gitlab-ci.yml`をリポジトリにコピー\n\n2. AWSとGitLabの変数を設定\n\n3. `BULK_MIGRATE`を「true」に設定して、移行を開始\n\n\n## ベストプラクティス\n\n\nさまざまなチームの移行を支援する中で、いくつかの重要なポイントが見えてきました。\n\n\n- ピーク時以外に実行し、チームへの影響を最小限に抑える\n\n- パイプラインのログを確認し、必要な対応がないかチェックする\n\n- すべてのイメージが正常に転送されたことを確認するまで、ECRを廃止しない\n\n- 大規模な移行の場合、ネットワーク負荷を避けるためにレート制限の適用を検討する\n\n\nこのパイプラインは、GitLabの公開リポジトリでオープンソースとして提供しています。プラットフォームエンジニアがコンテナイメージの移行に時間を取られるのではなく、本来の業務に専念できるよう設計されています。ニーズに応じてカスタマイズしてお使いください。実装についてのご質問もお待ちしています。\n\n\n> ####\nこのパッケージおよびその他のコンポーネントの詳細については、[CI/CDカタログのドキュメント](https://gitlab.com/explore/catalog/components/package)をご覧ください。\n","engineering",[23,24,25,26,27,28],"CI/CD","AWS","tutorial","DevSecOps platform","product","solutions architecture",{"slug":30,"featured":31,"template":32},"automating-container-image-migration-from-amazon-ecr-to-gitlab",true,"BlogPost","content:ja-jp:blog:automating-container-image-migration-from-amazon-ecr-to-gitlab.yml","yaml","Automating Container Image Migration From Amazon Ecr To Gitlab","content","ja-jp/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab.yml","ja-jp/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab","yml",{"_path":41,"_dir":42,"_draft":6,"_partial":6,"_locale":7,"data":43,"_id":449,"_type":34,"title":450,"_source":36,"_file":451,"_stem":452,"_extension":39},"/shared/ja-jp/main-navigation","ja-jp",{"logo":44,"freeTrial":49,"sales":54,"login":59,"items":64,"search":393,"minimal":427,"duo":440},{"config":45},{"href":46,"dataGaName":47,"dataGaLocation":48},"/ja-jp/","gitlab logo","header",{"text":50,"config":51},"無料トライアルを開始",{"href":52,"dataGaName":53,"dataGaLocation":48},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":55,"config":56},"お問い合わせ",{"href":57,"dataGaName":58,"dataGaLocation":48},"/ja-jp/sales/","sales",{"text":60,"config":61},"サインイン",{"href":62,"dataGaName":63,"dataGaLocation":48},"https://gitlab.com/users/sign_in/","sign in",[65,109,205,210,315,375],{"text":66,"config":67,"cards":69,"footer":92},"プラットフォーム",{"dataNavLevelOne":68},"platform",[70,76,84],{"title":66,"description":71,"link":72},"最も包括的かつAIで強化されたDevSecOpsプラットフォーム",{"text":73,"config":74},"プラットフォームを詳しく見る",{"href":75,"dataGaName":68,"dataGaLocation":48},"/ja-jp/platform/",{"title":77,"description":78,"link":79},"GitLab Duo（AI）","開発のすべてのステージでAIを活用し、ソフトウェアをより迅速にビルド",{"text":80,"config":81},"GitLab Duoのご紹介",{"href":82,"dataGaName":83,"dataGaLocation":48},"/ja-jp/gitlab-duo/","gitlab duo ai",{"title":85,"description":86,"link":87},"GitLabが選ばれる理由","GitLabが大企業に選ばれる理由10選",{"text":88,"config":89},"詳細はこちら",{"href":90,"dataGaName":91,"dataGaLocation":48},"/ja-jp/why-gitlab/","why gitlab",{"title":93,"items":94},"利用を開始：",[95,100,105],{"text":96,"config":97},"プラットフォームエンジニアリング",{"href":98,"dataGaName":99,"dataGaLocation":48},"/ja-jp/solutions/platform-engineering/","platform engineering",{"text":101,"config":102},"開発者の経験",{"href":103,"dataGaName":104,"dataGaLocation":48},"/ja-jp/developer-experience/","Developer experience",{"text":106,"config":107},"MLOps",{"href":108,"dataGaName":106,"dataGaLocation":48},"/ja-jp/topics/devops/the-role-of-ai-in-devops/",{"text":110,"left":31,"config":111,"link":113,"lists":117,"footer":187},"製品",{"dataNavLevelOne":112},"solutions",{"text":114,"config":115},"すべてのソリューションを表示",{"href":116,"dataGaName":112,"dataGaLocation":48},"/ja-jp/solutions/",[118,143,165],{"title":119,"description":120,"link":121,"items":126},"自動化","CI/CDと自動化でデプロイを加速",{"config":122},{"icon":123,"href":124,"dataGaName":125,"dataGaLocation":48},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[127,130,134,139],{"text":23,"config":128},{"href":129,"dataGaLocation":48,"dataGaName":23},"/ja-jp/solutions/continuous-integration/",{"text":131,"config":132},"AIアシストによる開発",{"href":82,"dataGaLocation":48,"dataGaName":133},"AI assisted development",{"text":135,"config":136},"ソースコード管理",{"href":137,"dataGaLocation":48,"dataGaName":138},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":140,"config":141},"自動化されたソフトウェアデリバリー",{"href":124,"dataGaLocation":48,"dataGaName":142},"Automated software delivery",{"title":144,"description":145,"link":146,"items":151},"セキュリティ","セキュリティを損なうことなくコードをより迅速に完成",{"config":147},{"href":148,"dataGaName":149,"dataGaLocation":48,"icon":150},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[152,156,161],{"text":153,"config":154},"Application Security Testing",{"href":148,"dataGaName":155,"dataGaLocation":48},"Application security testing",{"text":157,"config":158},"ソフトウェアサプライチェーンの安全性",{"href":159,"dataGaLocation":48,"dataGaName":160},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":162,"config":163},"Software Compliance",{"href":164,"dataGaName":162,"dataGaLocation":48},"/ja-jp/solutions/software-compliance/",{"title":166,"link":167,"items":172},"測定",{"config":168},{"icon":169,"href":170,"dataGaName":171,"dataGaLocation":48},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[173,177,182],{"text":174,"config":175},"可視性と測定",{"href":170,"dataGaLocation":48,"dataGaName":176},"Visibility and Measurement",{"text":178,"config":179},"バリューストリーム管理",{"href":180,"dataGaLocation":48,"dataGaName":181},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":183,"config":184},"分析とインサイト",{"href":185,"dataGaLocation":48,"dataGaName":186},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":188,"items":189},"GitLabが活躍する場所",[190,195,200],{"text":191,"config":192},"Enterprise",{"href":193,"dataGaLocation":48,"dataGaName":194},"/ja-jp/enterprise/","enterprise",{"text":196,"config":197},"スモールビジネス",{"href":198,"dataGaLocation":48,"dataGaName":199},"/ja-jp/small-business/","small business",{"text":201,"config":202},"公共機関",{"href":203,"dataGaLocation":48,"dataGaName":204},"/ja-jp/solutions/public-sector/","public sector",{"text":206,"config":207},"価格",{"href":208,"dataGaName":209,"dataGaLocation":48,"dataNavLevelOne":209},"/ja-jp/pricing/","pricing",{"text":211,"config":212,"link":214,"lists":218,"feature":302},"関連リソース",{"dataNavLevelOne":213},"resources",{"text":215,"config":216},"すべてのリソースを表示",{"href":217,"dataGaName":213,"dataGaLocation":48},"/ja-jp/resources/",[219,252,274],{"title":220,"items":221},"はじめに",[222,227,232,237,242,247],{"text":223,"config":224},"インストール",{"href":225,"dataGaName":226,"dataGaLocation":48},"/ja-jp/install/","install",{"text":228,"config":229},"クイックスタートガイド",{"href":230,"dataGaName":231,"dataGaLocation":48},"/ja-jp/get-started/","quick setup checklists",{"text":233,"config":234},"学ぶ",{"href":235,"dataGaLocation":48,"dataGaName":236},"https://university.gitlab.com/","learn",{"text":238,"config":239},"製品ドキュメント",{"href":240,"dataGaName":241,"dataGaLocation":48},"https://docs.gitlab.com/","product documentation",{"text":243,"config":244},"ベストプラクティスビデオ",{"href":245,"dataGaName":246,"dataGaLocation":48},"/ja-jp/getting-started-videos/","best practice videos",{"text":248,"config":249},"インテグレーション",{"href":250,"dataGaName":251,"dataGaLocation":48},"/ja-jp/integrations/","integrations",{"title":253,"items":254},"検索する",[255,260,264,269],{"text":256,"config":257},"お客様成功事例",{"href":258,"dataGaName":259,"dataGaLocation":48},"/ja-jp/customers/","customer success stories",{"text":261,"config":262},"ブログ",{"href":263,"dataGaName":5,"dataGaLocation":48},"/ja-jp/blog/",{"text":265,"config":266},"リモート",{"href":267,"dataGaName":268,"dataGaLocation":48},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":270,"config":271},"TeamOps",{"href":272,"dataGaName":273,"dataGaLocation":48},"/ja-jp/teamops/","teamops",{"title":275,"items":276},"つなげる",[277,282,287,292,297],{"text":278,"config":279},"GitLabサービス",{"href":280,"dataGaName":281,"dataGaLocation":48},"/ja-jp/services/","services",{"text":283,"config":284},"コミュニティ",{"href":285,"dataGaName":286,"dataGaLocation":48},"/community/","community",{"text":288,"config":289},"フォーラム",{"href":290,"dataGaName":291,"dataGaLocation":48},"https://forum.gitlab.com/","forum",{"text":293,"config":294},"イベント",{"href":295,"dataGaName":296,"dataGaLocation":48},"/events/","events",{"text":298,"config":299},"パートナー",{"href":300,"dataGaName":301,"dataGaLocation":48},"/ja-jp/partners/","partners",{"backgroundColor":303,"textColor":304,"text":305,"image":306,"link":310},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":307,"config":308},"ソースプロモカード",{"src":309},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":311,"config":312},"最新情報を読む",{"href":313,"dataGaName":314,"dataGaLocation":48},"/ja-jp/the-source/","the source",{"text":316,"config":317,"lists":319},"会社情報",{"dataNavLevelOne":318},"company",[320],{"items":321},[322,327,333,335,340,345,350,355,360,365,370],{"text":323,"config":324},"GitLabについて",{"href":325,"dataGaName":326,"dataGaLocation":48},"/ja-jp/company/","about",{"text":328,"config":329,"footerGa":332},"採用情報",{"href":330,"dataGaName":331,"dataGaLocation":48},"/jobs/","jobs",{"dataGaName":331},{"text":293,"config":334},{"href":295,"dataGaName":296,"dataGaLocation":48},{"text":336,"config":337},"経営陣",{"href":338,"dataGaName":339,"dataGaLocation":48},"/company/team/e-group/","leadership",{"text":341,"config":342},"チーム",{"href":343,"dataGaName":344,"dataGaLocation":48},"/company/team/","team",{"text":346,"config":347},"ハンドブック",{"href":348,"dataGaName":349,"dataGaLocation":48},"https://handbook.gitlab.com/","handbook",{"text":351,"config":352},"投資家向け情報",{"href":353,"dataGaName":354,"dataGaLocation":48},"https://ir.gitlab.com/","investor relations",{"text":356,"config":357},"トラストセンター",{"href":358,"dataGaName":359,"dataGaLocation":48},"/ja-jp/security/","trust center",{"text":361,"config":362},"AI Transparency Center",{"href":363,"dataGaName":364,"dataGaLocation":48},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":366,"config":367},"ニュースレター",{"href":368,"dataGaName":369,"dataGaLocation":48},"/company/contact/","newsletter",{"text":371,"config":372},"プレス",{"href":373,"dataGaName":374,"dataGaLocation":48},"/press/","press",{"text":55,"config":376,"lists":377},{"dataNavLevelOne":318},[378],{"items":379},[380,383,388],{"text":55,"config":381},{"href":57,"dataGaName":382,"dataGaLocation":48},"talk to sales",{"text":384,"config":385},"サポートを受ける",{"href":386,"dataGaName":387,"dataGaLocation":48},"/support/","get help",{"text":389,"config":390},"カスタマーポータル",{"href":391,"dataGaName":392,"dataGaLocation":48},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":394,"login":395,"suggestions":402},"閉じる",{"text":396,"link":397},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":398,"config":399},"GitLab.com",{"href":62,"dataGaName":400,"dataGaLocation":401},"search login","search",{"text":403,"default":404},"提案",[405,408,413,415,419,423],{"text":77,"config":406},{"href":82,"dataGaName":407,"dataGaLocation":401},"GitLab Duo (AI)",{"text":409,"config":410},"コード提案（AI）",{"href":411,"dataGaName":412,"dataGaLocation":401},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":23,"config":414},{"href":129,"dataGaName":23,"dataGaLocation":401},{"text":416,"config":417},"GitLab on AWS",{"href":418,"dataGaName":416,"dataGaLocation":401},"/ja-jp/partners/technology-partners/aws/",{"text":420,"config":421},"GitLab on Google Cloud",{"href":422,"dataGaName":420,"dataGaLocation":401},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":424,"config":425},"GitLabを選ぶ理由",{"href":90,"dataGaName":426,"dataGaLocation":401},"Why GitLab?",{"freeTrial":428,"mobileIcon":432,"desktopIcon":437},{"text":50,"config":429},{"href":430,"dataGaName":53,"dataGaLocation":431},"https://gitlab.com/-/trials/new/","nav",{"altText":433,"config":434},"GitLabアイコン",{"src":435,"dataGaName":436,"dataGaLocation":431},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":433,"config":438},{"src":439,"dataGaName":436,"dataGaLocation":431},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":441,"mobileIcon":445,"desktopIcon":447},{"text":442,"config":443},"GitLab Duoの詳細について",{"href":82,"dataGaName":444,"dataGaLocation":431},"gitlab duo",{"altText":433,"config":446},{"src":435,"dataGaName":436,"dataGaLocation":431},{"altText":433,"config":448},{"src":439,"dataGaName":436,"dataGaLocation":431},"content:shared:ja-jp:main-navigation.yml","Main Navigation","shared/ja-jp/main-navigation.yml","shared/ja-jp/main-navigation",{"_path":454,"_dir":42,"_draft":6,"_partial":6,"_locale":7,"title":455,"button":456,"config":461,"_id":463,"_type":34,"_source":36,"_file":464,"_stem":465,"_extension":39},"/shared/ja-jp/banner","GitLab Duo Agent Platformがパブリックベータ版で利用可能になりました！",{"text":457,"config":458},"ベータ版を試す",{"href":459,"dataGaName":460,"dataGaLocation":48},"/ja-jp/gitlab-duo/agent-platform/","duo banner",{"layout":462},"release","content:shared:ja-jp:banner.yml","shared/ja-jp/banner.yml","shared/ja-jp/banner",{"_path":467,"_dir":42,"_draft":6,"_partial":6,"_locale":7,"data":468,"_id":672,"_type":34,"title":673,"_source":36,"_file":674,"_stem":675,"_extension":39},"/shared/ja-jp/main-footer",{"text":469,"source":470,"edit":476,"contribute":481,"config":486,"items":491,"minimal":664},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":471,"config":472},"ページのソースを表示",{"href":473,"dataGaName":474,"dataGaLocation":475},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":477,"config":478},"このページを編集",{"href":479,"dataGaName":480,"dataGaLocation":475},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":482,"config":483},"ご協力をお願いします",{"href":484,"dataGaName":485,"dataGaLocation":475},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":487,"facebook":488,"youtube":489,"linkedin":490},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[492,515,569,601,636],{"title":66,"links":493,"subMenu":498},[494],{"text":495,"config":496},"DevSecOpsプラットフォーム",{"href":75,"dataGaName":497,"dataGaLocation":475},"devsecops platform",[499],{"title":206,"links":500},[501,505,510],{"text":502,"config":503},"プランの表示",{"href":208,"dataGaName":504,"dataGaLocation":475},"view plans",{"text":506,"config":507},"Premiumを選ぶ理由",{"href":508,"dataGaName":509,"dataGaLocation":475},"/ja-jp/pricing/premium/","why premium",{"text":511,"config":512},"Ultimateを選ぶ理由",{"href":513,"dataGaName":514,"dataGaLocation":475},"/ja-jp/pricing/ultimate/","why ultimate",{"title":516,"links":517},"ソリューション",[518,523,526,528,533,538,542,545,548,553,555,557,559,564],{"text":519,"config":520},"デジタルトランスフォーメーション",{"href":521,"dataGaName":522,"dataGaLocation":475},"/ja-jp/topics/digital-transformation/","digital transformation",{"text":524,"config":525},"セキュリティとコンプライアンス",{"href":148,"dataGaName":155,"dataGaLocation":475},{"text":140,"config":527},{"href":124,"dataGaName":125,"dataGaLocation":475},{"text":529,"config":530},"アジャイル開発",{"href":531,"dataGaName":532,"dataGaLocation":475},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":534,"config":535},"クラウドトランスフォーメーション",{"href":536,"dataGaName":537,"dataGaLocation":475},"/ja-jp/topics/cloud-native/","cloud transformation",{"text":539,"config":540},"SCM",{"href":137,"dataGaName":541,"dataGaLocation":475},"source code management",{"text":23,"config":543},{"href":129,"dataGaName":544,"dataGaLocation":475},"continuous integration & delivery",{"text":178,"config":546},{"href":180,"dataGaName":547,"dataGaLocation":475},"value stream management",{"text":549,"config":550},"GitOps",{"href":551,"dataGaName":552,"dataGaLocation":475},"/ja-jp/solutions/gitops/","gitops",{"text":191,"config":554},{"href":193,"dataGaName":194,"dataGaLocation":475},{"text":196,"config":556},{"href":198,"dataGaName":199,"dataGaLocation":475},{"text":201,"config":558},{"href":203,"dataGaName":204,"dataGaLocation":475},{"text":560,"config":561},"教育",{"href":562,"dataGaName":563,"dataGaLocation":475},"/ja-jp/solutions/education/","education",{"text":565,"config":566},"金融サービス",{"href":567,"dataGaName":568,"dataGaLocation":475},"/ja-jp/solutions/finance/","financial services",{"title":211,"links":570},[571,573,575,577,580,582,585,587,589,591,593,595,597,599],{"text":223,"config":572},{"href":225,"dataGaName":226,"dataGaLocation":475},{"text":228,"config":574},{"href":230,"dataGaName":231,"dataGaLocation":475},{"text":233,"config":576},{"href":235,"dataGaName":236,"dataGaLocation":475},{"text":238,"config":578},{"href":240,"dataGaName":579,"dataGaLocation":475},"docs",{"text":261,"config":581},{"href":263,"dataGaName":5},{"text":583,"config":584},"お客様の成功事例",{"href":258,"dataGaLocation":475},{"text":256,"config":586},{"href":258,"dataGaName":259,"dataGaLocation":475},{"text":265,"config":588},{"href":267,"dataGaName":268,"dataGaLocation":475},{"text":278,"config":590},{"href":280,"dataGaName":281,"dataGaLocation":475},{"text":270,"config":592},{"href":272,"dataGaName":273,"dataGaLocation":475},{"text":283,"config":594},{"href":285,"dataGaName":286,"dataGaLocation":475},{"text":288,"config":596},{"href":290,"dataGaName":291,"dataGaLocation":475},{"text":293,"config":598},{"href":295,"dataGaName":296,"dataGaLocation":475},{"text":298,"config":600},{"href":300,"dataGaName":301,"dataGaLocation":475},{"title":602,"links":603},"Company",[604,606,608,610,612,614,616,620,625,627,629,631],{"text":323,"config":605},{"href":325,"dataGaName":318,"dataGaLocation":475},{"text":328,"config":607},{"href":330,"dataGaName":331,"dataGaLocation":475},{"text":336,"config":609},{"href":338,"dataGaName":339,"dataGaLocation":475},{"text":341,"config":611},{"href":343,"dataGaName":344,"dataGaLocation":475},{"text":346,"config":613},{"href":348,"dataGaName":349,"dataGaLocation":475},{"text":351,"config":615},{"href":353,"dataGaName":354,"dataGaLocation":475},{"text":617,"config":618},"Sustainability",{"href":619,"dataGaName":617,"dataGaLocation":475},"/sustainability/",{"text":621,"config":622},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":623,"dataGaName":624,"dataGaLocation":475},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":356,"config":626},{"href":358,"dataGaName":359,"dataGaLocation":475},{"text":366,"config":628},{"href":368,"dataGaName":369,"dataGaLocation":475},{"text":371,"config":630},{"href":373,"dataGaName":374,"dataGaLocation":475},{"text":632,"config":633},"現代奴隷制の透明性に関する声明",{"href":634,"dataGaName":635,"dataGaLocation":475},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":55,"links":637},[638,640,642,644,649,654,659],{"text":55,"config":639},{"href":57,"dataGaName":58,"dataGaLocation":475},{"text":384,"config":641},{"href":386,"dataGaName":387,"dataGaLocation":475},{"text":389,"config":643},{"href":391,"dataGaName":392,"dataGaLocation":475},{"text":645,"config":646},"ステータス",{"href":647,"dataGaName":648,"dataGaLocation":475},"https://status.gitlab.com/","status",{"text":650,"config":651},"利用規約",{"href":652,"dataGaName":653,"dataGaLocation":475},"/terms/","terms of use",{"text":655,"config":656},"プライバシーに関する声明",{"href":657,"dataGaName":658,"dataGaLocation":475},"/ja-jp/privacy/","privacy statement",{"text":660,"config":661},"Cookieの設定",{"dataGaName":662,"dataGaLocation":475,"id":663,"isOneTrustButton":31},"cookie preferences","ot-sdk-btn",{"items":665},[666,668,670],{"text":650,"config":667},{"href":652,"dataGaName":653,"dataGaLocation":475},{"text":655,"config":669},{"href":657,"dataGaName":658,"dataGaLocation":475},{"text":660,"config":671},{"dataGaName":662,"dataGaLocation":475,"id":663,"isOneTrustButton":31},"content:shared:ja-jp:main-footer.yml","Main Footer","shared/ja-jp/main-footer.yml","shared/ja-jp/main-footer",[677],{"_path":678,"_dir":679,"_draft":6,"_partial":6,"_locale":7,"content":680,"config":684,"_id":686,"_type":34,"title":18,"_source":36,"_file":687,"_stem":688,"_extension":39},"/en-us/blog/authors/tim-rizzi","authors",{"name":18,"config":681},{"headshot":682,"ctfId":683},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661866/Blog/Author%20Headshots/trizzi-headshot.jpg","trizzi",{"template":685},"BlogAuthor","content:en-us:blog:authors:tim-rizzi.yml","en-us/blog/authors/tim-rizzi.yml","en-us/blog/authors/tim-rizzi",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":690,"content":691,"config":694,"_id":33,"_type":34,"title":35,"_source":36,"_file":37,"_stem":38,"_extension":39},{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},{"title":9,"description":10,"authors":692,"heroImage":11,"date":19,"body":20,"category":21,"tags":693},[18],[23,24,25,26,27,28],{"slug":30,"featured":31,"template":32},{"_path":696,"_dir":42,"_draft":6,"_partial":6,"_locale":7,"header":697,"eyebrow":698,"blurb":699,"button":700,"secondaryButton":704,"_id":706,"_type":34,"title":707,"_source":36,"_file":708,"_stem":709,"_extension":39},"/shared/ja-jp/next-steps","より優れたソフトウェアをより速く提供","フォーチュン100企業の50%以上がGitLabを信頼","インテリジェントなDevSecOpsプラットフォームで\n\n\nチームの可能性を広げましょう。\n",{"text":50,"config":701},{"href":702,"dataGaName":53,"dataGaLocation":703},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":55,"config":705},{"href":57,"dataGaName":58,"dataGaLocation":703},"content:shared:ja-jp:next-steps.yml","Next Steps","shared/ja-jp/next-steps.yml","shared/ja-jp/next-steps",1760103745492]