サーバーレスのローカル開発環境を整備する ~前編

2023-03-02
デベロッパーのためのクラウド活用方法

Author : 杉 達也

アプリケーション開発において、一定品質になるまでのコード開発とテスト・デバッグ作業はクラウドではなくローカルの PC 環境内で実施したいという声をよく耳にします。でも、サーバーレスの場合、どうすると良いのでしょう ? 

本記事では、サーバーレスのためのローカル開発環境の整備とそのステップについて、代表的な開発ツール環境として Visual Studio Code、IntelliJ IDEA、 Eclipse の場合を例に取り上げてご紹介します。

この連載記事のその他の記事はこちら

選択
  • 選択
  • サーバーレスのローカル開発環境を整備する ~前編
  • サーバーレスのローカル開発環境を整備する ~中編
  • サーバーレスのローカル開発環境を整備する ~後編

[注記]

  • 本記事では、シンプル化のために、Lambda の zip 形式でのパッケージの場合で説明しています。コンテナ形式でのパッケージングを用いる場合は、SAM CLI のコマンドオプションに追加・変更が必要です。
  • 本記事は、次のバージョンでの内容に基づいています。
    • SAM CLI 1.95.0
    • Visual Studio Code 1.80.1、AWS Toolkit for Visual Studio Code 1.85.1
      • 開発・デバッグ可能な言語 : Python、Node.js、Java、C#、Go
    • Eclipse 2022-09 (4.25.0) / Eclipse 2021-12 (4.22.0)、AWS Toolkit for Eclipse 2.3.1
      • 開発・デバッグ可能な言語 : Java
    • IntelliJ IDEA 2023.2、AWS Toolkit for IntelliJ 1.76-232
      • 開発・デバッグ可能な言語 : Java、Python - 有償版にて Node.js、.NET にも対応

Step 1 - ローカルの開発環境 IDE でのサーバーレスアプリ開発・デバッグのデモ

みなさんはサーバーレスアプリケーションの開発において、Lambda 関数の開発やデバッグをどのようにされていますか? 本記事では、ローカルの PC 環境にサーバーレスアプリケーションの開発環境を整備し、実際の開発作業がどのようになるのかをご紹介します。なにはともあれ、実際に動作を見るのが手っ取り早い。まずは IntelliJ IDEA を用いて Java を用いたサーバーレスアプリケーション (API Gateway - Lambda - DynamoDB) の開発とデバッグを行うデモをご覧ください。

クラウドだから、サーバーレスだから、という特殊性はなく、通常と変わらない開発とデバッグの様子に見えたはずです。以降では、この環境の整備と、そこでの開発手順をご紹介します。


Step 2 - 準備: ローカル環境の整備

Step 1 で紹介したデモの環境では、ローカル PC にある開発ツールに加えて、以下の設定を事前に行なっています。

  • SAM CLI の設定 : ローカル環境でサーバーレスアプリケーションの初期構成や実行・デバッグを可能にするエミュレータ機能を含む、サーバーレスアプリケーション開発の支援機能のセットです。
  • AWS Toolkit : ご利用の開発ツールに追加するプラグインで、デプロイ先となる AWS アカウントとの連携や SAM CLI での操作を円滑に行うことができます。

SAM は、AWS CloudFormation をベースに、サーバーレスアプリケーションをより簡潔に記述できるようにした書式と、それを用いてサーバーレス開発を円滑にするためのツール群を総称しています。この SAM に SAM CLI というサーバーレスアプリケーション開発の支援コマンドラインインターフェースが含まれており、これが、ローカル環境での開発作業に大きな役割を果たします。

SAM をあまりご存知ではない方は、まずはハンズオンで学びながら体験できます。
AWS Hands-on for Beginners Serverless #2 ~ AWS SAM を使ってテンプレートからサーバーレスな環境を構築する »

SAM について認識されている方は、このステップは飛ばしていただいて構いません。

コード開発には開発ツール環境 (IDE) を使わずにテキストエディタで軽量に行いたい、という場合は、AWS Toolkit は不要です。SAM CLI / AWS Toolkit の役割を図式化すると次のようになります。

以下、ローカル環境で行う設定作業について説明します。

SAM CLI のインストール

