サーバーレスのローカル開発環境を整備する ~前編
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 にも対応
- SAM CLI 1.95.0
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 のために必要になる以下のソフトウェアをインストール (すでに対象のソフトウェアをインストール済ならその手順はスキップできます)
- この前提が整えば、SAM CLI をインストールできます。
- Windows : こちら を Windows インストーラからインストールします。
- Mac/Linux : Homebrew が利用可能になっていれば、以下のコマンドでインストール可能です。
- Windows : こちら を Windows インストーラからインストールします。
brew tap aws/tap
brew install aws-sam-cli
AWS Toolkit のインストール
ご利用中の開発ツールごとにツールキットが異なります。以下、Visual Studio Code、IntelliJ IDEA、 Eclipse の場合を取り上げていますが、他の開発環境用のもの も選択可能です。
-
Visual Studio Code
-
Eclipse
-
IntelliJ IDEA
-
Visual Studio Code
-
- Visual Studio Code の拡張機能タブで「AWS」と入力して検索します。
- 「AWS Toolkit」を選択してインストールします。
クリックすると拡大します
3. 利用したい開発言語に応じて、追加の拡張機能を設定します。必要な拡張機能は こちら から確認してください。
-
Eclipse
-
- Eclipse のヘルプメニューから「新規ソフトウェアのインストール」を選択します。
- 開かれるダイアログで「作業対象」に「https://aws.amazon.com/eclipse」と入力します。
- 「名前」から「AWS Toolkit for Eclipse Core」および「AWS Lambda Plugin」にチェックを入れます。
- チェックを入れたソフトウェアをインストールします。
クリックすると拡大します
-
IntelliJ IDEA
-
- IntelliJ IDEA のプラグインメニューから「AWS」と入力して検索します。
- 「AWS Toolkit」を選択してインストールします。
クリックすると拡大します
3. 次に表示されるダイアログで利用に同意します。
4. 必要に応じて、対象となる開発言語用のプラグインを追加しておきます (Python など)。
AWS 認証情報の用意
SAM CLI、AWS Toolkit ともに、ローカルマシンから AWS アカウント環境に接続するために AWS 認証情報を利用します。設定にはいくつかの方法がありますが、その中の一つの方法をご紹介します。
- AWS コンソールから IAM ユーザー設定ページ にアクセスし、開発用に管理者アクセス権を設定した IAM ユーザーを用意します。
- そのユーザーに対する AWS 認証情報 (アクセスキー ID / シークレットキー) を生成・ダウンロードします。
クリックすると拡大します
3 ローカル環境に AWS 認証情報を設定します。
- 開発ツール環境に AWS Toolkit が設定されていると、ツール上から AWS 認証情報を設定することができます。
-
Visual Studio Code
-
Eclipse
-
IntelliJ IDEA
-
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 の認識と、代表的なツールを例にしたローカル環境での設定について紹介しました。
次回 は、実際の開発作業手順について説明します。
この連載記事のその他の記事はこちら
- 選択
- サーバーレスのローカル開発環境を整備する ~前編
- サーバーレスのローカル開発環境を整備する ~中編
- サーバーレスのローカル開発環境を整備する ~後編
筆者プロフィール
杉 達也
アマゾン ウェブ サービス ジャパン合同会社
シニア サーバーレススペシャリスト 事業開発マネージャ
Serverless Specialist / BD として AWS Japan に勤務。
サーバーやインフラのことをあまり考えたくない、気にしたくないので、サーバーレスは魅力的です。サイジングやキャパシティプランニング作業からも開放されます。
早く、サーバーレスの世界を体験してもらいたい、そう思いつつ、日々その伝え方を考えています。
AWS を無料でお試しいただけます