AWS

【AWS】LocalStackを使ってAWSのサービスを無料で触ってみた。

AWS
この記事は約5分で読めます。

初めに

多くのプロジェクトでAWSを使用しているケースが見られますが、AWSで自分で何か作ってみたりする

のはお金が請求されそうだし「嫌だなー」、「作った後の処理等もよくわからないから面倒だなー」と

思っているそこの「あなた!」

本記事では、ローカルマシン上にAWS環境をエミュレートする機能を持つクラウドサービスエミュレー

タ「LocalStack」の環境を構築し、無料でいくつかのAWSのサービスを試して見たいと思います。

主な対象者

・AWS初心者の方

・プログラミングで何ができるか思いつかない方

LocalStackとは

概要

LocalStackは、ローカル環境でAWSサービスをエミュレートすることができるツールであり、クラウ

ドの費用をかけずに、AWSサービスでは必須である、アカウントの管理・IAMポリシーも気にせずに開

発やテストを行うことが可能なサービスです。

Run Locally, Deploy Globally
Develop and test your AWS applications locally to reduce development time and increase product velocity. Reduce unnecessary AWS spend and remove the complexity ...

無料で使えるサービス

有料版(Pro version)と無料版(Community version)があり、無料版では下記のサービスを利用す

ることができます。有料版を使用すればさらに多くのサービスを使用することができます。詳細は

下記に公式のリンクを貼っておきますのでそちらにて確認してください。

  • API Gateway
  • CloudFormation
  • CloudWatch
  • DynamoDB
  • kinesis
  • lambda
  • Route53
  • S3
  • SES
  • SNS
  • SQS
AWS Service Feature Coverage
Overview of the implemented AWS APIs and their level of parity with the AWS cloud

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

ローカルサイトを確認する。

http://localhost:4566/testwebsite/index.html

上記のサイトにアクセスすると作成したHello World!!!!!!!が表示されていると思います。

おわりに

いかがでしたでしょうか。

上記を試すことで、無料でAWSのサービスをリスクなく触れることができました。

普段AWS Management Consoleで「ぽちぽち」やって何をしているかよくわかっていなかったのです

が、Local StackはAWS CLIを使用してサービスを作っていくので内部のプロセスが理解しやすくなり

勉強になると思いました。

下記にAWS CLIコマンドの参考といくつか私が行ったチュートリアルのリンクを貼っておきますので

参考にしていただければと思います。