Skip to content
Latchkey

GHCR vs Amazon ECR: CIに適したregistryはどちら?

GHCRはGitHub Actionsとシームレスに統合される。ECRはAWSのdeployおよびIAMと統合される - deploy先が通常決め手となる。

GitHub Container Registry(GHCR)は、Actionsの組み込みauthとともに、GitHubリポジトリと並べてイメージを保存します。Amazon ECRはAWSのregistryで、IAMおよびAWSのcompute(ECS、EKS、Lambda)と密に統合されています。

GHCRAmazon ECR
CIでのauthGITHUB_TOKEN 組み込みAWS IAM / OIDC
最も密な統合GitHub ActionsAWS compute (ECS/EKS/Lambda)
コストモデルGitHubプランのstorage/egressAWSのstorage + データ転送
AWSへのpull速度インターネット経由in-region、AWSへ高速
最適な用途GitHub中心のworkflowAWSへのdeploy

CIでは

組み込みのGITHUB_TOKENでGHCR経由のpushとpullを行うのは、GitHub Actions内では摩擦がありません。ECRはAWSにdeployする場合の自然な選択肢です。イメージはECS/EKS/Lambdaの隣にin-regionで存在し、高速でIAMスコープのpullが可能で、ActionsからAWSへのOIDCが長期の鍵を回避します。決め手は通常、イメージがどこにdeployされるかです。

パイプラインでの選び方

AWSのcomputeにdeployする: in-region pullとIAMにはECR。GitHub中心のworkflowや非AWSのターゲット: 組み込みのauthにはGHCR。一部のチームは一度buildして両方へpushします - 共有にはGHCR、AWSへのdeployにはECR。

結論

AWSにdeployする: in-regionでIAMスコープのpullにはECR。GitHub中心または非AWS: 組み込みのActions authにはGHCR。deploy先に選ばせ、両方へpushすることも検討しましょう。

関連ガイド