2023.03.20 技術

GitHub ActionsとAWS Lambdaを使った自動デプロイの実践

概要

この記事では、GitHub Actionsを使用して、AWS Lambdaにコードを自動的にデプロイする方法を解説します。上記のソースコードを使って、自動デプロイの仕組みを構築する手順とその利点を説明します。

目次

  1. はじめに
  2. AWS Lambdaとは
  3. GitHub Actionsとは
  4. 自動デプロイの設定方法
    4.1. GitHubリポジトリの準備
    4.2. AWS Lambda関数の作成
    4.3. GitHub Actionsの設定
    4.4. ソースコードの説明
  5. 自動デプロイの利点
  6. まとめ

1. はじめに

最近、クラウドサービスとCI/CDツールの組み合わせにより、開発者はより効率的にコードをデプロイすることができます。この記事では、GitHub ActionsとAWS Lambdaを組み合わせた自動デプロイの設定方法について解説します。

2. AWS Lambdaとは

AWS Lambdaは、サーバーレスコンピューティングサービスであり、関数を実行するためにサーバーの管理やプロビジョニングを気にすることなく、コードを実行できます。これにより、開発者はコードの実行に集中し、インフラの管理を簡素化できます。

3. GitHub Actionsとは

GitHub Actionsは、GitHubリポジトリ内でCI/CDワークフローを自動化するためのツールです。GitHub Actionsを使用することで、コードのテストやデプロイなどの一連のタスクを自動化できます。

4. 自動デプロイの設定方法

4.1. GitHubリポジトリの準備

最初に、GitHubリポジトリを作成し、ソースコードをコミットしてください。

4.2. AWS Lambda関数の作成

AWSコンソールでLambda関数を作成し、ARN(Amazonリソースネーム)をメモしておきます。

4.3. GitHub Actionsの設定

GitHubリポジトリに.github/workflows/deploy.ymlファイルを作成し、上記のソースコードを記述します。環境変数の設定も忘れずに行ってください。

4.4. ソースコードの説明

name: Deploy to AWS Lambda

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

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

    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: 3.9

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        cd app
        pip install -r requirements.txt -t .

    - name: Package Lambda function
      run: |
        cd app
        zip -r lambda_function.zip .

    - 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: Deploy to AWS Lambda
      run: |
        aws lambda update-function-code --function-name ${{ secrets.FUNCTION_NAME }} --zip-file fileb://app/lambda_function.zip

上記のソースコードでは、mainブランチへのプッシュをトリガーに、GitHub Actionsが起動します。Python環境のセットアップや依存関係のインストールを行い、Lambda関数をパッケージングしてAWS Lambdaにデプロイします。また、AWS認証情報はGitHubのシークレット機能を使用して安全に保管します。

5. 自動デプロイの利点

自動デプロイには以下のような利点があります。

  • 手動でのデプロイ作業を削減し、開発者が本来の開発作業に集中できる
  • 開発チーム間でのデプロイ手順の統一が容易になる
  • コードがデプロイされるタイミングを制御しやすくなる
  • エラーが発生した際に迅速に検知し、修正が容易になる

6. まとめ

この記事では、GitHub Actionsを使用してAWS Lambdaにコードを自動デプロイする方法を解説しました。自動デプロイを利用することで、開発者は手間を削減し、より効率的に開発作業に取り組むことができます。今後もCI/CDツールやクラウドサービスを活用し、開発プロセスを最適化していきましょう。

CATEGORY

Contactお問い合わせ

案件のご相談など、
お気軽にご連絡ください。