[アップデート]AWS CodeConnectionsがアカウント間で共有可能になったので実際に試してみた

[アップデート]AWS CodeConnectionsがアカウント間で共有可能になったので実際に試してみた

AWS CodeConnectionsがアカウント間で共有可能になりました!
Clock Icon2025.03.07

お疲れさまです。とーちです。

AWS のアップデートを眺めていたら、CodeConnectionsがAWSアカウント間で共有できるようになったというアップデートを見かけてオッとなったので、早速試してみました。

https://aws.amazon.com/about-aws/whats-new/2025/03/sharing-connections-aws-codeconnections

とりあえずまとめ

  • AWS CodeConnectionsの接続を複数のAWSアカウント間で共有できるようになった
  • 共有にはAWS Resource Access Manager(RAM)を使用
  • 共有されたCodeConnectionsを使って、別アカウントでもCodePipelineなどのCI/CDサービスを構築可能
  • 現時点では特定のリージョン(バージニア北部、オハイオ、オレゴンなど)でのみ利用可能

AWS CodeConnectionsとは?

AWS CodeConnectionsは、AWSのCI/CDサービス群(CodePipeline、CodeBuild、CodeDeploy)と外部のコードリポジトリ(GitHub、BitBucket、GitLab)を接続するためのサービスです。以前は「AWS CodeStar Connections」という名称でしたが、現在は「AWS CodeConnections」という名称に変更されています。

CodeConnectionsの接続を共有する

CodeConnectionsの接続を共有するには、AWS Resource Access Manager(RAM)を使って行います。それでは早速作ってみましょう。

CodeConnectionsのコネクションを作成する

まずはCodeConnectionsのコネクションを作成するところから始めます。このページを参考にGitHubとのコネクションを作成していきます。コネクションをGitHub Organizations配下のリポジトリと接続するには、GitHub Organizationsの所有者である必要がありますので注意してください。

image.png

コネクションを作成すると、以下のような画面が表示されます。同じブラウザでGitHubにログイン済みだからか、自分のGitHubユーザー名が表示されていました。緑のボタンを押します。

image.png

次の画面ではGitHubアプリをインストールするかどうかを選択します。GitHubアプリは、GitHubのAPIと統合するためのサービスで、リポジトリやOrganizationに対して特定の権限を持ち、自動化されたタスクを実行できるものです。

「新しいアプリをインストールする」を選択します。

image.png

するとこんな画面が出てきたので、Githubアプリをインストールする組織またはアカウントを選択します。

image.png

次の画面ですべてのリポジトリと接続するか特定のリポジトリのみと接続するかを選びます。とりあえず特定のリポジトリにのみ接続できるようにしました。

image.png

次の画面でGitHubへの認証画面が表示されるので、自分が設定している認証手段で認証を完了させます。すると元の画面に戻ってくるので接続ボタンを押します。

image.png

これで正常にConnectionが作成されました。

image.png

Connectionを別アカウントに共有する

今回のアップデート内容である、CodeConnectionsで作ったコネクションを別アカウントに共有する作業をしていきます。

まずはResource Access Managerの画面を開きます。この際にリージョンをバージニア北部にするのを忘れないようにしましょう。上でも記載しましたが、私が試した時点(2025/3/7)では少なくともマネージメントコンソールでは、Resource Access ManagerによるCodeConnectionの共有は特定のリージョンでしか作成できないためです。

image.png

リソース共有設定を入力します。Nameには適当な名前を入れます。

image.png

リソースの「リソースタイプを選択」を選びcodeと入力すると候補にCode Connectionsが出てくるのでこれを選びましょう。

image.png

作成したCodeConnectionsを選択して次へボタンを押します。

image.png

リソース共有内のリソースに対してどのような操作ができるかを設定します。今回はデフォルトの「AWS 管理アクセス許可」にします(参考)。

image.png

次にどのアカウント、どの組織と共有するかを選択します。今回はとりあえず特定のアカウントに共有します。

image.png

次の画面で「リソース共有を作成」ボタンを押せばリソース共有元の設定は完了です。

リソース共有が作成できたので、共有先のAWSアカウントのマネージメントコンソールにログインします。共有先でもバージニア北部リージョンで作業します。以下の画面のように招待がきているはずなので、リソース共有名をクリックします。

image.png

「リソース共有を承認」を押し、承諾すると共有リソースへのアクセスが可能になります。

image.png

CodeConnectionsの画面に行ってみると、画面上にも共有されたコネクションがちゃんと表示されていました。

image.png

共有されたCodeConnectionsを使ってCodePipelineを動かす

共有されたCodeConnectionsを使ってCodePipelineを動かしてみます。そのためにパイプラインを作っていきます。

image.png

ソースプロバイダにGitHubを指定し、接続に共有されたコネクションを使います。リポジトリ名とデフォルトブランチは選択できる中から選びます。

image.png

コードをpullしてきたあとにちゃんとpullできているか確認するために、lsコマンドだけ実行してみます。

image.png

全体の設定はこんな感じです。これでパイプラインを作成します。

image.png

するとパイプラインがさっそく動き始めました。

CleanShot 2025-03-07 at 07.32.57.png

Buildのフェーズも成功したので中を見てみると、以下の通りちゃんと目的のコードが取得できています。

image.png

まとめ

以上、CodeConnectionsを他アカウントに共有できるようになったアップデートでした。

これまではアカウントごとにConnectionを作らないといけなかったので同じ設定を何度も作成することになり面倒でしたが、このアップデートにより、1アカウントで作ったConnectionを使い回せるようになったのでAWS上でのCI/CDが捗りそうですね。

最近はCode系のアップデートもかなり多いように見受けられるので、AWSとしてもAWS上でCI/CDパイプラインを作るという動きを活性化したいのかなと思ったりしました。

以上、とーちでした。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.