🐈

AWS CDK (Cloud Development Kit) と GitHub Actions を使用してAWS環境の構築を自動化する方法

2023/08/10に公開

AWS CDK (Cloud Development Kit) と GitHub Actions を使用してAWS環境の構築を自動化する方法は以下の通りです。

  1. AWS CDKプロジェクトのセットアップ: 必要なAWSリソースを定義するためのCDKプロジェクトをセットアップします。

  2. AWS認証情報のセットアップ: AWS認証情報をGitHub Secretsに保存します。これにはAWSアクセスキーとシークレットキーが必要です。
    GitHubリポジトリのSettingsタブのSecretsに移動し、AWSの認証情報としてAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYを追加します。

  3. IAMユーザーの作成:

  • AWSコンソールにログインし、IAMダッシュボードに移動します。
  • 左側のナビゲーションパネルで「ユーザー」を選択し、右上の「ユーザーの追加」をクリックします。
  • ユーザー名を入力し、プログラムによるアクセスを選択します。

権限の設定:

  • 「既存のポリシーを直接アタッチ」を選択します。
  • 最小限の権限として、以下のポリシーを追加することをお勧めします。
    • AWSCloudFormationFullAccess: スタックの作成と管理。
    • AmazonS3FullAccess: バケットにアクセスするため。
    • IAMFullAccess: 必要なIAMロールとポリシーを作成するため。
    • AmazonEC2FullAccess: 必要なEC2インスタンスを管理するため。
    • 任意のサービスに対応する追加のポリシー。
**注意**: これらのポリシーは広範なアクセス権を提供します。本番環境での使用には、具体的なリソースと操作に対して細かく権限を設定するカスタムポリシーの作成を検討してください。
  1. 認証情報の取得と保存:

    • 「次のステップ」をクリックして、認証情報を取得します。
    • アクセスキーIDとシークレットアクセスキーをメモします。
    • GitHubリポジトリのSecretsにこれらの認証情報を追加します。
  2. GitHub Actionsワークフローの設定:
    リポジトリルートに .github/workflows ディレクトリを作成し、その中にワークフローファイル(例:cdk-deploy.yml)を作成します。

  3. ワークフローファイルの記述: 以下は、CDKを使ってAWS環境を構築するためのシンプルなGitHub Actionsワークフローの例です。

name: Deploy AWS Infrastructure

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

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

      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'

      - name: Install CDK
        run: npm install -g aws-cdk

      - name: Install dependencies
        run: npm install

      - 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: us-west-2

      - name: Build and Deploy
        run: |
          npm run build
          cdk deploy

このワークフローでは、メインブランチへのプッシュ時にAWSリソースをデプロイします。必要に応じてトリガーイベントやビルドプロセスをカスタマイズできます。

  1. プッシュとデプロイ: コードをプッシュすると、上記のGitHub Actionsワークフローがトリガーされ、AWS環境が自動的に構築されます。

Discussion