【初心者向け】 LocalStackの概要と基本的な使い方について解説します
この記事では、AWS利用時の開発作業をより効率的かつ手軽に進めるためのツール「LocalStack」の概要と、基本的な使い方を解説します。
LocalStackの概要
LocalStackとは、「AWSリソースのローカルエミュレータ」です。
開発者のローカルマシン上で、S3, Lambda, SQS, API Gatewayといった多くのAWSサービスのAPIを模倣(エミュレート)します。
これにより、実際にAWSクラウドに接続することなく、AWSを利用するアプリケーションの開発やテストを行うことができます。
LocalStackは主にDocker上で動作するため、環境構築も比較的容易です。
AWS CLIや各種AWS SDKからも、エンドポイントURLをLocalStackに向けるだけで、実際のAWSのAPIと同じように操作できます。
LocalStackのユースケース
- 開発・テスト
- コスト削減: クラウド利用料を気にせず、何度でもAPIを呼び出したりリソースを作成・削除することが可能です。
- 高速なフィードバック: クラウドへのデプロイを待つことなく、ローカルですぐに動作確認やテストを実行できます。
- 分離された環境: 他の開発者やステージング環境に影響を与えずに、独立した環境でテストを行えます。
- 学習・デモ
- AWSの様々なサービスを気軽に試したり、APIの挙動を確認することが可能です。
- 一時的なデモンストレーション環境を素早く構築できます。
無償版と有償版の違い
LocalStackには、大きく分けて無償版と有償版があります。
- 無償版
- S3, Lambda, DynamoDB, SQSなど、主要なAWSサービスの基本的なエミュレーション機能を提供します。
- 個人学習や基本的な機能のテストには十分な機能を備えています。
- サポートはコミュニティベースとなります。
- 有償版
- Community版の全機能に加え、より多くのAWSサービスに対応しています。
- データの永続化機能、CI/CD連携強化など、開発効率を高める多くの拡張機能を利用できます。
- LocalStackチームによる公式テクニカルサポートが提供されます。
- 本格的な開発プロジェクトやチームでの利用、複雑なテストシナリオに適しています。
各プランでサポートされているエミュレーション機能については以下の公式ドキュメントから確認可能です。
LocalStack公式サイト|サポート範囲
また、有償版の詳細なプランや料金は公式サイトから確認可能です。
LocalStack公式サイト|各プランの料金
基本的な使い方を紹介
無償版LocalStackの基本的な使い方をご紹介します。
今回はWindows端末のWSL上のDocker環境を利用します。
1. LocalStack環境の立ち上げ
以下の様に最低限の設定を記載した「docker-compose.yml」を作成します。
version: '3.8'
services:
localstack:
image: localstack/localstack:latest
container_name: localstack_demo
ports:
- "127.0.0.1:4566:4566"
environment:
# 起動するサービスをS3に限定
- SERVICES=s3
- DOCKER_HOST=unix:///var/run/docker.sock
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
各項目やその他のオプションについては公式ドキュメントをご確認ください。
LocalStack公式サイト|設定オプションの概要
「docker-compose.yml」作成後、コンテナを起動します。
2. LocalStackで起動したサービスのステータスを確認
起動したLocalStack環境のヘルスチェック用エンドポイント http://localhost:4566/_localstack/health にアクセスし、サービスのステータスを確認します。
今回はS3のみ利用可能な設定にしている為、S3のステータスが「running」になっていることが確認できます。
3. LocalStack環境でのS3バケットの作成と確認
以下の様にエンドポイントを指定し、AWS CLIにてS3バケットを作成します。
aws --endpoint-url=http://localhost:4566 s3 mb s3://localstack-demo-bucket
S3バケットが作成されていることが確認できます。
このエンドポイントを指定することで、作成したS3バケットを利用してアプリケーションの開発やテストを行うことが可能です。
さいごに
今回は、AWSのローカルエミュレータであるLocalStackの概要から、基本的な使い方(S3バケットの作成と確認)までを解説しました。
今回試したS3以外にも、Lambda, DynamoDB, SQSなど、多くのサービスをローカルで動かすことが可能です。
LocalStackを使えば、AWSリソースの構築を待つことなく、手元のPCでAWSサービスを使ったアプリケーションの開発やテストを効率的に進めることができます。