0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows + VirtualBox + Ubuntu 24.04 Server で Floci を使ってローカル AWS 環境を作る Step 1

0
Posted at

Windows + VirtualBox + Ubuntu 24.04 Server で Floci を使ってローカル AWS 環境を作る Step 1

1. はじめに

ローカル環境で AWS の基本サービスを試したい場合、毎回AWS上にリソースを作成すると、検証用でも費用や削除忘れが気になります。

そこで今回は、Windows 上の VirtualBox に Ubuntu 24.04 Server を構築し、Docker 上で Floci を動かすことで、ローカル AWS 互換環境を作成します。

Step 1 では、まず以下のサービスを検証対象にします。

  • S3
  • DynamoDB
  • Lambda
  • IAM
  • STS
  • KMS
  • Secrets Manager

RDS / ECS / EC2 は Docker-backed な検証になり重くなるため、Step 2 以降で扱います。

2. 環境

項目 内容
ホストOS Windows 11
仮想化 VirtualBox
ゲストOS Ubuntu 24.04 Server
コンテナ Docker / Docker Compose
AWS互換環境 Floci
操作ツール AWS CLI v2

3. 全体構成

Windows 11
  └─ VirtualBox
      └─ Ubuntu 24.04 Server
          ├─ Docker
          ├─ Docker Compose
          ├─ AWS CLI v2
          └─ Floci
              └─ http://localhost:4566

Windows から直接 Floci の 4566 番ポートを公開するのではなく、最初は SSH トンネル経由で使う構成にすると安全です。

4. VirtualBox の推奨設定

項目 推奨
CPU 4 vCPU
メモリ 8GB以上
ディスク 80GB以上
ネットワーク NAT + SSHポートフォワード

NAT の場合は、以下のように SSH 用のポートフォワードを設定します。

用途 ホストIP ホストポート ゲストポート
SSH 127.0.0.1 2222 22

5. フォルダー構成と環境設定

floci_aws_local_step1のスクリプトはZIPからダウンロードしてください。

floci_aws_local_step1/
  compose.yaml
  .env
  README_STEP1.md
  lambda/
    handler.py
  scripts/
    00_install_docker_awscli.sh
    01_start_floci.sh
    02_export_env.sh
    03_smoke_test_core.sh
    04_show_status.sh
    05_stop_floci.sh
    99_reset_floci_step1.sh
  windows/
    open_ssh_tunnel_to_floci.bat
    set_aws_env_for_floci.bat

5.1. compose.yaml

services:
  floci:
    image: floci/floci:latest
    container_name: floci
    ports:
      - "127.0.0.1:4566:4566"
    environment:
      AWS_DEFAULT_REGION: ${AWS_DEFAULT_REGION:-us-east-1}
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-test}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-test}
      FLOCI_STORAGE_MODE: persistent
      FLOCI_STORAGE_PERSISTENT_PATH: /app/data
    volumes:
      - ./data/floci:/app/data
      - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped

/var/run/docker.sock をマウントしているのは、Lambda など Docker を利用するサービスを検証するためです。

5.2. Docker と AWS CLI をインストールする

Ubuntu 24.04 Server 側で実行します。

chmod +x scripts/*.sh
./scripts/00_install_docker_awscli.sh

Docker グループ反映のため、一度ログアウト・ログインします。

すぐ反映したい場合は以下でもよいです。

newgrp docker

確認します。

docker version
docker compose version
aws --version

5.3. Floci を起動する

./scripts/01_start_floci.sh

起動確認します。

docker compose ps
docker compose logs -f floci

5.4. AWS CLI を Floci に向ける

source ./scripts/02_export_env.sh

設定内容は以下のイメージです。

export AWS_ENDPOINT_URL=http://127.0.0.1:4566
export AWS_DEFAULT_REGION=us-east-1
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test

5.5. S3 / DynamoDB / Lambda などをまとめて確認する

./scripts/03_smoke_test_core.sh

このスクリプトでは、概ね以下を確認します。

  • STS の呼び出し
  • S3 バケット作成
  • S3 オブジェクト put / get
  • DynamoDB テーブル作成
  • DynamoDB item put / get
  • IAM ロール作成
  • KMS key 作成
  • Secrets Manager secret 作成・取得
  • Lambda 関数作成・実行

5.6. 状態確認

./scripts/04_show_status.sh

5.7. 停止

./scripts/05_stop_floci.sh

5.8. 完全リセット

データも含めて初期化したい場合は、以下を実行します。

./scripts/99_reset_floci_step1.sh

6. Windows 側から使う場合

Windows 側から SSH トンネルを張ります。

ssh -N -L 4566:127.0.0.1:4566 -p 2222 ubuntu@127.0.0.1

別の PowerShell / コマンドプロンプトで AWS CLI を Floci に向けます。

set AWS_ENDPOINT_URL=http://127.0.0.1:4566
set AWS_DEFAULT_REGION=us-east-1
set AWS_ACCESS_KEY_ID=test
set AWS_SECRET_ACCESS_KEY=test

確認します。

aws s3 ls
aws dynamodb list-tables
aws sts get-caller-identity

7. 注意点

Floci は AWS 互換のローカルエミュレータですが、本番 AWS と完全に同じ挙動を保証するものではありません。

特に以下は、最終的には実 AWS でも確認するのが安全です。

  • IAM 権限
  • KMS
  • Lambda 実行環境
  • VPC / ネットワーク
  • 本番相当の権限設計
  • RDS / ECS / EC2 連携

また、/var/run/docker.sock をコンテナに渡す構成は強い権限を持つため、外部公開せず、検証用の閉じた環境で使うのがよいです。

8. Step 1 のまとめ

今回は、Windows 11 + VirtualBox + Ubuntu 24.04 Server 上に、Docker と Floci を使ったローカル AWS 互換環境を作成しました。

Step 1 では、以下の基本サービスを検証できる状態にしました。

AWS 互換環境 Step1

  • S3
  • DynamoDB
  • Lambda
  • IAM
  • STS
  • KMS
  • Secrets Manager

次の Step 2 では、RDS / ECS / EC2 など、Docker-backed なサービスの検証に進めます。

9. 参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?