DynamoDB Local環境構築で「このサイトにアクセスできません」が表示された話

## はじめに
今回はDockerでDynamoDBのLocal環境構築をした際に以下の通り「このサイトにアクセスできません」が表示されたのでメモとして記事を上げておきたいと思います。
![スクリーンショット 2023-03-04 0.29.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2743174/1201ec2a-346c-ef0b-3ecd-8b154111c442.png)

## 結論
結論としてはとても簡単なミスで**dynamodb-admin**の起動漏れでした。

DynamoDBをlocalで立ち上げる際はdynamodb-adminを必ず立ち上げる必要があります。

https://github.com/aaronshaf/dynamodb-admin#readme

実際に行った詳しい環境構築手順について以下に記しておきます。

## 前提条件
- Dockerの環境構築済み
- nodejsインストール済み

## 環境構築手順
#### 1. ディレクトリの作成
以下の通りディレクトリを作成します。
```
dynamo_test/
　　└　docker/
　　　　　└　dynamodb/
```
dynamodbは空フォルダです。DynamoDBのデータを保存するために使います。

#### 2. docker-compose.ymlの作成
```yml: docker-compose.yml
version: "3.8"
services:
  dynamodb-local:
    image: "amazon/dynamodb-local:latest"
    command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data -port 8000"
    container_name: dynamodb-local
    ports:
      - "8000:8000"
    volumes:
      - "./docker/dynamodb:/home/dynamodblocal/data"
    working_dir: /home/dynamodblocal
```

#### 3. 権限設定
ターミナルで以下を入力しDynamoDBの書き込みを許可しておきます。
```shell
% sudo chmod 777 ./docker/dynamodb
```

#### 4. コンテナ起動
```shell
% docker-compose up
[+] Running 1/1
 ⠿ Container dynamodb-local  Recreated                                                             0.1s
Attaching to dynamodb-local
dynamodb-local  | Initializing DynamoDB Local with the following configuration:
dynamodb-local  | Port: 8000
dynamodb-local  | InMemory:     false
dynamodb-local  | DbPath:       ./data
dynamodb-local  | SharedDb:     true
dynamodb-local  | shouldDelayTransientStatuses: false
dynamodb-local  | CorsParams:   null
dynamodb-local  | 
```

#### 5. dynamodb-adminのインストール
今回「このサイトにアクセスできません」が出たのはここからの操作が漏れていたためです。
ターミナルで以下の通りdynamodb-adminのインストールを行います。
```shell
% sudo npm i -g dynamodb-admin
Password:
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.

added 124 packages, and audited 125 packages in 9s

20 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
npm notice
npm notice New major version of npm available! 8.15.0 -> 9.6.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.6.0
npm notice Run npm install -g npm@9.6.0 to update!
npm notice
```

#### 6. dynamodb-adminの起動
インストール完了後続けてターミナルでdynamodb-adminを起動します。
```shell
% dynamodb-admin
  DYNAMO_ENDPOINT is not defined (using default of http://localhost:8000)
  database endpoint: 	http://localhost:8000
  region: 		ap-northeast-1
  accessKey: 		********************

  dynamodb-admin listening on http://:::8001 (alternatively http://0.0.0.0:8001)
(node:2386) NOTE: We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.

Please migrate your code to use AWS SDK for JavaScript (v3).
For more information, check the migration guide at https://a.co/7PzMCcy
(Use `node --trace-warnings ...` to show where the warning was created)
```

#### 7. http://localhost:8001 にアクセス
1〜6までの手順を終えていると以下の通り画面が表示されます。
![スクリーンショット 2023-03-04 0.55.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2743174/e47568b0-c941-94f5-c1cd-e0540a107188.png)

なお、docker-compose.ymlのportsには8000と記載してありますが、ここで実際にアクセスするのは8001のため注意してください。