LoginSignup
2
2

More than 1 year has passed since last update.

WSL2を使ってLocalStackをインストールしてみた!

Last updated at Posted at 2022-12-02

皆様こんにちは。

この記事は ハンズラボ AdventCalendar2022 3日目です!

宜しくお願い致します。

はじめに

近年円安影響をもろに受けているクラウドサービスですが、仕事で使う方は必須のツールになってる場合も多いと思います。
私の場合はAWSが一番良く利用しますが、いかんせん会社のアカウントだと気軽に検証出来なかったりします!
そこで今回の表題であるAWSの各サービスを再現できるツール「LocalStack」を試してみようとおもいます!

今回のトピックは下記です。

  • LocalStack導入の前準備
  • LocalStack導入
  • LocalStackの設定
  • LocalStackでS3を立ち上げてみた

LocalStack導入の前準備

LocalStackを動作させるのに必要なサービスは下記の通りです。

python (Python 3.7 up to 3.10 is supported)
pip (Python package manager)
docker

公式参考ページ

WSLのUbuntuバージョン確認

root@DPC-01:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

Python3はUbuntuにデフォルトで入っていたのでバージョン確認とpip, dockerが入っていないことを確認

root@DPC-01:~# python3 --version
Python 3.10.6

root@DPC-01:~# pip --version
Command 'pip' not found, but can be installed with:
apt install python3-pip

root@DPC-01:~# docker --version
Command 'docker' not found, but can be installed with:
apt install docker.io      # version 20.10.12-0ubuntu4, or
apt install podman-docker  # version 3.4.4+ds1-1ubuntu1

python3-pip install

root@DPC-01:~# apt install python3-pip
<中略>
root@DPC-01:~# pip --version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

docker install

root@DPC-01:~# curl https://get.docker.com | sh
<中略>
root@DPC-01:~# docker --version
Docker version 20.10.21, build baeda1f
root@DPC-01:~# service docker start
 * Starting Docker: docker                                                                           [ OK ]

LocalStack導入

事前準備が完了したのでLocalStack install

root@DPC-01:~# pip install localstack
<中略>
root@DPC-01:~# localstack --version
1.3.0

LocalStack startをスタートし、利用できるサービスを確認します

root@DPC-01:~# localstack start -d

     __                     _______ __             __
    / /   ____  _________ _/ / ___// /_____ ______/ /__
   / /   / __ \/ ___/ __ `/ /\__ \/ __/ __ `/ ___/ //_/
  / /___/ /_/ / /__/ /_/ / /___/ / /_/ /_/ / /__/ ,<
 /_____/\____/\___/\__,_/_//____/\__/\__,_/\___/_/|_|

 💻 LocalStack CLI 1.3.0
<中略>
root@DPC-01:~# localstack status services
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ Service                  ┃ Status      ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ acm                      │ ✔ available │
│ apigateway               │ ✔ available │
│ cloudformation           │ ✔ available │
│ cloudwatch               │ ✔ available │
│ config                   │ ✔ available │
│ dynamodb                 │ ✔ available │
│ dynamodbstreams          │ ✔ available │
│ ec2                      │ ✔ available │
│ es                       │ ✔ available │
│ events                   │ ✔ available │
│ firehose                 │ ✔ available │
│ iam                      │ ✔ available │
│ kinesis                  │ ✔ available │
│ kms                      │ ✔ available │
│ lambda                   │ ✔ available │
│ logs                     │ ✔ available │
│ opensearch               │ ✔ available │
│ redshift                 │ ✔ available │
│ resource-groups          │ ✔ available │
│ resourcegroupstaggingapi │ ✔ available │
│ route53                  │ ✔ available │
│ route53resolver          │ ✔ available │
│ s3                       │ ✔ available │
│ s3control                │ ✔ available │
│ secretsmanager           │ ✔ available │
│ ses                      │ ✔ available │
│ sns                      │ ✔ available │
│ sqs                      │ ✔ available │
│ ssm                      │ ✔ available │
│ stepfunctions            │ ✔ available │
│ sts                      │ ✔ available │
│ support                  │ ✔ available │
│ swf                      │ ✔ available │
│ transcribe               │ ✔ available │
└──────────────────────────┴─────────────┘

LocalStackの設定

aws cliのラッパーであるawslocalをinstall

root@DPC-01:~# pip install awscli-local[ver1]
<中略>
root@DPC-01:~# awslocal --version
aws-cli/1.27.20 Python/3.10.6 Linux/5.15.74.2-microsoft-standard-WSL2 botocore/1.29.20

ここまでで、ひとまずLocalStackの導入は完了です!

LocalStackでS3を立ち上げてみた

LocalStackで一番手頃なS3を立ち上げて検証

  • Backet名:test-backet
root@DPC-01:~# awslocal s3api create-bucket --bucket test-backet
{
    "Location": "/test-backet"
}
root@DPC-01:~# awslocal s3 ls
2022-12-02 13:39:30 test-backet

バケットができたので試しにローカルのファイルをアップロードしてみます

root@DPC-01:~# vi test.txt
root@DPC-01:~# cat test.txt
test.file

root@DPC-01:~# awslocal s3 ls
2022-12-02 13:39:30 test-backet
root@DPC-01:~# awslocal s3 cp test.txt s3://test-backet
upload: ./test.txt to s3://test-backet/test.txt
root@DPC-01:~# awslocal s3 ls
2022-12-02 13:39:30 test-backet
root@DPC-01:~# awslocal s3 ls test-backet
2022-12-02 13:45:42         10 test.txt

今度はあっぷしたファイルが取り出せるか試してみます

root@DPC-01:~# rm test.txt
root@DPC-01:~# awslocal s3 cp s3://test-backet/test.txt ./
download: s3://test-backet/test.txt to ./test.txt
root@DPC-01:~# cat test.txt
test.file

おわりに

今回はWSL環境での構築メインでざっくりLocalStackの導入について記事を書かせて頂きました。
本当はEC2の立ち上げなどをやりたかったのですが、ネットワーク設定など色々設定が必要なので今回はあくまでも導入してすぐ試せるサービスということで、
S3に絞って検証を実施しました。
いずれEC2を立ててみたという記事も作成できればと思っております。
この記事が皆様の参考になれば幸いです。

参考

公式ドキュメント
https://docs.localstack.cloud
公式GitHub
https://github.com/localstack/localstack

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2