サーバーレスのローカル開発環境を整備する ~前編
2023-03-02 | Author : 杉 達也
はじめに
アプリケーション開発において、一定品質になるまでのコード開発とテスト・デバッグ作業はクラウドではなくローカルの PC 環境内で実施したいという声をよく耳にします。でも、サーバーレスの場合、どうすると良いのでしょう ?
本記事では、サーバーレスのためのローカル開発環境の整備とそのステップについて、代表的な開発ツール環境として Visual Studio Code、IntelliJ IDEA、 Eclipse の場合を例に取り上げてご紹介します。
builders.flash メールメンバー登録
builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。
[注記]
- 本記事では、シンプル化のために、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 について認識されている方は、このステップは飛ばしていただいて構いません。
SAM CLI / AWS Toolkit の役割を図式化
コード開発には開発ツール環境 (IDE) を使わずにテキストエディタで軽量に行いたい、という場合は、AWS Toolkit は不要です。SAM CLI / AWS Toolkit の役割を図式化すると次のようになります。 以下、ローカル環境で行う設定作業について説明します。
SAM CLI のインストール
- SAM CLI のために必要になる以下のソフトウェアをインストール (すでに対象のソフトウェアをインストール済ならその手順はスキップできます) 
- この前提が整えば、SAM CLI をインストールできます。 - Windows : こちら を Windows インストーラからインストールします。 
- Mac/Linux : Homebrew が利用可能になっていれば、以下のコマンドでインストール可能です。 
 
Mac/Linux でのインストール方法
コマンド
brew tap aws/tap
brew install aws-sam-cliAWS Toolkit のインストール
ご利用中の開発ツールごとにツールキットが異なります。以下、Visual Studio Code、IntelliJ IDEA、 Eclipse の場合を取り上げていますが、他の開発環境用のもの も選択可能です。
Visual Studio Code
- Visual Studio Code の拡張機能タブで「AWS」と入力して検索します。 
- 「AWS Toolkit」を選択してインストールします。 
- 利用したい開発言語に応じて、追加の拡張機能を設定します。必要な拡張機能は こちら から確認してください。 
 
 
                      IntelliJ IDEA
- IntelliJ IDEA のプラグインメニューから「AWS」と入力して検索します。 
- 「AWS Toolkit」を選択してインストールします。 
- 次に表示されるダイアログで利用に同意します。 
- 必要に応じて、対象となる開発言語用のプラグインを追加しておきます (Python など)。 
 
 
                      AWS 認証情報の用意
SAM CLI、AWS Toolkit ともに、ローカルマシンから AWS アカウント環境に接続するために AWS 認証情報を利用します。設定にはいくつかの方法がありますが、その中の一つの方法をご紹介します。
- AWS コンソールから IAM ユーザー設定ページ にアクセスし、開発用に管理者アクセス権を設定した IAM ユーザーを用意します。 
- そのユーザーに対する AWS 認証情報 (アクセスキー ID / シークレットキー) を生成・ダウンロードします。 
- ローカル環境に AWS 認証情報を設定します。 
 
 
                3 ローカル環境に AWS 認証情報を設定します。
開発ツール環境に AWS Toolkit が設定されていると、ツール上から AWS 認証情報を設定することができます。
Visual Studio Code
AWS Toolkit をインストールすることで表示可能になる AWS EXPLORER から接続認証を設定・切り替えることができます。
 
 
                      IntelliJ IDEA
AWS Toolkit をインストールすると、AWS 環境への接続の設定情報がツールの右下に現れます。ここから接続認証を設定・切り替えることができます。
 
 
                      開発ツール以外から設定する方法
この内容は aws/credentials ファイルに格納されます。上記のように開発ツールから設定する以外の方法として、AWS CLI を使って aws configure コマンドで名前付きプロファイルを作成する方法もあります。
まとめ
サーバーレスアプリのローカル開発環境を整備する上で重要な役割を行う SAM の認識と、代表的なツールを例にしたローカル環境での設定について紹介しました。
次回 は、実際の開発作業手順について説明します。
筆者プロフィール
杉 達也
アマゾン ウェブ サービス ジャパン合同会社
シニア サーバーレススペシャリスト 事業開発マネージャ
Serverless Specialist / BD として AWS Japan に勤務。
サーバーやインフラのことをあまり考えたくない、気にしたくないので、サーバーレスは魅力的です。サイジングやキャパシティプランニング作業からも開放されます。
早く、サーバーレスの世界を体験してもらいたい、そう思いつつ、日々その伝え方を考えています。
