MongoDBの導入
導入背景:json形式のファイルからpythonのjsonモジュールでデータを取得する際に、データの数に比例して処理時間がかかってしまう
MongoDBとは
リレーショナルデータベース以外のでデータベースの総称であるNoSQLの一つ
ドキュメント指向型DB
特徴
インメモリで処理速度が速い
データをメインメモリ(RAM)で読み込み処理
非構造化データを扱える
RDBとは異なり表形式の整形済みデータ以外を扱える
負荷分散できる仕組み
「シャーディング」というデータを複数のサーバに分割して保存処理できる機能を備えている
冗長化を実現できる仕組み
「レプリカセット」という三台以上のサーバで常に同じデータを保存・管理する機能を備えている
Json形式に似た形式でデータ保存
'JavaScript Object Notation'、Javascriptは現在ほとんどのサービスで普及しているため相性がいい
データの一貫性が重要なシステムでは不向き
データの交通整理が行われていないため
データベース言語(SQL)が使えない
RDBに比べて名称が異なるものがある
RDBではテーブル、行(レコード)、列と呼んでいたものが、MongoDBではコレクション、ドキュメント、フィールドと呼ぶ
導入手順
今回は、サーバのメインドライブにMongoDBをいれ、サーバ内のdockerコンテナからアクセスできるようになるまでの環境を構築する
環境:Ubuntu 22.04
https://scrapbox.io/files/662e5a25e1d9de00233f20c1.png
①サーバのメインドライブにMongoDBをインストール
②MongoDBの外部接続を許可
/etc/mongod.confファイルにbind.Ipが記述してある
これは、接続の際にどのIPアドレスにアクセスするかの設定https://scrapbox.io/files/662e5a25e1d9de00233f20c1.png
デフォルトは、ローカルホストのIPアドレスになっている
今回、Dockerコンテナからアクセスする際に、デフォルトのままだとコンテナ内のループバックが発生しホストマシン上のDBにアクセスできない
bind.IpにDBのあるホストマシンのIPアドレスを記述することで、コンテナからホストマシン上のDBにアクセス可能になる
実際にMongoDBの利用方法が気になる方はこちらの記事もぜひ参考に