LocalStackを使用しローカル上にAWS開発環境を構築する

スポンサーリンク

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バケットを作成することができました。

コメント

タイトルとURLをコピーしました