はじめに
AWSの勉強をするときに、AWSの実環境を使って構築してもよいのですが、料金が心配です。
そこで、ローカル環境でAWSを利用することができるLocalStackを使って、気軽にAWSのリソースを作成できるようにしました。
Ubuntu 24.04上に構築したので、その手順をまとめておきます。
環境情報
コンポーネント | バージョン | 備考 |
---|---|---|
PC | Intel® NUC Kit NUC11PAHi7 | SSD: 2GiB Memory: 64GiB |
OS | Ubuntu 24.04 | |
Docker | 24.0.7 | |
LocalStack | 3.7.2 | |
awscli | 2.17.61 | |
awscli-local | 0.22.0 |
構築手順
パッケージをインストール
環境構築に必要なパッケージをインストールしておきます。
sudo apt install docker.io python3-full pipx curl groff
dockerの実行権限を追加
コンソールにログインしているユーザーがdockerを実行できるように権限を設定します。
sudo usermod -aG docker $USER
上記コマンド実行後は一度コンソールからログアウト&ログインしてください。
LocalStackにサインアップする
以下のサイトからLocalStackにサインアップしてください。
https://www.localstack.cloud/
LocalStack CLIをインストール
LocalStack CLIをインストールします。
今回はtar.gzから直接インストールします。
curl --output localstack-cli-3.7.2-linux-amd64-onefile.tar.gz \
--location https://github.com/localstack/localstack-cli/releases/download/v3.7.2/localstack-cli-3.7.2-linux-amd64-onefile.tar.gz
sudo tar xvzf ~/Downloads/localstack-cli-3.7.2-linux-*-onefile.tar.gz -C /usr/local/bin
環境変数の設定
以下の環境変数を設定します。
export LOCALSTACK_AUTH_TOKEN="サインアップした際に発行されるPersonal Auth Token"
export AWS_ACCESS_KEY_ID="test"
export AWS_SECRET_ACCESS_KEY="test"
export AWS_DEFAULT_REGION="us-east-1"
export AWS_ENDPOINT_URL=http://localhost:4566
awscliのインストール
awscliをインストールしてawsコマンドを利用できるようにします。
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
awscli-localのインストール
awscliだけだと、実行時に毎回endpoint urlを指定しないといけないため、awslocalコマンドを利用できるようにします。
pipx install awscli-local
export PATH=/home/$USER/.local/bin:$PATH
LocalStackを起動
LocalStackを起動します。
localstack start
S3バケットを作成して、ファイルをアップロードしてみる
環境構築ができたか確認するために、S3バケットを作成してファイルをアップロードしてみます。
$ awslocal s3 mb s3://hoge
make_bucket: hoge
$ touch test.txt
$ awslocal s3 cp test.txt s3://hoge
upload: ./test.txt to s3://hoge/test.txt
$ awslocal s3 ls s3://hoge/
2024-09-29 00:03:31 0 test.txt
$
最後に
LocalStackを使ってAWSのリソースを気軽に作成できる環境を構築しました。
LocalStackで使えるサービスは実環境と比べて少ないですが、AWSに慣れていない人が気兼ねなく触れる環境の一歩としては良いと思います。
この環境を使ってAWSのサービスについて理解を深めていきたいです。
参考情報
- https://www.localstack.cloud/
- https://docs.docker.com/engine/install/linux-postinstall/
- https://docs.localstack.cloud/getting-started/installation/#localstack-cli
- https://docs.localstack.cloud/getting-started/auth-token/
- https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html#cliv2-linux-install