初めに
多くのプロジェクトでAWSを使用しているケースが見られますが、AWSで自分で何か作ってみたりする
のはお金が請求されそうだし「嫌だなー」、「作った後の処理等もよくわからないから面倒だなー」と
思っているそこの「あなた!」
本記事では、ローカルマシン上にAWS環境をエミュレートする機能を持つクラウドサービスエミュレー
タ「LocalStack」の環境を構築し、無料でいくつかのAWSのサービスを試して見たいと思います。
主な対象者
・AWS初心者の方
・プログラミングで何ができるか思いつかない方
LocalStackとは
概要
LocalStackは、ローカル環境でAWSサービスをエミュレートすることができるツールであり、クラウ
ドの費用をかけずに、AWSサービスでは必須である、アカウントの管理・IAMポリシーも気にせずに開
発やテストを行うことが可能なサービスです。
無料で使えるサービス
有料版(Pro version)と無料版(Community version)があり、無料版では下記のサービスを利用す
ることができます。有料版を使用すればさらに多くのサービスを使用することができます。詳細は
下記に公式のリンクを貼っておきますのでそちらにて確認してください。
- API Gateway
- CloudFormation
- CloudWatch
- DynamoDB
- kinesis
- lambda
- Route53
- S3
- SES
- SNS
- SQS
LocalStackの環境構築
dockerファイルの作成・起動
ここでは、実際に環境を構築する手順をご紹介します。
公式より、docker-compose.ymlファイルを作成し、下記のコードを記載します
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
environment:
# LocalStack configuration: https://docs.localstack.cloud/references/configuration/
- DEBUG=${DEBUG:-0}
volumes:
- "${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
下記コマンドでドッカーコンテナを起動します。
docker compose up
S3バケットの作成
下記コマンドにて、testwebsiteバケットを作成します。
aws --endpoint-url=http://localhost:4566 s3api create-bucket --bucket testwebsite --profile localstack
バケットの一覧を取得し、作成できているか確認をします。下記コマンドです。
aws --endpoint-url=http://localhost:4566 s3 ls
下記の反応が返ってきたら無事作成できております。
2024-01-25 17:23:00 testwebsite
index.htmlの作成
次に、静的ファイルを作成していきたいと思います。とりあえずシンプルにindex.htmlファイルを作成し
ていきます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>Hello World!!!!!!!</p>
</body>
</html>
S3バケットにファイルをアップロード
作成したファイルを下記コマンドにて、S3のバケットにファイルをアップロードしていきたいと思いま
す。
aws --endpoint-url=http://localhost:4566 s3 cp index.html s3://testwebsite/index.html
ローカルサイトを確認する。
上記のサイトにアクセスすると作成したHello World!!!!!!!が表示されていると思います。
おわりに
いかがでしたでしょうか。
上記を試すことで、無料でAWSのサービスをリスクなく触れることができました。
普段AWS Management Consoleで「ぽちぽち」やって何をしているかよくわかっていなかったのです
が、Local StackはAWS CLIを使用してサービスを作っていくので内部のプロセスが理解しやすくなり
勉強になると思いました。
下記にAWS CLIコマンドの参考といくつか私が行ったチュートリアルのリンクを貼っておきますので
参考にしていただければと思います。