DockerコンテナのローカルデータベースをAWSに移行する
この記事では、ローカルPostgresデータベースをAWS RDSに移行する方法を見ます.
ビデオバージョン:https://youtu.be/87G3iUl-tj0
定義するには、次の手順を実行します
Postgres ( PostgreSQL ):オープンソースのリレーショナルデータベースです.
Amazon Relational Database Service (RDS) : クラウド内のリレーショナルデータベースを設定、操作、およびスケールするサービス.アマゾンRDSはいくつかのデータベースインスタンスタイプをサポートします アマゾンオーロラ PostgreSQL MySQL マリアブ データベース SQL Server この記事では、AWSデータベース移行サービスを使用してローカルPostgresデータベースを移行し、既存のデータベースをAmazon RDSに簡単に移行または複製する方法を見ていきます.
ビデオバージョン:
通常、我々は初期段階でテストするローカルデータベースです.しかし、その後、しばらくして、我々はクラウドにそれを持っていきたい.
これは完全な手続きであり、Dockerと厳密には関連していません( Dockerをローカルマシンにインストールするのに役立つでしょうが). リポジトリをクローンする DockerのローカルインスタンスをDocker データベースでいくつかのインサートを作成するPostman
Dockerを使用してデータベースのバックアップを作成するpsql
AWSでRDS Postgresのインスタンスを作成します AWS CLIを使用してPostgresデータベースを復元する ファイナルチェック
リポジトリをクローンする
これを行うにはa project that we used in a previous article . (
このリポジトリはon the official TinyStacks AWS Docker Express application repository on GitHub https://github.com/tinystacks/aws-docker-templates-express .
リポジトリをクローン化するには、コマンドプロンプトを開き、次のように入力します.
Dockerを使用したサービスの実行
我々のサービスを始める前に、見てみましょう
このコマンドでデータベースサービスを実行しましょう.
さあ、データベースにインサートをする準備ができました.
Postmanを使ったデータベース挿入
別の方法でデータベースに挿入できます.この記事では、APIをテストするツールであるPostmanを使用します.
バックエンドが稼働しているかどうかチェックしてください
現在のユーザをチェックします
このデータベースに新しいユーザを作成する
我々が再びユーザーをチェックするならば
これでデータベースのバックアップを作成できます
データベースダンプ
PGRANT dumpはデータベースにアクセスする他のユーザをブロックしません.
良いニュースはDocker execを使ってデータベースをダンプできるということです.
次のコマンドを実行します.
現在、AWS UI上でRDSインスタンスを作成する準備ができています.
AWS ( UI )上でRDSインスタンスを作成する
AWS RDSインスタンスを作成しましょう.
AWS UIコンソールでは、RDSを探します.
データベースを作成する
ここでは、驚くほど、データベースを選択することができます.postgres , version 12.5を選択します(ローカルで使用されているものと同じですが、AWSではフリー層もあります.フリー層.
設定セクションでは、データベース名、ユーザー名、パスワードを選択できます.
接続の下で、パブリックアクセスのためのはいを選択します(それはデフォルトでnoに設定されます)ので、我々は我々のローカルAWS CLIからそれにアクセスすることができます.
また、セキュリティグループを公開するVPCが必要です.セキュリティグループの詳細についてはcheck out the AWS documentation .
他のすべてをそのままにし、「データベースを作成」をクリックします.(私たちが無料の層にあるので、私たちは請求されません).
データベース作成は通常数分かかります.
データベース名をクリックすると、その概要が表示されます.
ここで、実行中のPostgresインスタンスがAWS上で動作しているので、
Dockerとpsqlを用いたデータベース移行
まず、AWS Postgresデータベースへの接続テストを行いましょう.
それが動作しているかどうかを確認するには、次のコマンドコマンドを入力します(最後は忘れないでください!!)
つまり、リモートPostgresインスタンスはローカルマシンからアクセス可能です.
現在のpsqlプロセスをコマンドで終了します.
データベース移行
今では興味深い、最も重要な部分- AWSへの移行:
これを行うには
最終テスト
それでは、リモートインスタンスに戻りましょう.
そら我々は、ローカルデータベースをRDSインスタンスに移行させました!
ビデオバージョン:https://youtu.be/87G3iUl-tj0
あなたがより多くを知っていて、tinystacksニュースで更新されるならば、.check out our Web site !
ビデオバージョン:https://youtu.be/87G3iUl-tj0
定義するには、次の手順を実行します
Postgres ( PostgreSQL ):オープンソースのリレーショナルデータベースです.
Amazon Relational Database Service (RDS) : クラウド内のリレーショナルデータベースを設定、操作、およびスケールするサービス.アマゾンRDSはいくつかのデータベースインスタンスタイプをサポートします
ビデオバージョン:
通常、我々は初期段階でテストするローカルデータベースです.しかし、その後、しばらくして、我々はクラウドにそれを持っていきたい.
これは完全な手続きであり、Dockerと厳密には関連していません( Dockerをローカルマシンにインストールするのに役立つでしょうが).
リポジトリをクローンする
これを行うにはa project that we used in a previous article . (
このリポジトリはon the official TinyStacks AWS Docker Express application repository on GitHub https://github.com/tinystacks/aws-docker-templates-express .
リポジトリをクローン化するには、コマンドプロンプトを開き、次のように入力します.
git clone https://github.com/FrancescoXX/crud-api-node-postgres
次にフォルダを変更します.cd crud-api-node-postgres
このフォルダをお気に入りのIDEで開きます.Visual Studioのコードがある場合は、次のコマンドを使用できます.code .
Dockerを使用したサービスの実行
我々のサービスを始める前に、見てみましょう
docker-compose.yml
前の記事で使用したファイル.(これらのコマンドについてもっと詳細に説明したい場合は、version: '3.8'
services:
node_backend:
container_name: node_backend
image: node-test:1.0.0
build:
context: .
ports:
- '8080:80'
environment:
- PGUSER=francesco
- PGPASSWORD=12345
- PGDATABASE=defaultdb
- PGHOST=db
depends_on:
- db
db:
container_name: db
image: 'postgres:12'
ports:
- 5432:5432
environment:
- POSTGRES_USER=francesco
- POSTGRES_PASSWORD=12345
- POSTGRES_DB=defaultdb
volumes:
- pgdata1:/var/lib/postgresql/data
volumes:
pgdata1: {}
私たちには2つのサービスがあります、そして、我々は我々のデータを格納するPGATATA 1と呼ばれるボリュームです.このコマンドでデータベースサービスを実行しましょう.
docker compose up -d db
それからノードバックエンドサービス:docker compose up -d node_backend
実行中のコンテナをこのコマンドでチェックしましょう.docker ps -a
さあ、データベースにインサートをする準備ができました.
Postmanを使ったデータベース挿入
別の方法でデータベースに挿入できます.この記事では、APIをテストするツールであるPostmanを使用します.
バックエンドが稼働しているかどうかチェックしてください
/ping
ポート8080 :現在のユーザをチェックします
/users
ポート8080 .応答は、ステータス200でブランク応答体([])になります.このデータベースに新しいユーザを作成する
/users
ポート8080 :我々が再びユーザーをチェックするならば
/users
, 我々は、3つの新しいユーザーが表示されます.これでデータベースのバックアップを作成できます
pg_dump
コマンド.データベースダンプ
pg_dump
Postgresデータベースをバックアップするユーティリティです.データベースが同時に使用されている場合でも、一貫したバックアップを行います.PGRANT dumpはデータベースにアクセスする他のユーザをブロックしません.
良いニュースはDocker execを使ってデータベースをダンプできるということです.
次のコマンドを実行します.
docker exec db pg_dump -U francesco defaultdb > backup.sql
それは簡単でした!現在、AWS UI上でRDSインスタンスを作成する準備ができています.
AWS ( UI )上でRDSインスタンスを作成する
AWS RDSインスタンスを作成しましょう.
AWS UIコンソールでは、RDSを探します.
データベースを作成する
ここでは、驚くほど、データベースを選択することができます.postgres , version 12.5を選択します(ローカルで使用されているものと同じですが、AWSではフリー層もあります.フリー層.
設定セクションでは、データベース名、ユーザー名、パスワードを選択できます.
接続の下で、パブリックアクセスのためのはいを選択します(それはデフォルトでnoに設定されます)ので、我々は我々のローカルAWS CLIからそれにアクセスすることができます.
また、セキュリティグループを公開するVPCが必要です.セキュリティグループの詳細についてはcheck out the AWS documentation .
他のすべてをそのままにし、「データベースを作成」をクリックします.(私たちが無料の層にあるので、私たちは請求されません).
データベース作成は通常数分かかります.
データベース名をクリックすると、その概要が表示されます.
ここで、実行中のPostgresインスタンスがAWS上で動作しているので、
psql
データベースを復元するコマンド.Dockerとpsqlを用いたデータベース移行
まず、AWS Postgresデータベースへの接続テストを行いましょう.
docker run -it --rm postgres psql --host database-2.c9nq6suhmqou.us-east-1.rds.amazonaws.com --port 5432 --username postgres
それが動作しているかどうかを確認するには、次のコマンドコマンドを入力します(最後は忘れないでください!!)
select 1;
つまり、リモートPostgresインスタンスはローカルマシンからアクセス可能です.
現在のpsqlプロセスをコマンドで終了します.
\q
さて、使いやすさのためにbackup.sql
ファイルがあります.この場合、私たちのサービスをインストールしたのと同じフォルダーでした.データベース移行
今では興味深い、最も重要な部分- AWSへの移行:
これを行うには
psql -f backup.sql --host database-2.c9nq6suhmqou.us-east-1.rds.amazonaws.com --port 5432 --username postgres
最終テスト
それでは、リモートインスタンスに戻りましょう.
そら我々は、ローカルデータベースをRDSインスタンスに移行させました!
ビデオバージョン:https://youtu.be/87G3iUl-tj0
あなたがより多くを知っていて、tinystacksニュースで更新されるならば、.check out our Web site !
Reference
この問題について(DockerコンテナのローカルデータベースをAWSに移行する), 我々は、より多くの情報をここで見つけました https://dev.to/tinystacks/migrate-local-database-on-docker-container-to-aws-2ojdテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol