13.9K Views
July 16, 24
スライド概要
2024/07/16 第49回 Tokyo Jazug NightでのLT資料です
GitHub Actions で プライベートなネットワークに アクセスしたい 2024/07/16 第49回 Tokyo Jazug Night Shunsuke Yoshikawa
Shunsuke Yoshikawa X: @ussvgr Technical Evangelist @ AP Communications Organizer @ Platform Engineering Meetup Microsoft MVP (Microsoft Azure) 2023/06~ Kubestronaut 2024/07~
GitHub Actions で VNet 内リソースにアクセスしたい
よくある手は Self-hosted Runner VM にエージェントをインストールして、Actions のRunner として機能させる手法 VNet 内に VM を配置することで、VNet に閉じたリソースにもアクセスできる GitHub に接続して ジョブの有無を確認
Self-hosted Runner の注意点 ● ゼロスケールできず、VM の常時起動が必要 ○ ジョブ実行頻度の低い場合はコスト増になる ○ Azure Pipelines だと VMSS を利用したゼロスケールが利用可能 ■ ● Kubernetes や Azure Container Apps を使ってコンテナ化した Runner を使えば実現できるが … VM のメンテナンスの手間 ○ セキュリティアップデートなどのメンテナンスは自前で行う必要がある
もうひとつのプライベートネットワーク接続方法 GitHub が管理する GitHub-hosted Runner を Azure VNet に直接接続 する方法があります! 引用元: About Azure private networking for GitHub-hosted runners in your organization
ざっくり解説 マシンの実体は GitHub 管理下にあるが、 ユーザーの Azure サブネットに Runner の NIC が作られ、プライベートネットワークに接続される (下図左側が GitHub 環境、右側がユーザーのAzure 環境) 引用元: About Azure private networking for GitHub-hosted runners in your organization
個人的に好きなところ ● 日本リージョンに対応! ○ 現状は東日本リージョンのみ ○ 西日本のVNet内リソースにアクセスしたい場合は、 東日本のVNetとグローバル仮想ネットワークピアリングすればいけるはず ● GitHub Enterpriseだけじゃなく、Team プランにも対応!!!(2024/04~) ○ GitHub のこういう太っ腹なところが好き …😍
個人的使い分け Self-hosted Runner ● ● ● ● Azure 以外のパブリッククラウドやオンプレミスのネットワークに接続したい ジョブの実行を高頻度に行う(VM の稼働コストをペイできるか) 自社専用ソフトウェアをRunner マシンにインストールしたい セキュリティ要件からRunner マシンを自社でコントロールしたい GitHub-hosted Runner の VNet 接続 ● ● ● Azure VNet に接続したい Runner は標準の構成でよい マシンの管理をしたくない
Azure × GitHub の組み合わせはいいぞ ※Azure Pipelines も好きです!
参考ドキュメントなど セルフホステッド ランナーの概要 - GitHub Docs GitHub ホスト ランナーを使用したプライベートネットワークについて- GitHub Docs What’s new for GitHub Actions hosted runners - The GitHub Blog > Azure private networking for GitHub-hosted runners is available across Team and Enterprise plans. チュートリアル :Azure Container Apps ジョブを使用してセルフホスト型 CI/CD ランナーとエージェントをデプロイする Azure 仮想マシン スケール セット エージェント - Azure Pipelines | Microsoft Learn