AWSと統合する
GitLabとAWSを統合する方法について学びます。
このコンテンツは、GitLabチームメンバーおよび広範なコミュニティのメンバーを対象としています。
特に記載がない限り、このすべてのコンテンツはGitLab.comとGitLab Self-Managedインスタンスの両方に適用されます。
GitLabは、一般的な設定、いずれかのプラットフォームに組み込まれた機能、および専用ソリューションを通じてAWSと統合します。
| テキストタグ | 設定 / ビルトイン / ソリューション | サポート/メンテナンス |
|---|---|---|
[AWS Configuration] | 既存のAWS機能の設定によるインテグレーション | AWS |
[GitLab Configuration] | 既存のGitLab機能の設定によるインテグレーション | GitLab |
[AWS Built] | AWSインテグレーションに対応するために製品チームによってAWSに組み込まれています | AWS |
[GitLab Built] | AWSインテグレーションに対応するために製品チームによってGitLabに組み込まれています | GitLab |
[AWS Solution] | AWSまたはAWSパートナーによってソリューション例として構築されています | コミュニティ/例 |
[GitLab Solution] | GitLabまたはGitLabパートナーによってソリューション例として構築されています | コミュニティ/例 |
[CI Solution] | 少なくとも一部はGitLab CIを使用して構築されているため より顧客がカスタマイズ可能です。 | [CI Solution]とタグ付けされた項目は他のタグのいずれか メンテナンスステータスを示すものです。 |
開発アクティビティ向けインテグレーション
これらのインテグレーションは、GitLabを使用してアプリケーションのワークロードをビルドすることと、それらをAWSにデプロイすることに関連しています。
SCMインテグレーション
AWS CodeStar Connectionインテグレーション
2023/8/14 AWSリリースのお知らせ(GitLab.com向け)
2023/12/28 AWSリリースのお知らせ(GitLab Self-Managed / GitLab Dedicated向け)
AWS CodeStar Connections - 複数のAWSサービスへのSCM接続を有効にします。GitLabを設定する。サポートされているプロバイダー。サポートされているAWSサービス - それぞれがGitLabをサポートするために更新が必要になる場合があります。そのため、GitLabをサポートするサブセットを次に示します。これはGitLab.com、GitLab Self-Managed、およびGitLab Dedicatedで動作します。AWS CodeStar ConnectionsはすべてのAWSリージョンで利用できません - 除外リストについてはこちらをご覧ください。(2023/12/28)[AWS Built]
AWS CodeStar Connectionインテグレーションの動画解説(1分)
AWSサービスのうち、AWSアカウント内のCodeStar Connectionによって直接サポートされているもの:
- AWS Service CatalogはCodeStar Connectionsを直接継承します。GitLabに関する特定のドキュメントはありません。なぜなら、アカウントで作成された任意のGitLab CodeStar Connectionを使用するだけだからです。(2023/12/28)
[AWS Built] - AWS ProtonはCodeStar Connectionsを直接継承します。GitLabに関する特定のドキュメントはありません。なぜなら、アカウントで作成された任意のGitLab CodeStar Connectionを使用するだけだからです。(2023/12/28)
[AWS Built] - AWS CodeBuild - GitLab.com、Self-ManagedおよびDedicated向け - ドキュメントタブをここでクリックしてください。(2024/03/26)
[AWS Built]
ドキュメントと参照:
- GitLab CodeStar ConnectionをGitLab.comプロジェクトに作成する
- AWS CodeStar ConnectionをGitLab Self-ManagedまたはGitLab Dedicated向けに作成する(AWSからのインターネットIngressを許可するか、VPC接続を使用する必要があります)
AWS CodePipelineインテグレーション
AWS CodePipelineインテグレーション - GitLabをCodePipelineのCodeStar Connectionsソースとして使用することで、追加のAWSサービスインテグレーションが利用可能です。(2023/12/28)[AWS Built]
AWSサービスのうち、AWS CodePipelineインテグレーションによってサポートされているもの:
- Amazon SageMaker MLOps Projectsは(ここに記載されているように)CodePipelineを介して作成されます。GitLabに関する特定のドキュメントはありません。アカウントで作成された任意のGitLab CodeStar Connectionを使用するだけだからです。(2023/12/28)
[AWS Built]
ドキュメントと参照:
- GitLab CodePipelineインテグレーションをGitLab.comプロジェクトに作成する
- AWS CodePipelineインテグレーションをGitLab Self-ManagedまたはGitLab Dedicated向けに作成する(AWSからのインターネットIngressを許可するか、VPC接続を使用する必要があります)
CodeStar Connectionsが有効な、GitLabではまだサポートされていないAWSサービス
- AWS CloudFormationのパブリック拡張機能の公開 - まだサポートされていません。
[AWS Built] - Amazon CodeGuru Reviewerリポジトリ - まだサポートされていません。
[AWS Built] - AWS App Runner - まだサポートされていません。
[AWS Built]
AWSサービスにおけるカスタムGitLabインテグレーション
- Amazon SageMakerノートブックはGit clone URLによってGitリポジトリを指定することを許可し、シークレットの設定を可能にします。そのため、GitLabは設定可能です。(2023/12/28)
[AWS Configuration] - AWS Amplify - AWS Amplifyチームによって設計されたGitインテグレーションメカニズムを使用します。
[AWS Built] - AWS Glueノートブックジョブは、GitLabリポジトリURLと、「ジョブ」レベルでのパーソナルアクセストークン(PAT)認証をサポートします。(2022/10/03)GitLabの設定に関するAWSドキュメント
[AWS Configuration]
その他のSCMインテグレーションオプション
- GitLabプッシュミラーからAWS CodeCommitへの回避策は、GitLabリポジトリがCodePipeline SCMトリガーを活用できるようにします。GitLabは、すでにCodePipeline向けにS3およびコンテナトリガーを活用できます。この回避策により、ドキュメント化されて以来CodePipelineの機能が有効になりました。(2020/06/06)
[GitLab Configuration]
継続的デプロイ(CD)固有の、利用可能なインテグレーションについては、以下のCDおよびオペレーションインテグレーションを参照してください。
CIインテグレーション
- キー、IAM、OIDC/JWTを使用してGitLab RunnerからAWSサービスに認証する直接CIインテグレーション
- GitLab CIを使用したAmazon CodeGuru Reviewer CIワークフロー - 実施可能ですが、まだドキュメント化されていません。
[AWS Solution][CI Solution] - GitLab CIを使用したAmazon CodeGuru Secure Scanning(2022/06/13)
[AWS Solution][CI Solution]
CDおよびオペレーションインテグレーション
- AWS CodeDeploy Integration - 以前にSCMインテグレーションで説明したCodePipelineサポートを通じて。この機能により、GitLabはAWSにおける高度なデプロイサブシステムのこのリストとインターフェースできます。(2023/12/28)
[AWS Built] - AWS SAM Pipelines - GitLab向けパイプラインサポート。(2021/7/31)
- アプリケーションデプロイ向けにAmazon Elastic Kubernetes Serviceクラスターを統合。
[GitLab Built] - GitLabがビルドアーティファクトをCodePipelineによって監視されているS3の場所にプッシュ
[AWS Built] - GitLabがコンテナをCodePipelineによって監視されているAWS ECRにプッシュ
[AWS Built] - GitLab.comのコンテナレジストリを、プルスルーキャッシュルールを介してAWS ECRのアップストリームレジストリとして使用する 設定チュートリアル
[AWS Built]
特定の開発フレームワークまたはエコシステムの開発とデプロイのためのエンドツーエンドソリューション
一般的に、ソリューションは開発フレームワークのエンドツーエンド機能を示します。これは、すべての関連するインテグレーション手法を活用して、GitLabとAWSを一緒に使用することによる最大の価値を示すものです。
Serverless
- エンタープライズDevOpsブループリント: Serverless Framework Apps on AWS - 動作する例コードとチュートリアル。
[GitLab Solution][CI Solution]- チュートリアル: Serverless FrameworkのAWSへのデプロイとGitLab Serverless SASTスキャン
[GitLab Solution][CI Solution] - チュートリアル: GitLabセキュリティポリシー承認ルールとマネージドDevOps環境を使用した安全なServerless Framework開発
[GitLab Solution][CI Solution]
- チュートリアル: Serverless FrameworkのAWSへのデプロイとGitLab Serverless SASTスキャン
Terraform
- エンタープライズDevOpsブループリント: TerraformのAWSへのデプロイ
- チュートリアル: TerraformのAWSへのデプロイとGitLab IaC SASTスキャン
[GitLab Solution][CI Solution] - GitLabセキュリティポリシー承認ルールとマネージドDevOps環境を使用したTerraformのAWSへのデプロイ
[GitLab Solution][CI Solution]
- チュートリアル: TerraformのAWSへのデプロイとGitLab IaC SASTスキャン
CloudFormation
CloudFormationの開発とデプロイ(GitLabライフサイクルマネージドDevOps環境の動作コードを使用) [GitLab Solution] [CI Solution]
CDK
- AWS CDKを使用したGitLabパイプラインにおけるクロスアカウントデプロイの構築
[AWS Solution][CI Solution]
.NET on AWS
- .NET Framework 4.x RunnerをAWSでスケールするための動作する例コード
[GitLab Solution][CI Solution] - コードのビデオウォークスルーと.NET Framework 4.xプロジェクトをビルドする
[GitLab Solution][CI Solution]
GitLabとAWSのシステム間インテグレーション
AWS Identity Provider(IDP)は、GitLabへの認証を設定できます。また、GitLabはAWSアカウントへのIDPとして機能することもできます。
GitLab.comのトップレベルグループは「ネームスペース」とも呼ばれ、会社名にちなんで名前を付けることがGitLab.comで組織のテナントを設定するための最初のステップです。ネームスペースは、SSOのような特殊な機能のために設定でき、その後IDPをGitLabに統合します。
GitLabとAWS間のユーザー認証と認可
- GitLab.comグループ向けSAML SSO
[GitLab Configuration]- GitLab.comのみ - GitLabとLDAPを統合
[GitLab Configuration]- GitLab Self-Managedのみ
Runnerワークロードの認証と認可インテグレーション
- OpenIDとJWT認証を使用したRunnerジョブ認証。
[GitLab Built]- GitLabとAWS間のOpenID Connectを設定する
[GitLab Solution][CI Solution] - OIDCと、GitLabおよびECSを使用したマルチアカウントデプロイ
[GitLab Solution][CI Solution]
- GitLabとAWS間のOpenID Connectを設定する
AWSにデプロイされたGitLabインフラストラクチャワークロード
GitLabは最大500ユーザーまで単一のボックスにデプロイできますが、50,000などの非常に多くのユーザー向けに水平にスケールすると、複雑な多層プラットフォームに拡張され、AWSへのデプロイから恩恵を受けます。GitLabは、AWSサービスによって支えられている場合、サポートされ、定期的にテストされています。GitLabは、従来のスケーリング向けにEC2に、およびクラウドネイティブハイブリッド実装のAWS Amazon Elastic Kubernetes Serviceにデプロイ可能です。特定のサービスレイヤーは、Gitに共通するワークロードの形状(およびGitプロセスがそのワークロードの多様性を処理する方法に共通する)のためコンテナクラスターに配置できないため、ハイブリッドと呼ばれます。
GitLabインスタンスコンピューティングおよびオペレーションインテグレーション
- GitLab Self-ManagedをAWSにインストール
- GitLabをデプロイする際に使用できるAWSサービス
- GitLab単一EC2インスタンス。
[GitLab Built]- 5シートのAWSマーケットプレイスサブスクリプションを使用する
- 準備されたAMIを使用する - エンタープライズ版には独自のライセンスを使用します。
- AWS Amazon Elastic Kubernetes ServiceとPaaSでスケールされたGitLabクラウドネイティブハイブリッド。
[GitLab Built]- GitLab Environment Toolkit(GET)を使用する -
[GitLab Solution]
- GitLab Environment Toolkit(GET)を使用する -
- GitLabインスタンスがAWS EC2およびPaaSでスケールされました。
[GitLab Built]- GitLab Environment Toolkit(GET)を使用する -
[GitLab Solution]
- GitLab Environment Toolkit(GET)を使用する -
- Amazon Managed Grafana(GitLab Self-Managed Prometheusメトリクス向け)。
[AWS Built]
AWSコンピューティング上のRunner
- GitLab Runner Autoscaler - Runnerチームによって構築されたコアテクノロジー。
[GitLab Built] - Runner Infrastructure Toolkit(GRIT) - Runnerチームが管理するマネージドInfrastructure as Code。GitLab Runner Autoscalerのようなものをデプロイするために必要です。
[GitLab Built] - AWS EC2でのRunnerのオートスケール。
[GitLab Built] - AWS EC2 ASG向けのGitLab HAスケーリングRunnerベンディングマシン。
[GitLab Solution]- Runnerベンディングマシンのトレーニングリソース。
- GitLab Amazon Elastic Kubernetes Service Fargate Runner。
[GitLab Solution]