LocalStackを使用しローカル上にAWS開発環境を構築してみます。
■PC環境
Windows10
>git –version
git version 2.35.1.windows.2
>docker –version
Docker version 20.10.12, build e91ed57
>docker-compose -v
docker-compose version 1.29.2, build 5becea4c
>aws –version
aws-cli/2.5.6 Python/3.9.11 Windows/10 exe/AMD64 prompt/off
■LocalStackのインストール
まずはLocalStackのインストールを行います。インストールのために、localstackリポジトリをローカル環境に複製します。複製するために、Windows10のコマンドを起動します。
C:\Users\user_>git clone https://github.com/localstack/localstack
上記のコマンドを入力しEnterキーを押します。
Cloning into 'localstack'... remote: Enumerating objects: 33142, done. remote: Counting objects: 100% (292/292), done. remote: Compressing objects: 100% (147/147), done. remote: Total 33142 (delta 151), reused 251 (delta 137), pack-reused 32850 Receiving objects: 100% (33142/33142), 16.82 MiB | 2.19 MiB/s, done. Resolving deltas: 100% (24293/24293), done.
Enterキーを押すと、リポジトリの複製が開始され、しばらくすると完了となります。
■LocalStackの起動
C:\Users\user_>cd localstack
完了後、上記のコマンドを入力し、Enterキーを押します。「cd」コマンドで「localstack」ディレクトリ内へ移動します。
移動後、「localstack」ディレクトリの「docker-compose.yaml」を確認しておきます。
■コード
version: "3.8" services: localstack: container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}" image: localstack/localstack ports: - "127.0.0.1:4566:4566" # LocalStack Gateway - "127.0.0.1:4510-4559:4510-4559" # external services port range - "127.0.0.1:53:53" # DNS config (only required for Pro) - "127.0.0.1:53:53/udp" # DNS config (only required for Pro) - "127.0.0.1:443:443" # LocalStack HTTPS Gateway (only required for Pro) environment: - DEBUG=${DEBUG-} - PERSISTENCE=${PERSISTENCE-} - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR-} - LOCALSTACK_API_KEY=${LOCALSTACK_API_KEY-} # only required for Pro - DOCKER_HOST=unix:///var/run/docker.sock volumes: - "${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack" - "/var/run/docker.sock:/var/run/docker.sock"
今回は「docker-compose.yaml」のファイルに変更は加えません。
C:\Users\user_> docker-compose up -d
確認後、上記のコマンドを入力し、Enterキーを押します。docker-compose.yamlを参照してdocker-composeを起動します。「-d」オプションでデタッチド・モード、バックグラウンドでコンテナを実行します。
Creating network "localstack_default" with the default driver Creating localstack_main ... done
Enterキーを押すと、コンテナが実行されます。
「Docker Desktop for Windows」の「Containers /Apps」を確認すると、localstackのコンテナが実行されていることが確認できます。
■LocalStackのCLIプロファイルの作成
確認後、AWS CLIでダミー(偽物)のプロファイルを作成します 。これでAWS CLIを使用しLocalStackによって提供されるサービスを呼び出すことが可能になります。
C:\Users\user_>aws configure --profile localstack
プロファイルを作成するために、上記のコマンドを入力し、Enterキーを押します。
AWS Access Key ID: ダミーのID AWS Secret Access Key: ダミーのシークレットアクセスキー Default region name :us-east-1(今回は仮で地域を設定) Default output format: json(今回は仮でjsonを設定)
Enterキーを押すと、上記の情報の入力を求められますが、本番環境のIDなどを入力する必要はなく、ダミー(偽物)でもプロファイルを作成できますので、入力します。入力すると、プロファイルの作成が完了となります。
■実行・検証
これでローカル上にAWS開発環境の構築が完了しました。完了後、実行・検証としてAWSのS3バケットの作成を行ってみます。
C:\Users\user_>aws s3 mb s3://test-xx01 --endpoint-url=http://localhost:4566 --profile localstack
作成のために、上記のコマンドを入力し、Enterキーを押します。「aws s3 mb <ターゲットのS3バケットの作成先,名前>」で「–endpoint-url」オプションでリクエストの送信先のURLをローカルである「http://localhost:4566」に指定します。さらに「–profile」オプションで、先程作成した名前付きプロファイルである「localstack」を指定します。
make_bucket: test-xx01
Enterキーを押すと、上記のメッセージが出力されます。これで、今回は「test-xx01」というS3バケットの作成が完了しました。作成後、ユーザーが所有するすべてのバケットを一覧表示してみます。
C:\Users\user_>aws s3 ls --endpoint-url=http://localhost:4566 --profile localstack
一覧表示させるために、上記のコマンドを入力し、Enterキーを押します。「aws s3 ls」でユーザーが所有するすべてのバケットを一覧表示します。さらに「–endpoint-url」オプションでリクエストの送信先のURLをローカルである「http://localhost:4566」に指定します。さらに「–profile」オプションで、先程作成した名前付きプロファイルである「localstack」を指定します。
Enterキーを押すと、先程作成したS3バケットを表示させることができました。名前付きプロファイルが、ダミー(偽物)であってもS3バケットを作成することができました。
コメント