🐈
AWS CDK (Cloud Development Kit) と GitHub Actions を使用してAWS環境の構築を自動化する方法
AWS CDK (Cloud Development Kit) と GitHub Actions を使用してAWS環境の構築を自動化する方法は以下の通りです。
-
AWS CDKプロジェクトのセットアップ: 必要なAWSリソースを定義するためのCDKプロジェクトをセットアップします。
-
AWS認証情報のセットアップ: AWS認証情報をGitHub Secretsに保存します。これにはAWSアクセスキーとシークレットキーが必要です。
GitHubリポジトリのSettingsタブのSecretsに移動し、AWSの認証情報としてAWS_ACCESS_KEY_ID
とAWS_SECRET_ACCESS_KEY
を追加します。 -
IAMユーザーの作成:
- AWSコンソールにログインし、IAMダッシュボードに移動します。
- 左側のナビゲーションパネルで「ユーザー」を選択し、右上の「ユーザーの追加」をクリックします。
- ユーザー名を入力し、プログラムによるアクセスを選択します。
権限の設定:
- 「既存のポリシーを直接アタッチ」を選択します。
- 最小限の権限として、以下のポリシーを追加することをお勧めします。
-
AWSCloudFormationFullAccess
: スタックの作成と管理。 -
AmazonS3FullAccess
: バケットにアクセスするため。 -
IAMFullAccess
: 必要なIAMロールとポリシーを作成するため。 -
AmazonEC2FullAccess
: 必要なEC2インスタンスを管理するため。 - 任意のサービスに対応する追加のポリシー。
-
**注意**: これらのポリシーは広範なアクセス権を提供します。本番環境での使用には、具体的なリソースと操作に対して細かく権限を設定するカスタムポリシーの作成を検討してください。
-
認証情報の取得と保存:
- 「次のステップ」をクリックして、認証情報を取得します。
- アクセスキーIDとシークレットアクセスキーをメモします。
- GitHubリポジトリのSecretsにこれらの認証情報を追加します。
-
GitHub Actionsワークフローの設定:
リポジトリルートに.github/workflows
ディレクトリを作成し、その中にワークフローファイル(例:cdk-deploy.yml
)を作成します。 -
ワークフローファイルの記述: 以下は、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リソースをデプロイします。必要に応じてトリガーイベントやビルドプロセスをカスタマイズできます。
- プッシュとデプロイ: コードをプッシュすると、上記のGitHub Actionsワークフローがトリガーされ、AWS環境が自動的に構築されます。
Discussion