0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub ActionsからECRへのpush: ローカルキャッシュ・リモートキャッシュの違い

Posted at

はじめに

GitHub ActionsでのDockerイメージのビルドとプッシュにおいて、ビルド時間を短縮するためにキャッシュを活用することができます。
このキャッシュには、ローカルキャッシュとリモートキャッシュ(ECR)の2種類があり、それぞれに特徴があります。

キャッシュの種類と実装方法

ローカルキャッシュ

GitHub Actionsのランナー上にキャッシュを保存する方法です。

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Cache Docker layers
        uses: actions/cache@v3
        with:
          path: /tmp/.buildx-cache
          key: ${{ runner.os }}-buildx-${{ github.sha }}
          restore-keys: |
            ${{ runner.os }}-buildx-

      - name: Build and push
        uses: docker/build-push-action@v4
        with:
          context: .
          push: true
          tags: ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ github.sha }}
          cache-from: type=gha,src=/tmp/.buildx-cache
          cache-to: type=gha,dest=/tmp/.buildx-cache-new

リモートキャッシュ(ECR)

ECRにキャッシュを保存する方法です。

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Build and push
        uses: docker/build-push-action@v4
        with:
          context: .
          push: true
          tags: ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ github.sha }}
          cache-from: type=registry,ref=${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:buildcache
          cache-to: type=registry,ref=${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:buildcache,mode=max

参考記事
https://aws.amazon.com/jp/blogs/news/announcing-remote-cache-support-in-amazon-ecr-for-buildkit-clients/

キャッシュの特徴比較

ローカルキャッシュの特徴

メリット

  • 高速なアクセス(ローカルディスク上)
  • セットアップが簡単
  • GitHub Actionsの標準機能を使用
  • 追加コストなし

デメリット

  • GitHub Actionsのストレージ制限の対象
  • キャッシュサイズに制限(10GB程度)

リモートキャッシュの特徴

メリット

  • チーム間で共有可能
  • 永続的な保存
  • 容量制限がない(ECRの制限内)
  • 異なるCI/CD環境でも使用可能

デメリット

  • ネットワーク通信が必要
  • ECRの追加コスト
  • 権限設定が必要

まとめ

選択の基準:

  • 小・中規模プロジェクト → ローカルキャッシュ
  • 柔軟な運用・大規模チーム開発 → リモートキャッシュ

プロジェクトの規模や要件に応じて、適切なキャッシュ方式を選択することが重要です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?