📝

WSL2環境のUbuntu内にLocalStackをインストールして起動する際の問題と解決策

2023/01/01に公開

はじめに

LocalStack を WSL2 環境に pip インストールで導入する際に、いくつか問題が発生したので、その問題に対処した結果のインストール手順のメモです
他にもインストール手段はありますが、今回は環境の都合で pip からインストールしたときのものとなります

LocalStack とは

AWS の機能をローカル環境でエミュレートしてくれるものになります
https://docs.localstack.cloud/overview/
対応している機能
https://docs.localstack.cloud/aws/feature-coverage/

前提

WSL2 有効化済み
今回の環境は Ubuntu20.04.5 LTS を使用

必要なものをインストール

apt 更新

sudo apt update && sudo apt upgrade -y

docker インストール

キー設定

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

リポジトリ更新

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update

インストール

sudo apt install docker-ce -y

動作確認

docker サービス起動

sudo service docker start

サービス起動確認

sudo service docker status

LocalStack インストール、起動

localstack インストール時に削除に失敗するライブラリ(cryptography)を手動で削除

sudo apt install python3-pip -y
sudo rm -r /usr/lib/python3/dist-packages/cryptography
sudo rm -r /usr/lib/python3/dist-packages/cryptography-2.8.egg-info/

pyopenssl が古いとエラーとなっていたため更新

sudo pip install --upgrade pip
sudo pip install pyopenssl==22.1.0

localstack インストール

sudo pip install localstack

docker 起動(起動していなければ)

sudo service docker start

起動

sudo localstack start

動作確認

(pip で awslocal インストール済みであること)

SNS のトピック作成

awslocal sns create-topic --name test-topic
コマンド実行結果↓
{
    "TopicArn": "arn:aws:sns:us-east-1:000000000000:test-topic"
}
awslocal sns list-topics
コマンド実行結果↓
{
    "Topics": [
        {
            "TopicArn": "arn:aws:sns:us-east-1:000000000000:test-topic"
        }
    ]
}

Discussion