Help us understand the problem. What is going on with this article?

LocalStack で AWS CLI の練習をする

LocalStack とは、AWS のリソースのモックをローカルに作成するツール。
LocalStack は AWS CLI の練習をするのに最適なのではと思い立ち実験してみた。

前提

  • Docker がインストールされていること
  • Python 3 がインストールされていること
  • AWS CLI がインストールされていること(← awscli-local を使用するなら必要ないかもしれない)

LocalStack のコンテナ作成

LocalStack の Docker イメージを使用することでコマンド1発で LocalStack 環境が出来上がる。

docker run -itd --rm -p 4567-4597:4567-4597 -p 8080:8080 localstack/localstack:latest

※ docker run のオプションの説明

  • -itd : -i -t -d の略。ざっくり言うと「バックグラウンド」で「起動しっぱなし」にする
  • --rm : コンテナ停止時にコンテナを削除
  • -p : ホストとコンテナとのポート疎通設定。 4567-4597 は 4567 から 4597 ポートを表す

※ 8080 ポートについて

LocalStack にはダッシュボード機能がある。
ダッシュボードが 8080 ポートで起動されるため 8080 を開放している。
しかし、コンテナ起動後に http://localhost:8080 にアクセスすると下記のメッセージが表示される。

This dashboard is outdated and may be removed in a future version. Please check out LocalStack Pro for a more up-to-date UI.

  • 無料版 LocalStack のダッシュボードはいつか削除されるかも
  • 最新のダッシュボード機能を使うには有料版の LocalStack Pro を使って

とのこと。

awscli-local をインストール(任意)

LocalStack に対して aws コマンドを実行するとき、 --endpoint-url=http://localhost:<各サービスに割り当てられたポート番号> を指定する必要がある。

(AWS CLI を使用した例)

aws --endpoint-url=http://localhost:4568 kinesis list-streams

毎回 --endpoint-url を指定するのは面倒。。そこで awscli-local の出番。

awscli-local のインストールは pip で行う。

pip install awscli-local

(awscli-local を使用した例、LocalStack 使用時のオプションを省略できる!)

awslocal kinesis list-streams

動作確認

awscli-local を使って動作確認する。

パラメータストア作成

awslocal ssm put-parameter \
    --name sample-param \
    --value sample-value \
    --type String

パラメータストア取得

awslocal ssm get-parameter --name sample-param

S3 バケット作成

awslocal s3 mb s3://sample-bucket

S3 バケット一覧取得

awslocal s3 ls

S3 ファイルアップロード

touch test.txt
awslocal s3 cp test.txt s3://sample-bucket/
rm test.txt

S3 バケット内のオブジェクト一覧取得

awslocal s3 ls s3://sample-bucket

S3 バケット内のオブジェクト削除

awslocal s3 rm s3://sample-bucket/test.txt

まとめ

  • LocalStack を使えば AWS CLI を試す環境が簡単に作れることが分かった
  • 一部 AWS サービスのモックは 有料版 LocalStack が必要になるが、主要サービスは無料版で十分まかなえる
  • LocalStack で心置きなくコマンドを実行して AWS CLI に慣れていきたいと思う

参考ページ

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした