1
0

More than 1 year has passed since last update.

GitHub Actions を使って AWS の S3 へデプロイする

Last updated at Posted at 2021-02-25

GitHub Actions を使って AWS の S3 へデプロイするための環境設定手順を記載します

S3 バケットの作成

アップロードする先の S3 バケットを作成しておきましょう

AWS IAM の作成

S3 へアクセス可能な IAM ユーザーを作成します

  1. AWS IAM へ遷移する
  2. アクセス管理のユーザーへ遷移する
  3. ユーザーを追加ボタンを押下する
  4. ユーザー名に適当な名前「github」などを入力し、「プログラムによるアクセス」にチェックを付けて次のステップボタンを押下する
  5. アクセス許可の設定へ遷移するので、「既存のポリシーを直接アタッチ」を選択して「AmazonS3FullAccess」にチェックを付けて次のステップボタンを押下する
  6. タグの追加画面に遷移するので、次のステップボタンを押下する
  7. ユーザーの作成確認画面に遷移するので、ユーザーの作成ボタンを押下する
  8. ユーザーが作成されたら、「アクセスキー ID」「シークレットアクセスキー」をメモするか、.csvのダウンロードをしておく

GitHub リポジトリの Secrets へ AWS 接続情報を登録

GitHub リポジトリの Secrets へ AWS 接続情報を登録します

  1. S3 へアップロードする GitHub リポジトリの Settings を選択する
  2. Secrets メニューへ遷移する
  3. Actions secrets で、New repository secret ボタンを押下する
  4. 以下の内容で各追加する
Name Value
AWS_ACCESS_KEY_ID (作成したIAMユーザーのアクセスキーID)
AWS_SECRET_ACCESS_KEY (作成したIAMユーザーのシークレットアクセスキー)
S3_BUCKET (アップロードする先の S3 バケット名)

GitHub Actions 用のワークフローを定義

  1. GitHub で Actions へ遷移し、「set up a workflow yourself」のリンクをクリックする
  2. Edit new file に以下の内容を記載して、Start commit ボタンを押下し、コミットテキスト「GitHub Actions の設定を追加」などを入力して Commit new file ボタンを押下する
name: Amazon S3 Upload

on:
  push:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ap-northeast-1

      - name: Upload to S3
        env: 
          S3_UPLOAD_BUCKET: ${{ secrets.S3_BUCKET }}
        run: |
          aws s3 sync . s3://$S3_UPLOAD_BUCKET/ --delete --exclude "README.md" --exclude ".git/*" --exclude ".github/*" --exclude ".gitignore"

これで master ブランチへファイルをPUSHするごとに、S3 へファイルがアプロードされます

ワークフローの状態は、GitHub リポジトリの Actions へ遷移してみてください

プルリクエストマージ時にしたい場合や、S3 アップ後に CloudFront のキャッシュを削除したいなど、場合によってワークフローの定義を編集してください

1
0
2

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
1
0