AWSのDocumentDBは、スケーラブルで高性能なデータベースサービスであり、AWS上でのアプリケーション開発において非常に重要な役割を果たします。
この記事では、DocumentDBの構築手順を詳しく説明し、LambdaとローカルからStudio 3Tを使ってデータベースを閲覧・編集できるように接続することを目的として設定します。
DocumentDBとは
始めに、DocumentDBを知らない方のために少しだけ紹介します。
AWSのDocumentDBは、MongoDBと互換性があるマネージドデータベースサービスです。
MongoDBのアプリケーションを簡単に移行し、運用することができます。
メリットとデメリット
DocumentDBを使用することのメリットとデメリットは次の通りです。
DocumentDB vs 他のデータベース
以下の表は、DocumentDBを他のAWSデータベースサービスと比較したものです。
機能 | DocumentDB | RDS (Relational Database Service) | DynamoDB (NoSQL) |
---|---|---|---|
データモデル | MongoDB互換 | リレーショナル | NoSQL |
スケーラビリティ | 豊富なスケーリングオプション | シンプルなスケーリング | 自動スケーリング |
セキュリティ設定 | SSL対応、IAM認証 | VPC、IAM、SSL | VPC、IAM、SSL |
コスト | 高め | 中程度 | 低め |
【注意】外部からの直接参照は不可
AWSの公式ドキュメントには以下のように書いていました。
ノートパソコンやローカル開発マシンなどのパブリックエンドポイントから Amazon DocumentDB クラスターに直接接続しようとしても失敗します。Amazon DocumentDB は仮想プライベートクラウド (VPC) 専用で、現在パブリックエンドポイントをサポートしていません。したがって、ノートパソコンまたは VPC の外部のローカル開発環境から直接 Amazon DocumentDB クラスターに接続することはできません。
引用:接続問題 – Amazon DocumentDB
なので、踏み台として別途EC2が必要になります。
その話はまた別の記事でご紹介したいと思います。
クラスター作成前設定
クラスターを作成するには、事前にサブネットグループとパラメーターグループを作成する必要があります。
簡単にご紹介しますので、ご自身の環境に合わせて設定してください。
まずは、Amazon DocumentDBの管理画面へアクセスしてください。
サブネットグループ作成手順
以下の項目を選択してサブネットグループを作成します。
- VPC:(※事前に作成が必要)
- 「アベイラビリティーゾーン」と対応する「サブネット」を選択し、「サブネットを追加」ボタンを押下(※事前に作成が必要)
パラメーターグループ作成手順
以下の項目を選択してクラスターのパラメーターグループ作成手順を作成します。
- 新しいクラスターパラメーターグループ名:<任意>
- ファミリー:docdb4.0(このバージョンでないと外部からデータを参照できない)
- 説明:<任意>
※設定後のパラメータはデフォルトで可(必要に応じて変更する)
クラスター構築手順
![](https://devio2023-media.developers.io/wp-content/uploads/2019/01/create-docdb-001.png)
以下の手順でクラスターの作成を開始します。
- 左メニューの「クラスター」を選択する
- 右側の「作成」ボタンを押下する
設定
以下の設定の入力項目に入力します。
- クラスター識別子:<任意の識別子>
- エンジンバージョン:4.0.0(このバージョンでないと何故か外部からデータを参照できない)
- インスタンスクラス:db.t3.medium(←後から変更できるため、迷ったらこれにする)
- インスタンス数:1(←後から変更できるため、迷ったらこれにする)
認証
以下の認証の入力項目に入力します。
- マスターユーザー名:<Lambdaや外部からアクセスする際のユーザー名(任意)>
- マスターパスワード:<Lambdaや外部からアクセスする際のユーザーパスワード(任意)>
- マスターパスワードの確認:(上記と同じもの)
ネットワーク設定
下にある「詳細設定を表示」のトグルスイッチをオンにして、以下のネットワーク設定の入力項目に入力します。
- Virtual Private Network (VPC):(※事前に作成が必要)
- サブネットグループ:(※事前に作成が必要)
- VPC セキュリティグループ:(※事前に作成が必要)
クラスターオプション
![](https://devio2023-media.developers.io/wp-content/uploads/2019/01/create-docdb-006.png)
以下のクラスターオプションの入力項目に入力します。
- ポート:27017(←MongoDBと同じで基本は固定)
- クラスターパラメータグループ:(※事前に作成が必要)
その他の項目
バックアップやメンテナンスについては任意で設定してください。
後から変更できるためデフォルトでも構わないと思います。
まとめ・補足
DocumentDBの構築手順は以上になります。
今回の記事で参考・引用した参考サイトはをご紹介します。
DocumentDBのクラスターに関するもっと細かい設定を知りたい場合はこちらがおすすめです。
また、こちらでは踏み台にするEC2からの接続方法についても紹介していますので、ぜひ参考にしてください。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9QVdTJUU2JTk3JUE1JUU4JUE4JTk4MzMlMjAlMjhEb2N1bWVudERCJTI5JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz00YjEwNDY0MGU1MzliZmNmYjFlNjIzZmQ1ZTA5OThmNA&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB0YW5ha2FfdGFrdXJvdSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZjFiODFjYjAyYjQ3M2U2MzkyMzc5MzkxNzFjZWI1NTA&blend-x=142&blend-y=486&blend-mode=normal&s=3be7ae6b0121b4c10678b2ed99bb8a79)
コマンドによるデータベースユーザーの操作は以前の記事を参考にしてください。
![](https://minory.org/wp-content/uploads/2023/08/aws-documentdb-user-300x200.jpg)
最後に、冒頭でご紹介したStudio 3Tはこちらからダウンロードできます。
![](https://studio3t.com/wp-content/uploads/2021/03/Home_Query.png)
以上です。
![](https://minory.org/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
![](https://minory.org/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
コメント