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でCloudFormationデプロイを自動化

Posted at

初めに

ローカル環境からGit pushをトリガーにCloudFormationにもスタックを作成するワークフローを使用してCFnの自動デプロイを試してみます。

リポジトリ構成

├── .github
│ └── workflows
│ └── cfn-deploy.yml
└── template.yml

※ファイルの置き場所を間違うとGithub Actionsがトリガーされないです

流れ

  • プライベートリポジトリの作成
  • AWSの認証情報を作成したリポジトリのシークレットに追加
  • GitHubにローカルからpush
  • pushをトリガーにGitHub Actionsが動く
  • CFnスタックを自動で作成

CFnテンプレート

使用するテンプレートは以前作成した冗長VPCのテンプレートです。
冗長構成WebサーバーのCloudFormationテンプレートを作成、デプロイ

ワークフロー

使用するワークフローは下記のものです。

name: Deploy CFn Stack

on: push

jobs:
  deploy-cfn:
    name: Deploy CFn Stack to AWS
    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: ${{ secrets.AWS_REGION }}

    - name: Deploy CFn Stack
      uses: aws-actions/aws-cloudformation-github-deploy@v1
      with:
        name: test-cfn-stack
        template: ./template.yml
        no-fail-on-empty-changeset: "1"

ワークフローの詳細

on: push
  • プッシュイベントが発生するとトリガーされる
jobs:
  deploy-cfn:
    name: Deploy CFn Stack to AWS
    runs-on: ubuntu-latest
  • ジョブの実行名と実行環境
 - name: Checkout
   uses: actions/checkout@v2
  • actions/checkoutを使用してリポジトリのコードをクローンする。
  • リポジトリ内のCFnテンプレートにアクセス可能となる
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
  • AWSにアクセスするための認証情報をリポジトリのシークレットからもってくる
- name: Deploy CFn Stack
  uses: aws-actions/aws-cloudformation-github-deploy@v1
  with:
    name: test-vpc-stack
    template: ./template.yml
    no-fail-on-empty-changeset: "1"
  • CloudFormationスタック作成

ローカルからリポジトリにプッシュ

git clone https://github.com/<ユーザーID>/<リポジトリ名>.git
git add .
git commit -m "(コミットの説明コメント)"
git remote add origin (リモートurl)
git push origin master

動作確認

  • ワークフロー
    スクリーンショット 2024-12-09 152555.png

  • スタック作成
    スクリーンショット 2024-12-09 152806.png

スタックの更新

  • 試しにVPCの名前を変更してpushしてみます
    スクリーンショット 2024-12-09 154053.png
test-vpc → test-vpc-2
  • 更新を確認
    スクリーンショット 2024-12-09 154334.png
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?