SAM CLI のドキュメントはこちら »

  1. SAM CLI のために必要になる以下のソフトウェアをインストール (すでに対象のソフトウェアをインストール済ならその手順はスキップできます)
    • Docker : ローカルデバッグのために必要になります。こちら (Windows / Mac) に従い、インストールしてください。
    • Git : SAM による初期ファイルの設定時および次の Homebrew のために使われます。こちら に従い、インストールしてください。
    • Mac/Linux の場合のみ : Homebrew のインストール - SAM はこの機能を利用してインストールします。このため、こちらもインストールしてください (Mac / Linux)。
  2. この前提が整えば、SAM CLI をインストールできます。
    • Windows : こちら を Windows インストーラからインストールします。
    • Mac/Linux : Homebrew が利用可能になっていれば、以下のコマンドでインストール可能です。
brew tap aws/tap
brew install aws-sam-cli

AWS Toolkit のインストール

ご利用中の開発ツールごとにツールキットが異なります。以下、Visual Studio Code、IntelliJ IDEA、 Eclipse の場合を取り上げていますが、他の開発環境用のもの も選択可能です。

  • Visual Studio Code
    1. Visual Studio Code の拡張機能タブで「AWS」と入力して検索します。
    2. AWS Toolkit」を選択してインストールします。

    クリックすると拡大します

    3. 利用したい開発言語に応じて、追加の拡張機能を設定します。必要な拡張機能は こちら  から確認してください。

  • Eclipse
    1. Eclipse のヘルプメニューから「新規ソフトウェアのインストール」を選択します。
    2. 開かれるダイアログで「作業対象」に「https://aws.amazon.com/eclipse」と入力します。
    3. 名前」から「AWS Toolkit for Eclipse Core」および「AWS Lambda Plugin」にチェックを入れます。
    4. チェックを入れたソフトウェアをインストールします。

    クリックすると拡大します

  • IntelliJ IDEA
    1. IntelliJ IDEA のプラグインメニューから「AWS」と入力して検索します。
    2. AWS Toolkit」を選択してインストールします。

    クリックすると拡大します

    3. 次に表示されるダイアログで利用に同意します。

    4. 必要に応じて、対象となる開発言語用のプラグインを追加しておきます (Python など)。

AWS 認証情報の用意

SAM CLI、AWS Toolkit ともに、ローカルマシンから AWS アカウント環境に接続するために AWS 認証情報を利用します。設定にはいくつかの方法がありますが、その中の一つの方法をご紹介します。

  1. AWS コンソールから IAM ユーザー設定ページ にアクセスし、開発用に管理者アクセス権を設定した IAM ユーザーを用意します。
  2. そのユーザーに対する AWS 認証情報 (アクセスキー ID / シークレットキー) を生成・ダウンロードします。

クリックすると拡大します

3 ローカル環境に AWS 認証情報を設定します。

  • 開発ツール環境に AWS Toolkit が設定されていると、ツール上から AWS 認証情報を設定することができます。
  • Visual Studio Code
  • AWS Toolkit をインストールすることで表示可能になる AWS EXPLORER から接続認証を設定・切り替えることができます。

    クリックすると拡大します

  • Eclipse
  • AWS Toolkit をインストールすると、以下のようなダイアログで接続認証を設定・切り替えることができます。

    クリックすると拡大します

    同様の設定画面は、AWS Toolkit をインストールすることで表示可能になる AWS エクスプローラー の右上のメニューからもアクセスできます。

  • IntelliJ IDEA
  • AWS Toolkit をインストールすると、AWS 環境への接続の設定情報がツールの右下に現れます。ここから接続認証を設定・切り替えることができます。

    クリックすると拡大します

この内容は .aws/credentials ファイルに格納されます。上記のように開発ツールから設定する以外の方法として、AWS CLI を使って aws configure コマンドで名前付きプロファイルを作成する方法もあります(詳しくはこちら »)。


まとめ

サーバーレスアプリのローカル開発環境を整備する上で重要な役割を行う SAM の認識と、代表的なツールを例にしたローカル環境での設定について紹介しました。

次回 は、実際の開発作業手順について説明します。

この連載記事のその他の記事はこちら

選択
  • 選択
  • サーバーレスのローカル開発環境を整備する ~前編
  • サーバーレスのローカル開発環境を整備する ~中編
  • サーバーレスのローカル開発環境を整備する ~後編

builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます


筆者プロフィール

杉 達也
アマゾン ウェブ サービス ジャパン合同会社
シニア サーバーレススペシャリスト 事業開発マネージャ

Serverless Specialist / BD として AWS Japan に勤務。
サーバーやインフラのことをあまり考えたくない、気にしたくないので、サーバーレスは魅力的です。サイジングやキャパシティプランニング作業からも開放されます。
早く、サーバーレスの世界を体験してもらいたい、そう思いつつ、日々その伝え方を考えています。

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する