2021年1月22日金曜日

WindowsでDockerを利用してDynamoDBサーバーをたちあげる時の注意点。

オフィス狛 技術部のHammarです。

先日「WindowsでDockerを利用してMySQLサーバーを立てる場合の注意点」でも投稿しましたが、WindowsはDockerをVirtualBox経由で起動させているため、Macで起動する場合とは違い、うまく動かない部分があります。
今回は、WindowsでDockerをつかってDynamoDBサーバーをたちあげる時の注意点を記載しようと思います。

※今回DynamoDBはAWSのDynamoDB Localというツールを利用します。

前回投稿した時と同じようにDockerの起動にはdocker-compose.ymlを利用していきます。
docker-compose.ymlには以下のようにDynamoDBの接続設定を記載します。
※今回DBの記述がメインとなるので、API、DB側の記述は割愛します。

version: '3'
services:
  api:
    build:・・・
    ・・・
  db:
    build:・・・
    ・・・
  dynamodb:
    image: amazon/dynamodb-local:latest
    container_name: elps-client-dynamodb
    command: -jar DynamoDBLocal.jar -sharedDb -dbPath . -optimizeDbBeforeStartup
    ports:
      - "8000:8000"

前回同様上記のように書いて、あとは通常通り上記ymlを使ってDocker起動するだけです。
で、上記方法で、またまたMacでは上手くいくのですが、Windowsではなぜかうまくいきません。
起動はうまくできるのですが、設定したDynamoDBに接続ができないのです。😢

で、またいろいろ調べていくと、やっぱり今回もVirtualBox経由での起動が問題を引き起こしているようでした。。。
今回DynamoDBの接続ポートに8000を指定しているのですが、これはホストマシンのlocalhostで接続しに行きます。
ただ、DockerはVirtualBoxで起動しているため、VirtualBox側の設定でポートフォワーディングが必要なようです。

VirtualBoxのDynamoDBのポートフォワード設定方法

①まずVirtualBoxの「設定」ウィンドウから下記のように「ネットワーク」→「ポートフォワーディング」ボタンを押下します。


②ポートフォワーディングルールの画面の右側の+ボタンを押下して、今回のDynamoDBのポート8000を追加して、「OK」ボタンを押下します。


上記完了後、NoSQL Workbench等のツールや、AWS CLI等を利用してDynamoDBに繋がっているか確認できればOKです。
WindowsユーザーでDockerかつDynamoDBを使う場合には、これ結構ハマりポイントだと思うので、ご参考になれば幸いです。

, ,

0 件のコメント:

コメントを投稿