[{"data":1,"prerenderedAt":702},["ShallowReactive",2],{"/ja-jp/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab/":3,"navigation-ja-jp":41,"banner-ja-jp":454,"footer-ja-jp":467,"Tim Rizzi":674,"next-steps-ja-jp":687},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":17,"config":30,"_id":34,"_type":35,"title":36,"_source":37,"_file":38,"_stem":39,"_extension":40},"/ja-jp/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab","blog",false,"",{"title":9,"description":10,"ogTitle":11,"ogDescription":10,"noIndex":6,"ogImage":12,"ogUrl":13,"ogSiteName":14,"ogType":15,"canonicalUrls":13,"schema":16},"Amazon ECRからGitLabへのコンテナイメージ移行の自動化","GitLabのCI/CD移行でコンテナイメージ移行を自動化し、遅延を防ぐ方法を解説します。","Amazon ECRから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","記事","\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":11,"description":10,"authors":18,"heroImage":12,"date":20,"body":21,"category":22,"tags":23},[19],"Tim Rizzi","2025-02-13","「Amazon Elastic Container Registry（ECR）からGitLabに数百ものコンテナイメージを移行する必要があるのですが、手伝ってもらえますか？」この質問はプラットフォームエンジニアとの会話で何度も出てきました。彼らはGitLabを使ってDevSecOpsツールチェーンをモダナイズしていましたが、コンテナイメージの移行でつまずいていたのです。個々のイメージ移行は簡単でも、数が膨大で手間がかかるため、ハードルが高く感じられていました。\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{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": [ \"ecr:GetAuthorizationToken\", \"ecr:BatchCheckLayerAvailability\", \"ecr:GetDownloadUrlForLayer\", \"ecr:DescribeRepositories\", \"ecr:ListImages\", \"ecr:DescribeImages\", \"ecr:BatchGetImage\" ], \"Resource\": \"*\" } ] }\n```\n\n### GitLabの設定\n\nセキュリティが整ったら、次はGitLabの設定です。必要最低限の設定として、CI/CDの変数に以下を登録してください。\n\n```\nAWS_ACCOUNT_ID：AWSアカウント番号\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: - docker:20.10-dind\nbefore_script: - apk add --no-cache aws-cli jq - aws sts get-caller-identity - aws ecr get-login-password | docker login --username AWS --password-stdin - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} ```\n\nパイプラインは3つのフェーズで動作し、それぞれが前のフェーズに基づいて構築されます。\n\n1. 検出\n\nすべてのリポジトリ名を取得します。\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- ECRとGitLab間での一貫したイメージ命名\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\n- すべてのイメージが正常に移行したことを確認するまでECRを停止しない\n- 大規模な移行の場合、ネットワーク負荷を避けるためにレート制限の適用を検討する\n\nこのパイプラインは、GitLabの公開リポジトリでオープンソースとして提供しています。プラットフォームエンジニアがコンテナイメージの移行に時間を取られるのではなく、本来の業務に専念できるよう設計されています。ニーズに応じてカスタマイズしてお使いください。実装についてのご質問もお待ちしています。\n\n> #### このパッケージおよびその他のコンポーネントの詳細については、[CI/CDカタログのドキュメント](https://gitlab.com/explore/catalog/components/package)をご覧ください。","engineering",[24,25,26,27,28,29],"CI/CD","AWS","チュートリアル","DevSecOpsプラットフォーム","製品","ソリューションアーキテクチャ",{"slug":31,"featured":32,"template":33},"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":42,"_dir":43,"_draft":6,"_partial":6,"_locale":7,"data":44,"_id":450,"_type":35,"title":451,"_source":37,"_file":452,"_stem":453,"_extension":40},"/shared/ja-jp/main-navigation","ja-jp",{"logo":45,"freeTrial":50,"sales":55,"login":60,"items":65,"search":394,"minimal":428,"duo":441},{"config":46},{"href":47,"dataGaName":48,"dataGaLocation":49},"/ja-jp/","gitlab logo","header",{"text":51,"config":52},"無料トライアルを開始",{"href":53,"dataGaName":54,"dataGaLocation":49},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":56,"config":57},"お問い合わせ",{"href":58,"dataGaName":59,"dataGaLocation":49},"/ja-jp/sales/","sales",{"text":61,"config":62},"サインイン",{"href":63,"dataGaName":64,"dataGaLocation":49},"https://gitlab.com/users/sign_in/","sign in",[66,110,206,211,316,376],{"text":67,"config":68,"cards":70,"footer":93},"プラットフォーム",{"dataNavLevelOne":69},"platform",[71,77,85],{"title":67,"description":72,"link":73},"最も包括的かつAIで強化されたDevSecOpsプラットフォーム",{"text":74,"config":75},"プラットフォームを詳しく見る",{"href":76,"dataGaName":69,"dataGaLocation":49},"/ja-jp/platform/",{"title":78,"description":79,"link":80},"GitLab Duo（AI）","開発のすべてのステージでAIを活用し、ソフトウェアをより迅速にビルド",{"text":81,"config":82},"GitLab Duoのご紹介",{"href":83,"dataGaName":84,"dataGaLocation":49},"/ja-jp/gitlab-duo/","gitlab duo ai",{"title":86,"description":87,"link":88},"GitLabが選ばれる理由","GitLabが大企業に選ばれる理由10選",{"text":89,"config":90},"詳細はこちら",{"href":91,"dataGaName":92,"dataGaLocation":49},"/ja-jp/why-gitlab/","why gitlab",{"title":94,"items":95},"利用を開始：",[96,101,106],{"text":97,"config":98},"プラットフォームエンジニアリング",{"href":99,"dataGaName":100,"dataGaLocation":49},"/ja-jp/solutions/platform-engineering/","platform engineering",{"text":102,"config":103},"開発者の経験",{"href":104,"dataGaName":105,"dataGaLocation":49},"/ja-jp/developer-experience/","Developer experience",{"text":107,"config":108},"MLOps",{"href":109,"dataGaName":107,"dataGaLocation":49},"/ja-jp/topics/devops/the-role-of-ai-in-devops/",{"text":28,"left":32,"config":111,"link":113,"lists":117,"footer":188},{"dataNavLevelOne":112},"solutions",{"text":114,"config":115},"すべてのソリューションを表示",{"href":116,"dataGaName":112,"dataGaLocation":49},"/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":49},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[127,130,134,139],{"text":24,"config":128},{"href":129,"dataGaLocation":49,"dataGaName":24},"/ja-jp/solutions/continuous-integration/",{"text":131,"config":132},"AIアシストによる開発",{"href":83,"dataGaLocation":49,"dataGaName":133},"AI assisted development",{"text":135,"config":136},"ソースコード管理",{"href":137,"dataGaLocation":49,"dataGaName":138},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":140,"config":141},"自動化されたソフトウェアデリバリー",{"href":124,"dataGaLocation":49,"dataGaName":142},"Automated software delivery",{"title":144,"description":145,"link":146,"items":151},"セキュリティ","セキュリティを損なうことなくコードをより迅速に完成",{"config":147},{"href":148,"dataGaName":149,"dataGaLocation":49,"icon":150},"/ja-jp/solutions/security-compliance/","security and compliance","ShieldCheckLight",[152,156,161],{"text":153,"config":154},"セキュリティとコンプライアンス",{"href":148,"dataGaLocation":49,"dataGaName":155},"Security & Compliance",{"text":157,"config":158},"ソフトウェアサプライチェーンの安全性",{"href":159,"dataGaLocation":49,"dataGaName":160},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":162,"config":163},"コンプライアンスとガバナンス",{"href":164,"dataGaLocation":49,"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":49},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[174,178,183],{"text":175,"config":176},"可視性と測定",{"href":171,"dataGaLocation":49,"dataGaName":177},"Visibility and Measurement",{"text":179,"config":180},"バリューストリーム管理",{"href":181,"dataGaLocation":49,"dataGaName":182},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":184,"config":185},"分析とインサイト",{"href":186,"dataGaLocation":49,"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":49,"dataGaName":195},"/ja-jp/enterprise/","enterprise",{"text":197,"config":198},"スモールビジネス",{"href":199,"dataGaLocation":49,"dataGaName":200},"/ja-jp/small-business/","small business",{"text":202,"config":203},"公共機関",{"href":204,"dataGaLocation":49,"dataGaName":205},"/ja-jp/solutions/public-sector/","public sector",{"text":207,"config":208},"価格",{"href":209,"dataGaName":210,"dataGaLocation":49,"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":49},"/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":49},"/ja-jp/install/","install",{"text":229,"config":230},"クイックスタートガイド",{"href":231,"dataGaName":232,"dataGaLocation":49},"/ja-jp/get-started/","quick setup checklists",{"text":234,"config":235},"学ぶ",{"href":236,"dataGaLocation":49,"dataGaName":237},"https://university.gitlab.com/","learn",{"text":239,"config":240},"製品ドキュメント",{"href":241,"dataGaName":242,"dataGaLocation":49},"https://docs.gitlab.com/","product documentation",{"text":244,"config":245},"ベストプラクティスビデオ",{"href":246,"dataGaName":247,"dataGaLocation":49},"/ja-jp/getting-started-videos/","best practice videos",{"text":249,"config":250},"インテグレーション",{"href":251,"dataGaName":252,"dataGaLocation":49},"/ja-jp/integrations/","integrations",{"title":254,"items":255},"検索する",[256,261,265,270],{"text":257,"config":258},"お客様成功事例",{"href":259,"dataGaName":260,"dataGaLocation":49},"/customers/","customer success stories",{"text":262,"config":263},"ブログ",{"href":264,"dataGaName":5,"dataGaLocation":49},"/ja-jp/blog/",{"text":266,"config":267},"リモート",{"href":268,"dataGaName":269,"dataGaLocation":49},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":271,"config":272},"TeamOps",{"href":273,"dataGaName":274,"dataGaLocation":49},"/ja-jp/teamops/","teamops",{"title":276,"items":277},"つなげる",[278,283,288,293,298],{"text":279,"config":280},"GitLabサービス",{"href":281,"dataGaName":282,"dataGaLocation":49},"/ja-jp/services/","services",{"text":284,"config":285},"コミュニティ",{"href":286,"dataGaName":287,"dataGaLocation":49},"/community/","community",{"text":289,"config":290},"フォーラム",{"href":291,"dataGaName":292,"dataGaLocation":49},"https://forum.gitlab.com/","forum",{"text":294,"config":295},"イベント",{"href":296,"dataGaName":297,"dataGaLocation":49},"/events/","events",{"text":299,"config":300},"パートナー",{"href":301,"dataGaName":302,"dataGaLocation":49},"/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":49},"/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":49},"/ja-jp/company/","about",{"text":329,"config":330,"footerGa":333},"採用情報",{"href":331,"dataGaName":332,"dataGaLocation":49},"/jobs/","jobs",{"dataGaName":332},{"text":294,"config":335},{"href":296,"dataGaName":297,"dataGaLocation":49},{"text":337,"config":338},"経営陣",{"href":339,"dataGaName":340,"dataGaLocation":49},"/company/team/e-group/","leadership",{"text":342,"config":343},"チーム",{"href":344,"dataGaName":345,"dataGaLocation":49},"/company/team/","team",{"text":347,"config":348},"ハンドブック",{"href":349,"dataGaName":350,"dataGaLocation":49},"https://handbook.gitlab.com/","handbook",{"text":352,"config":353},"投資家向け情報",{"href":354,"dataGaName":355,"dataGaLocation":49},"https://ir.gitlab.com/","investor relations",{"text":357,"config":358},"トラストセンター",{"href":359,"dataGaName":360,"dataGaLocation":49},"/ja-jp/security/","trust center",{"text":362,"config":363},"AI Transparency Center",{"href":364,"dataGaName":365,"dataGaLocation":49},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":367,"config":368},"ニュースレター",{"href":369,"dataGaName":370,"dataGaLocation":49},"/company/contact/","newsletter",{"text":372,"config":373},"プレス",{"href":374,"dataGaName":375,"dataGaLocation":49},"/press/","press",{"text":56,"config":377,"lists":378},{"dataNavLevelOne":319},[379],{"items":380},[381,384,389],{"text":56,"config":382},{"href":58,"dataGaName":383,"dataGaLocation":49},"talk to sales",{"text":385,"config":386},"サポートを受ける",{"href":387,"dataGaName":388,"dataGaLocation":49},"/support/","get help",{"text":390,"config":391},"カスタマーポータル",{"href":392,"dataGaName":393,"dataGaLocation":49},"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":63,"dataGaName":401,"dataGaLocation":402},"search login","search",{"text":404,"default":405},"提案",[406,409,414,416,420,424],{"text":78,"config":407},{"href":83,"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":24,"config":415},{"href":129,"dataGaName":24,"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":91,"dataGaName":427,"dataGaLocation":402},"Why GitLab?",{"freeTrial":429,"mobileIcon":433,"desktopIcon":438},{"text":51,"config":430},{"href":431,"dataGaName":54,"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":83,"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":43,"_draft":6,"_partial":6,"_locale":7,"title":456,"titleMobile":456,"button":457,"config":462,"_id":464,"_type":35,"_source":37,"_file":465,"_stem":466,"_extension":40},"/shared/ja-jp/banner","GitLab 18と知的進化する次世代のDevSecOps。6月24日のオンラインイベントにご参加ください。",{"text":458,"config":459},"今すぐ申し込む",{"href":460,"dataGaName":461,"dataGaLocation":49},"/ja-jp/eighteen/","gitlab 18 banner",{"layout":463},"release","content:shared:ja-jp:banner.yml","shared/ja-jp/banner.yml","shared/ja-jp/banner",{"_path":468,"_dir":43,"_draft":6,"_partial":6,"_locale":7,"data":469,"_id":670,"_type":35,"title":671,"_source":37,"_file":672,"_stem":673,"_extension":40},"/shared/ja-jp/main-footer",{"text":470,"source":471,"edit":477,"contribute":482,"config":487,"items":492,"minimal":662},"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,515,569,599,634],{"title":67,"links":494,"subMenu":498},[495],{"text":27,"config":496},{"href":76,"dataGaName":497,"dataGaLocation":476},"devsecops platform",[499],{"title":207,"links":500},[501,505,510],{"text":502,"config":503},"プランの表示",{"href":209,"dataGaName":504,"dataGaLocation":476},"view plans",{"text":506,"config":507},"Premiumを選ぶ理由",{"href":508,"dataGaName":509,"dataGaLocation":476},"/ja-jp/pricing/premium/","why premium",{"text":511,"config":512},"Ultimateを選ぶ理由",{"href":513,"dataGaName":514,"dataGaLocation":476},"/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":476},"/solutions/digital-transformation/","digital transformation",{"text":153,"config":524},{"href":148,"dataGaName":525,"dataGaLocation":476},"security & compliance",{"text":140,"config":527},{"href":124,"dataGaName":125,"dataGaLocation":476},{"text":529,"config":530},"アジャイル開発",{"href":531,"dataGaName":532,"dataGaLocation":476},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":534,"config":535},"クラウドトランスフォーメーション",{"href":536,"dataGaName":537,"dataGaLocation":476},"/ja-jp/solutions/cloud-native/","cloud transformation",{"text":539,"config":540},"SCM",{"href":137,"dataGaName":541,"dataGaLocation":476},"source code management",{"text":24,"config":543},{"href":129,"dataGaName":544,"dataGaLocation":476},"continuous integration & delivery",{"text":179,"config":546},{"href":181,"dataGaName":547,"dataGaLocation":476},"value stream management",{"text":549,"config":550},"GitOps",{"href":551,"dataGaName":552,"dataGaLocation":476},"/ja-jp/solutions/gitops/","gitops",{"text":192,"config":554},{"href":194,"dataGaName":195,"dataGaLocation":476},{"text":197,"config":556},{"href":199,"dataGaName":200,"dataGaLocation":476},{"text":202,"config":558},{"href":204,"dataGaName":205,"dataGaLocation":476},{"text":560,"config":561},"教育",{"href":562,"dataGaName":563,"dataGaLocation":476},"/ja-jp/solutions/education/","education",{"text":565,"config":566},"金融サービス",{"href":567,"dataGaName":568,"dataGaLocation":476},"/ja-jp/solutions/finance/","financial services",{"title":212,"links":570},[571,573,575,577,580,582,584,586,589,591,593,595,597],{"text":224,"config":572},{"href":226,"dataGaName":227,"dataGaLocation":476},{"text":229,"config":574},{"href":231,"dataGaName":232,"dataGaLocation":476},{"text":234,"config":576},{"href":236,"dataGaName":237,"dataGaLocation":476},{"text":239,"config":578},{"href":241,"dataGaName":579,"dataGaLocation":476},"docs",{"text":262,"config":581},{"href":264,"dataGaName":5,"dataGaLocation":476},{"text":257,"config":583},{"href":259,"dataGaName":260,"dataGaLocation":476},{"text":266,"config":585},{"href":268,"dataGaName":269,"dataGaLocation":476},{"text":279,"config":587},{"href":588,"dataGaName":282,"dataGaLocation":476},"/services/",{"text":271,"config":590},{"href":273,"dataGaName":274,"dataGaLocation":476},{"text":284,"config":592},{"href":286,"dataGaName":287,"dataGaLocation":476},{"text":289,"config":594},{"href":291,"dataGaName":292,"dataGaLocation":476},{"text":294,"config":596},{"href":296,"dataGaName":297,"dataGaLocation":476},{"text":299,"config":598},{"href":301,"dataGaName":302,"dataGaLocation":476},{"title":317,"links":600},[601,603,605,607,609,611,613,618,623,625,627,629],{"text":324,"config":602},{"href":326,"dataGaName":319,"dataGaLocation":476},{"text":329,"config":604},{"href":331,"dataGaName":332,"dataGaLocation":476},{"text":337,"config":606},{"href":339,"dataGaName":340,"dataGaLocation":476},{"text":342,"config":608},{"href":344,"dataGaName":345,"dataGaLocation":476},{"text":347,"config":610},{"href":349,"dataGaName":350,"dataGaLocation":476},{"text":352,"config":612},{"href":354,"dataGaName":355,"dataGaLocation":476},{"text":614,"config":615},"環境、社会、ガバナンス（ESG）",{"href":616,"dataGaName":617,"dataGaLocation":476},"/ja-jp/environmental-social-governance/","environmental, social and governance",{"text":619,"config":620},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":621,"dataGaName":622,"dataGaLocation":476},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":357,"config":624},{"href":359,"dataGaName":360,"dataGaLocation":476},{"text":367,"config":626},{"href":369,"dataGaName":370,"dataGaLocation":476},{"text":372,"config":628},{"href":374,"dataGaName":375,"dataGaLocation":476},{"text":630,"config":631},"現代奴隷制の透明性に関する声明",{"href":632,"dataGaName":633,"dataGaLocation":476},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":56,"links":635},[636,638,640,642,647,652,657],{"text":56,"config":637},{"href":58,"dataGaName":59,"dataGaLocation":476},{"text":385,"config":639},{"href":387,"dataGaName":388,"dataGaLocation":476},{"text":390,"config":641},{"href":392,"dataGaName":393,"dataGaLocation":476},{"text":643,"config":644},"ステータス",{"href":645,"dataGaName":646,"dataGaLocation":476},"https://status.gitlab.com/","status",{"text":648,"config":649},"利用規約",{"href":650,"dataGaName":651,"dataGaLocation":476},"/terms/","terms of use",{"text":653,"config":654},"プライバシーに関する声明",{"href":655,"dataGaName":656,"dataGaLocation":476},"/privacy/","privacy statement",{"text":658,"config":659},"Cookieの設定",{"dataGaName":660,"dataGaLocation":476,"id":661,"isOneTrustButton":32},"cookie preferences","ot-sdk-btn",{"items":663},[664,666,668],{"text":648,"config":665},{"href":650,"dataGaName":651,"dataGaLocation":476},{"text":653,"config":667},{"href":655,"dataGaName":656,"dataGaLocation":476},{"text":658,"config":669},{"dataGaName":660,"dataGaLocation":476,"id":661,"isOneTrustButton":32},"content:shared:ja-jp:main-footer.yml","Main Footer","shared/ja-jp/main-footer.yml","shared/ja-jp/main-footer",[675],{"_path":676,"_dir":677,"_draft":6,"_partial":6,"_locale":7,"content":678,"config":682,"_id":684,"_type":35,"title":19,"_source":37,"_file":685,"_stem":686,"_extension":40},"/en-us/blog/authors/tim-rizzi","authors",{"name":19,"config":679},{"headshot":680,"ctfId":681},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661866/Blog/Author%20Headshots/trizzi-headshot.jpg","trizzi",{"template":683},"BlogAuthor","content:en-us:blog:authors:tim-rizzi.yml","en-us/blog/authors/tim-rizzi.yml","en-us/blog/authors/tim-rizzi",{"_path":688,"_dir":43,"_draft":6,"_partial":6,"_locale":7,"header":689,"eyebrow":690,"blurb":691,"button":692,"secondaryButton":696,"_id":698,"_type":35,"title":699,"_source":37,"_file":700,"_stem":701,"_extension":40},"/shared/ja-jp/next-steps","より優れたソフトウェアをより速く提供","フォーチュン100企業の50%以上がGitLabを信頼","インテリジェントなDevSecOpsプラットフォームで\n\n\nチームの可能性を広げましょう。\n",{"text":51,"config":693},{"href":694,"dataGaName":54,"dataGaLocation":695},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":56,"config":697},{"href":58,"dataGaName":59,"dataGaLocation":695},"content:shared:ja-jp:next-steps.yml","Next Steps","shared/ja-jp/next-steps.yml","shared/ja-jp/next-steps",1751036195000]