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