【AWS】LocalStack ~ 入門編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2019/11/10/205535

などで使う LocalStack を学び、
ローカルで、疑似AWS(今回「AWS Lambda」)を作成する。

目次

【1】LocalStack とは?
 1)サポートしているAWSサービス
 2)全体構成
【2】設定環境
 0)前提条件
 1)docker, docker-compose のインストール と 設定
 2)aws-cliのインストール と 設定
 3)LocalStack  の インストール と 起動
 4)ホストOS起動時に自動で実行するように設定
 5)ローカル上にAWS Lambda 環境を作る

【1】LocalStack とは?

* ローカル上で、擬似AWS環境を作ることができ、テストできる

1)サポートしているAWSサービス

* 以下を参照。
 => 無償版・有償版で異なるので注意(例えば、S3は無償だがGlueは有償)

https://docs.localstack.cloud/user-guide/aws/feature-coverage/

2)全体構成

* 公式ドキュメントの以下の図を一度目を通しておくといい
 => 特に、使用ポートなど勉強になった

https://docs.localstack.cloud/contributing/basics/#general-application-architecture

【2】設定環境

Windowsの環境にVirtualBox または、 WSL2 をインストールして
そこに構築する

0)前提条件

VirtualBox と Guest OS について、事前に設定しておく。
VirtualBoxについては、以下の関連記事を参照。

https://dk521123.hatenablog.com/entry/2013/02/28/005116
追記

* 以下の関連記事で行ったWSL2でも同等の環境が作れた

https://dk521123.hatenablog.com/entry/2020/12/08/165505
https://dk521123.hatenablog.com/entry/2020/12/10/094125

環境例

* OS : Windows10
* VirtualBox : v 6.0.14 r133895 (Qt5.6.2)
* Guest OS : Ubuntu 18.04.3 LTS (「lsb_release -a」で確認)
* git : v2.17.1
* Python : Python 3.6.9
* Docker : v18.09.7
* LocalStack : v0.10.5

※ Guest OS の デフォルト の 10GB だと少ないので多めにとっておく 

1)docker, docker-compose のインストール と 設定

[1-1] docker, docker-compose のインストール
https://dk521123.hatenablog.com/entry/2018/04/10/234030

より抜粋
====
sudo apt install docker
# 確認1-1
docker --version
# 確認1-2
sudo systemctl status docker

sudo apt install docker-compose
# 確認2-1
docker-compose -v
====

2)aws-cliのインストール と 設定

[2-1] aws-cliのインストール

sudo apt install awscli

[2-2] AWS-CLIの初期設定

# 'dummy-user' という profile を作成する
aws configure --profile dummy-user
# 入力する
AWS Access Key ID [None]: dummy-id
AWS Secret Access Key [None]: dummy-key
Default region name [None]: ap-northeast-1
Default output format [None]: json

# 確認1
cat ~/.aws/credentials

# 確認2
cat ~/.aws/config

3)LocalStack の インストール と 起動

[3-1] LocalStack の インストール

git clone https://github.com/atlassian/localstack.git

[3-2] LocalStack を 起動

# "localstack"ディレクトリに移動
cd localstack

# 起動
docker-compose up

# 以下は、「-d : バックグラウンドで実行」
# TMPDIR=/private$TMPDIR DATA_DIR=~/localstack/data
sudo docker-compose up -d

[3-3] 確認

ブラウザで「http://[設定環境のホスト名/IP]:8080」にアクセスする
⇒ エラーなく表示されたらOK

http://localhost:8080

4)ホストOS起動時に自動で実行するように設定

docker update --restart=always localstack_main

=> 無効にしたい場合は、「docker update --restart=no localstack_main」
=> docker update --restart の詳細は、以下の関連記事を参照のこと。

https://dk521123.hatenablog.com/entry/2020/04/13/000000

5)ローカル上にAWS Lambda 環境を作る

長くなったので、以下の関連記事を参照のこと。

LocalStack ~ ローカルで疑似Lambda/S3を作成する ~
https://dk521123.hatenablog.com/entry/2019/12/16/231149

参考文献

https://qiita.com/mmclsntr/items/709863ba98a4855988f3
https://qiita.com/rio_matsui/items/e0c2c772d4579d00a312

関連記事

LocalStack ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2019/12/16/231149
LocalStack ~ awscli-local ~
https://dk521123.hatenablog.com/entry/2020/12/16/211127
MWAA ~ aws-mwaa-local-runner + LocalStack ~
https://dk521123.hatenablog.com/entry/2021/11/07/132014
AWS Glue ~ ローカル環境を作成する ~
https://dk521123.hatenablog.com/entry/2019/11/10/205535
VirtualBox のインストール
https://dk521123.hatenablog.com/entry/2013/02/28/005116
Docker compose ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2022/04/28/000000
Docker compose ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/05/21/222910
Docker compose ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
Docker compose ~ LocalStack/Glue4.0 ~
https://dk521123.hatenablog.com/entry/2023/03/25/021432