[アップデート]AWS CodeConnectionsがアカウント間で共有可能になったので実際に試してみた
お疲れさまです。とーちです。
AWS のアップデートを眺めていたら、CodeConnectionsがAWSアカウント間で共有できるようになったというアップデートを見かけてオッとなったので、早速試してみました。
とりあえずまとめ
- 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の所有者である必要がありますので注意してください。
コネクションを作成すると、以下のような画面が表示されます。同じブラウザでGitHubにログイン済みだからか、自分のGitHubユーザー名が表示されていました。緑のボタンを押します。
次の画面ではGitHubアプリをインストールするかどうかを選択します。GitHubアプリは、GitHubのAPIと統合するためのサービスで、リポジトリやOrganizationに対して特定の権限を持ち、自動化されたタスクを実行できるものです。
「新しいアプリをインストールする」を選択します。
するとこんな画面が出てきたので、Githubアプリをインストールする組織またはアカウントを選択します。
次の画面ですべてのリポジトリと接続するか特定のリポジトリのみと接続するかを選びます。とりあえず特定のリポジトリにのみ接続できるようにしました。
次の画面でGitHubへの認証画面が表示されるので、自分が設定している認証手段で認証を完了させます。すると元の画面に戻ってくるので接続ボタンを押します。
これで正常にConnectionが作成されました。
Connectionを別アカウントに共有する
今回のアップデート内容である、CodeConnectionsで作ったコネクションを別アカウントに共有する作業をしていきます。
まずはResource Access Managerの画面を開きます。この際にリージョンをバージニア北部にするのを忘れないようにしましょう。上でも記載しましたが、私が試した時点(2025/3/7)では少なくともマネージメントコンソールでは、Resource Access ManagerによるCodeConnectionの共有は特定のリージョンでしか作成できないためです。
リソース共有設定を入力します。Nameには適当な名前を入れます。
リソースの「リソースタイプを選択」を選びcodeと入力すると候補にCode Connectionsが出てくるのでこれを選びましょう。
作成したCodeConnectionsを選択して次へボタンを押します。
リソース共有内のリソースに対してどのような操作ができるかを設定します。今回はデフォルトの「AWS 管理アクセス許可」にします(参考)。
次にどのアカウント、どの組織と共有するかを選択します。今回はとりあえず特定のアカウントに共有します。
次の画面で「リソース共有を作成」ボタンを押せばリソース共有元の設定は完了です。
リソース共有が作成できたので、共有先のAWSアカウントのマネージメントコンソールにログインします。共有先でもバージニア北部リージョンで作業します。以下の画面のように招待がきているはずなので、リソース共有名をクリックします。
「リソース共有を承認」を押し、承諾すると共有リソースへのアクセスが可能になります。
CodeConnectionsの画面に行ってみると、画面上にも共有されたコネクションがちゃんと表示されていました。
共有されたCodeConnectionsを使ってCodePipelineを動かす
共有されたCodeConnectionsを使ってCodePipelineを動かしてみます。そのためにパイプラインを作っていきます。
ソースプロバイダにGitHubを指定し、接続に共有されたコネクションを使います。リポジトリ名とデフォルトブランチは選択できる中から選びます。
コードをpullしてきたあとにちゃんとpullできているか確認するために、lsコマンドだけ実行してみます。
全体の設定はこんな感じです。これでパイプラインを作成します。
するとパイプラインがさっそく動き始めました。
Buildのフェーズも成功したので中を見てみると、以下の通りちゃんと目的のコードが取得できています。
まとめ
以上、CodeConnectionsを他アカウントに共有できるようになったアップデートでした。
これまではアカウントごとにConnectionを作らないといけなかったので同じ設定を何度も作成することになり面倒でしたが、このアップデートにより、1アカウントで作ったConnectionを使い回せるようになったのでAWS上でのCI/CDが捗りそうですね。
最近はCode系のアップデートもかなり多いように見受けられるので、AWSとしてもAWS上でCI/CDパイプラインを作るという動きを活性化したいのかなと思ったりしました。
以上、とーちでした。