...

クイックスタートリファレンスデプロイガイド

by user

on
Category: Documents
4

views

Report

Comments

Transcript

クイックスタートリファレンスデプロイガイド
AWS 上の MongoDB
クイックスタートリファ
レンスデプロイガイド
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
AWS 上の MongoDB: クイックスタートリファレンスデプロイガイド
Copyright © 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.
Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner
that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not
owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by
Amazon.
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
Table of Contents
ホーム ............................................................................................................................................... 1
クイックスタートについて ........................................................................................................... 2
概要 .................................................................................................................................................. 3
AWS 上の MongoDB ................................................................................................................... 3
料金 .......................................................................................................................................... 3
AWS のサービス ........................................................................................................................ 4
アーキテクチャ .................................................................................................................................. 5
MongoDB の構造 ........................................................................................................................ 5
パフォーマンス .......................................................................................................................... 8
プライベートサブネットの MongoDB ........................................................................................... 10
デプロイメント ................................................................................................................................. 11
ここで取り上げる内容 ............................................................................................................... 11
ステップ 1. アカウントを準備する .............................................................................................. 12
ステップ 2(a): 新しい Amazon VPC 内に起動する ......................................................................... 14
ステップ 2(b): 既存の Amazon VPC 内に起動する ......................................................................... 18
ステップ 3. MongoDB ノードに接続する ...................................................................................... 18
MongoDB をテストする ..................................................................................................................... 20
データのバックアップ ....................................................................................................................... 21
セキュリティ .................................................................................................................................... 22
IAM ......................................................................................................................................... 22
OS セキュリティ ...................................................................................................................... 22
セキュリティグループ ............................................................................................................... 22
リソース .......................................................................................................................................... 24
付録: セキュリティグループの仕様 ...................................................................................................... 26
フィードバック ................................................................................................................................. 28
ドキュメントの改訂 .......................................................................................................................... 29
.............................................................................................................................................. 29
iii
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
MongoDB on the AWS Cloud
クイックスタートリファレンスデプロイガイド
Karthik Krishnan 2015 # 4 #
このクイックスタートリファレンスデプロイガイドは、MongoDB クラスターをアマゾン ウェブ サービ
ス (AWS) クラウドにデプロイするために必要なアーキテクチャ上の考慮事項と設定手順を含み、Amazon
Elastic Compute Cloud (Amazon EC2) や Amazon Virtual Private Cloud (Amazon VPC) などのサービスを
使用して AWS に MongoDB をデプロイするためのベストプラクティスを説明します。また、AWS アカウ
ントへの直接的なデプロイや起動に利用できる自動 AWS CloudFormation テンプレートへのリンクを示し
ます。
このガイドは、AWS クラウドでの MongoDB ワークロードの実装や拡張を検討している IT インフラスト
ラクチャアーキテクト、管理者、DvOps プロフェッショナルを対象としています。
以下のリンクは参考情報です。クイックスタートを起動する前に、アーキテクチャ、設定、ネットワーク
セキュリティなどの、このガイドで説明されている考慮事項を確認してください。
• クイックスタートを起動し、AWS アカウント
の新しい Amazon VPC に MongoDB をデプロ
イします (既存の Amazon VPC に MongoDB
をデプロイする方法については、「デプロ
イ (p. 11)」セクションを参照してください。
デプロイ時間: 約 15 分
• テンプレート表示により、デプロイを自動化す
る AWS CloudFormation テンプレートのセット
アップを確認します。テンプレートは、起動中
にカスタマイズしたり、他のプロジェクト用に
ダウンロードして拡張したりできます。
Note
クイックスタートリファレンスデプロイを実行する際は、AWS サービスの利用料金を負担する
必要があります。価格は変更されることがあります。詳細については、「コスト (p. 3)」セク
ションや使用する AWS サービスの料金表ページを参照してください。
1
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
クイックスタートについて
クイックスタートについて
クイックスタートは、AWS クラウドでの主要なワークロード向けに自動化されているリファレンスデプ
ロイです。各クイックスタートでは、セキュリティと可用性に関する AWS ベストプラクティスに沿っ
て、AWS で特定のワークロードをデプロイするために必要な AWS のコンピューティング、ネットワー
ク、ストレージ、その他のサービスを起動、設定、実行します。
2
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
AWS 上の MongoDB
概要
AWS 上の MongoDB
MongoDB はオープンソースの NoSQL データベースであり、JSON スタイルのドキュメント指向のスト
レージシステムをサポートします。MongoDB では、どのような構造のデータでも保存できる柔軟なデー
タモデルがサポートされており、完全なインデックスのサポート、シャーディング、レプリケーションを
含む一連の豊富な機能をご利用いただけます。
AWS により、柔軟かつスケーラブルでコスト効率の優れた方法で AWS クラウドに MongoDB をデプロイ
するためのインフラストラクチャをセットアップできます。このリファレンスデプロイにより、設定タス
クやデプロイタスクを自動化し、MongoDB クラスターを容易に構築できます。
このクイックスタートは、AWS での MongoDB クラスター (バージョン 2.6 または 3.0) のセルフサービス
型デプロイをサポートします。
料金
このデプロイは、MongoDB バージョン 2.6 または 3.0 を指定された設定で自動的に起動します。このク
イックスタートリファレンスデプロイの実行中に使用した AWS サービスのコストは、お客様が負担しま
す。クイックスタートを使用しても追加コストは発生しません。コストは、デプロイする設定のストレー
ジやコンピューティングによって異なります。
次の表に、このガイドの発行時点での一部設定のコスト見積もりを示します。コストには月平均が反映さ
れ、ストレージデータには各 MongoDB ノード (該当する場合は設定サーバーを除く) にアタッチされた
Amazon Elastic Block Store (Amazon EBS) ボリュームのサイズが反映されます。
インスタン
スタイプ
クラスター
シャードの
数
レプリカ
セット
ストレージ
(GiB)
Amazon
EBS ボ
リューム
IOPS*
コスト/月**
($)
t2.micro
0
1
10
gp2
30
0 (無料利用
枠***)
m3.2xlarge
0
3
500
gp2
1,500
1,496
m3.2xlarge
0
3
1,000
gp2
3,000
1,646
3
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
AWS のサービス
インスタン
スタイプ
クラスター
シャードの
数
レプリカ
セット
ストレージ
(GiB)
Amazon
EBS ボ
リューム
IOPS*
コスト/月**
($)
c3.4xlarge
0
3
2,000
gp2
6,000
2,561
c3.8xlarge
2
3
4,000
gp2
10,000
18,430
c3.8xlarge
2
3
4,000
io1
2 万件
18,430
c3.8xlarge
2
3
8,000
io1
2 万件
21,430
*GP2 ボリュームと PIOPS ボリュームの詳細については、「Amazon EBS ボリュームの種類」を参照して
ください。
**価格は変更されることがあります。詳細については、使用する各 AWS サービスの料金表ページや AWS
簡易見積りツールを参照してください。
***無料利用枠: 対象の詳細については、AWS 無料利用枠のウェブページを参照してください。
AWS のサービス
このクイックスタートで使用される AWS の主要コンポーネントには、次の AWS サービスが含まれます
(AWS を初めて利用する場合は、AWS ドキュメントの「はじめに」セクションを参照してください)。
• Amazon EC2 – Amazon Elastic Compute Cloud (Amazon EC2) サービスは、様々なオペレーティングシ
ステムで仮想マシンインスタンスを起動できるようにします。既存の Amazon マシンイメージ (AMI) か
ら選択するか、または独自の仮想マシンイメージをインポートできます。
• Amazon VPC – Amazon Virtual Private Cloud (Amazon VPC) サービスは、AWS クラウドの隔離された
プライベートなセクションをプロビジョニングし、定義した仮想ネットワークで AWS サービスや他の
リソースを起動できるようにします。独自の IP アドレス範囲の選択、サブネットの作成、ルーティング
テーブルとネットワークゲートウェイの設定など、仮想ネットワーク環境を完全にコントロールできま
す。
• Amazon EBS – Amazon Elastic Block Store (Amazon EBS) は、AWS クラウドの Amazon EC2 インスタ
ンスで使用するための永続的なブロックレベルのストレージボリュームを提供します。コンポーネント
に障害が発生した場合でも高い可用性と耐久性を提供できるように、各 Amazon EBS ボリュームはアベ
イラビリティーゾーン内で自動的にレプリケートされます。Amazon EBS ボリュームは、ワークロード
の実行に必要な一貫した低レイテンシーのパフォーマンスを提供します。
• AWS CloudFormation – AWS CloudFormation は、関連する AWS リソースのコレクションを容易に作成
および管理し、整った予測可能な方法でプロビジョニングおよび更新できるようにします。テンプレー
トを使用して、必要なすべての AWS リソース (Amazon EC2 インスタンスなど) を説明します。リソー
スを個別に作成、設計して、それぞれの依存関係を考える必要はありません。AWS CloudFormation が
すべてを処理します。
• IAM – AWS Identity and Access Management (IAM) を使用すると、AWS のサービスおよびリソースに
対するお客様のユーザーのアクセスを安全にコントロールすることができます。IAM を使用することに
より、ユーザー、アクセスキーなどの認証情報、およびユーザーがアクセスできる AWS リソースを制
御するアクセス権限を集中管理できます。
4
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
MongoDB の構造
アーキテクチャ
AWS CloudFormation は、関連する AWS リソースのコレクションを容易に作成および管理し、整った予
測可能な方法でプロビジョニングおよび更新できるようにします。
次のコンポーネントは、このリファレンスデプロイの一部としてデプロイおよび設定されます。
• 2 つのサブネット (パブリックサブネットとプライベートサブネット) で設定された Amazon VPC。
• アウトバウンドのインターネット接続とインバウンドの SSH (Secure Shell) アクセスのため、ネット
ワークアドレス変換 (NAT) インスタンスがパブリックサブネットにデプロイされ、Elastic IP アドレス
(EIP) で設定されます。NAT インスタンスは、プライベートネットワーク内で Amazon EC2 インスタン
スが起動された場合のインターネットアクセスに使用されます。
• デプロイプロセスには、AWS サービスへの詳細に調整されたアクセス許可を持つ AWS Identity and
Access Management (IAM) インスタンスロールが必要です。
• 各インスタンスや機能のセキュリティグループにより、必要なプロトコルやポートのみにアクセスが制
限されます。
• 完全に MongoDB クラスター (レプリカセット、シャード、設定サーバーなど) とカスタマイズ可能な
Amazon EBS ストレージ。クイックスタートは、すべての MongoDB 関連ノードをプライベートサブ
ネットで起動します。そのため、ノードは SSH を使用してアクセスされ、NST インスタンスに接続し
ます。さらに、クイックスタートはセキュリティグループをセットアップしてノード間のアクセスを
制限します。コンソールは、必要に応じてセキュリティグループの追加のカスタマイズをサポートしま
す。
MongoDB の構造
リファレンスデプロイで使用される構成要素の例を示します。
レプリカセット。同じデータを保持するmongod インスタンスのグループを指します。レプリケーションの
目的は、1 つのサーバーがダウンした際に高可用性を確保することです。このリファレンスデプロイでは
1 つまたは 3 つのレプリカセットをサポートしています。レプリカセットが 3 つの場合、リファレンスデ
プロイは 3 つのサーバーを 3 つの異なるアベイラビリティーゾーンで起動します (リージョンがサポート
している場合)。実稼働用クラスターでは、3 つのレプリカセット (Primary、Secondary0、Secondary1) を
使用することが推奨されます。
すべてのクライアントは、通常プライマリノードを操作して読み取りや書き込みのオペレーションを実行
します。読み取りオペレーションでは、プリファレンスとしてセカンダリノードを設定できますが、書
き込みオペレーションは必ずプライマリノードで行われ、セカンダリノードで非同期にレプリケートされ
ます。読み取りオペレーションでセカンダリノードを選択する場合は、古いデータに注意する必要があり
ます。これは、セカンダリノードがプライマリノードと同期されていない場合があるためです。読み取り
オペレーションがどのようにレプリカセットにルーティングされるかについては、MongoDB ドキュメン
トを参照してください。
5
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
MongoDB の構造
開発環境では、1 つのレプリカセットから始めて、本稼働中に 3 つのレプリカセットに移行できます。図
1 にレプリケーション係数 3 の MongoDB リファレンスデプロイを示します。
図 1: 3 つのレプリカセットを使用する AWS の MongoDB クラスター
プライマリインスタンスが失敗した場合、別のアベイラビリティーゾーンのセカンダリインスタンスの 1
つが新しいプライマリノードとなり、自動フェールオーバーが確実に実行されます。
シャーディング。複数のノードに渡るデータのディストリビューションを指します。複数のノードに渡っ
て異なるデータを保存することで、読み取りや書き込みのパフォーマンスのための水平方向のスケーラビ
リティが実現します。データセットが大きい場合、単一ノードでは CPU または I/O パフォーマンスによっ
てボトルネックが発生することがあります。シャーディングは、シャードノードが処理するオペレーショ
ンの数を減らし、クラスター全体のパフォーマンスを向上させることで、このボトルネックを解決しま
す。このクイックスタートは、最大 3 つのシャードをサポートします。シャード数を 0 にすると、クラス
ターがレプリケートされます。
シャードされたクラスター。MongoDB は、シャードされたクラスターを通じてシャ―ディングをサポート
します。各シャードはレプリカセットになる場合があります。このクイックスタートは、1 または 3 つの
レプリカセットをサポートします。そのため各シャードは、1 つまたは 3 つのアベイラビリティーゾーン
6
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
MongoDB の構造
に格納されます。シャードされたクラスターは、各シャードの高可用性を実現するため、実稼働に推奨さ
れます。
クエリルーター。mongos プロセスやクライアントとのインターフェースを実行するインスタンスで
す。mongos プロセスは、アプリケーションレイヤーからクエリを処理し、シャードされたクラスター内
のクエリデータの場所を決定します。このリファレンスデプロイは、プライマリノードで 1 つのクエリ
ルーターを実行します。必要に応じて、追加のルーターを手動で開始できます。
設定サーバー。このリファレンスデプロイは、シャードされたクラスター内の 3 つの異なるアベイラビリ
ティーゾーンで 3 つの設定サーバーを起動します。これらはクラスターのメタデータを保存する軽量のイ
ンスタンスであるため、設定サーバーはスモールインスタンスタイプで十分です。
図 2 に、2方向シャードと3方向レプリケーションが行われたクラスターを示します。
7
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
パフォーマンス
図 2: 3 つのレプリカセットと 2 方向シャ―ディングを使用する AWS の MongoDB クラスター
パフォーマンスに関する考慮事項
リファレンス実装ではコンピューティングとストレージの様々な選択肢が示されます。次の表に、コン
ピューティングの選択肢の例を示します。
8
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
パフォーマンス
インスタンスタイプ
vCPU
メモリ (GiB)
ワークロードタイプ
c3.4xlarge
16
55
コンピューティング最
適化
c3.8xlarge
32
60
コンピューティング最
適化
c4.8xlarge
36
60
コンピューティング最
適化
r3.4xlarge
16
122
メモリ最適化
r3.2xlarge
8
61
メモリ最適化
r3.8xlarge
32
244
メモリ最適化
一般的なガイドラインとして、垂直方向ではなく水平方向にインスタンスを増加させることを検討しま
す。水平方向のスケーリングにより、シングルノードの制限を克服し、単一障害点を回避し、さらにクラ
スター全体のスループットを潜在的に向上させることができます。
ストレージについては、データベースの要件によって、各ノードにアタッチされるストレージボリュー
ムを変更することができます。Amazon EBS のボリュームタイプは、「汎用 (SSD)」、「プロビジョ
ンド IOPS (SSD)」、「マグネティック」の 3 つがあります。これらはパフォーマンス特性とコスト
が異なるため、アプリケーションのニーズに応じて適切なストレージパフォーマンスと料金を選択で
きます。Amazon EBS のボリュームタイプはすべて、耐久性に優れた同じスナップショット機能を備
え、99.999% の可用性を保証します。このリファレンスデプロイは、汎用ストレージボリュームとプロビ
ジョンド IOPS ストレージボリュームをサポートします。
次の表に、各ストレージのタイプのパフォーマンス特性の一部を示します。パフォーマンス要件によって
は、ストレージタイプや Amazon EBS プロビジョンド IOPS 容量 (選択している場合) を決定する前にア
プリケーションをベンチマークすることが必要な場合があります。
ボリュームタイプ
vCPU
メモリ (GiB)
ストレージメディア
SSD タイプ
SSD タイプ
最大ボリュームサイズ
16 TiB
16 TiB
最大 IOPS/ボリューム
10,000
2 万件
9
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
プライベートサブネットの MongoDB
プライベートサブネットの MongoDB クラスター
図 3: プライベートサブネットトポロジ
プライベートサブネットクラスタートポロジには、Elastic IP アドレス (EIP) が関連付けられた NAT イン
スタンスと、SSH が NAT インスタンスにアクセスできるようにするセキュリティグループアドレスが含
まれます。その他の MongoDB 関連の Amazon EC2 インスタンスはすべて、プライベートサブネット内に
作成されます。このトポロジでは、MongoDB 内の Amazon EC2 インスタンスがインターネットやその他
の AWS サービスに直接アクセスすることはありません。その代わり、これらのアクセスは、パブリック
サブネット内の NAT インスタンス経由でルーティングされます。詳細については、「Amazon VPC NAT
インスタンスの高可用性」を参照してください。
10
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
ここで取り上げる内容
デプロイメント
柔軟な AWS プラットフォームに MongoDB を簡単にデプロイできます。このガイドは、完全にカスタマ
イズ可能な MongoDB クラスターをオンデマンドでセットアップする顧客の参考資料となります。AWS で
スケーラブルなオンデマンドのインフラストラクチャを構築することで、大規模なコンピューティングと
ストレージ要件に対応するにコスト効率に優れたソリューションが実現します。
AWS の柔軟なアーキテクチャにより、環境に最も適したネットワーク、コンピューティング、ストレージ
インフラストラクチャを選択できます。トップレベルでは、クイックスタートを既存の Amazon VPC にデ
プロイしたり、MongoDB クラスター用に新しい Amazon VPC を作成したりできます。
ここで取り上げる内容
AWS に MongoDB をデプロイする手順は、次のステップで構成されています。詳細な手順については、各
ステップのリンクをクリックしてください。
• ステップ 1. AWS アカウントを準備する (p. 12)
• まだ AWS アカウントを持っていない場合は、サインアップしてアカウントを作成します。
• スタックを AWS にデプロイするリージョンを選択します。
• リージョンにキーペアを作成します。
• Amazon EC2 インスタンスと Amazon EBS ボリュームのアカウント制限を確認し、必要に応じて制
限の引き上げをリクエストします。
既存の Amazon VPC があるかどうかに基づいて、ステップ 2(a) またはステップ 2(b) を選択します。
• ステップ 2(a). 新しい Amazon VPC にクイックスタートを起動する (p. 14)
クイックスタートを起動して MongoDB を新しい Amazon VPC にデプロイすると、このクイックスター
トに含まれる AWS CloudFormation テンプレートが以下の操作を自動化します。
• Amazon VPC をセットアップします。
• Amazon VPC 内のプライベートサブネットとパブリックサブネット、NAT インスタンス、セキュリ
ティ グループ、IAM ロールなど、MongoDB のデプロイ中に必要な様々なネットワークリソースを作
成します。
• Amazon EBS をセットアップして MongoDB を保存します。必要に応じて Amazon EBS をカスタマ
イズできます。AWS CloudFormation テンプレートは、ストレージタイプとストレージサイズの両方
11
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
ステップ 1. アカウントを準備する
を設定するオプションを提供します。Amazon EBS ボリューム用に Provisioned IOPS を選択するこ
ともできます。
• MongoDB 設定をカスタマイズするオプションを指定した後、起動します。MongoDB のバージョン番
号 (2.6 または 3.0)、レプリカセットの数 (1 または 3)、シャード数 (0、1、2、または 3)、インスタン
スあたりのマイクロシャード数を選択できます。
• セキュリティ設定を完全に自動化して各 MongoDB インスタンスに最小の権限を指定し、ファイア
ウォールオプションを設定して MongoDB ノード間のアクセスを開放します。
• ステップ 2(b). 既存の Amazon VPC にクイックスタートを起動する (p. 18)
このクイックスタートは、既存の Amazon VPC にMongoDB をデプロイするための独立したテンプレー
トを提供します。AWS 内に既に Amazon VPC を構築していて、Amazon VPC に MongoDB をデプロイ
する場合は、このオプションを使用します。テンプレートは、ステップ 2(a) での新しい Amazon VPC
の作成を除いたすべてのステップを自動化します。
• ステップ 3. MongoDB ノード サービスに接続する (p. 18)
ノードはプライベートサブネットにあるため、SSH を使用し、NAT インスタンスを介して MongoDB
ノードに接続します。
ステップ 1. AWS アカウントを準備する
1.
AWS アカウントを取得済みでない場合は、http://aws.amazon.com で画面上の指示に従って作成しま
す。 サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入
力することが求められます。
2.
ナビゲーションバーのリージョンセレクターを使用し、AWS に MongoDB クラスターをデプロイする
Amazon EC2 リージョンを選択します。
Amazon EC2 のロケーションは、リージョンとアベイラビリティーゾーンで構成されています。リー
ジョンは、独立した地理的領域に分散して存在します。すべての Amazon EC2 インスタンス (R3 イン
スタンス以外) を任意のリージョンで起動できます。R3 インスタンスは現在、AWS GovCloud (US)、
中国 (北京)、および 南米 (サンパウロ) を除くすべての AWS リージョンで利用可能です。
図 4: Amazon EC2 リージョンを選択する
ヒント
データセンターや社内ネットワークに最も近いリージョンを選択して、AWS で実行されてい
るシステム間、および企業ネットワーク上のシステムとユーザー間のネットワークレイテン
シーを削減するためにリージョンを選択することを検討します。
12
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
ステップ 1. アカウントを準備する
3.
任意のリージョンでキーペアを作成します。これを行うには、Amazon EC2 コンソールのナビゲー
ションペインで [Key Pairs]、[Create Key Pair] を選択し、名前を入力して [Create] を選択します。
図 5: キーペアを作成する
Amazon EC2 はパブリックキー暗号を使用して、ログイン情報の暗号化と復号化を行います。インス
タンスにログイン可能にするには、キーペアを作成する必要があります。Linux では、キーペアを使
用して SSH ログインを認証します。
4.
必要に応じて、デプロイする Amazon EC2 インスタンスタイプのためにサービス上限緩和申請を実行
します。これを行うには、AWS サポートセンターで、[Create Case]、[Service Limit Increase]、[EC2
instances] の順に選択し、上限緩和フォームのフィールドに入力します。
インスタンスタイプによって、実行できるインスタンス数のデフォルト制限を 2 から最大 20 になり
ます。デフォルトのインスタンス制限は、Amazon EC2 FAQ ページで確認できます。このインスタン
スタイプを使用するデプロイが既に存在する場合、またはこのリファレンスデプロイでデフォルト設
定を超過することが見込まれる場合は、Amazon EC2 インスタンスサービス上限緩和をリクエストす
る必要があります。新しいサービスの上限が有効になるには、数日かかる場合があります。詳細につ
いては、『AWS ドキュメント』の「Amazon EC2 サービスの制限」を参照してください。
13
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
ステップ 2(a): 新しい Amazon VPC 内に起動する
図 6: サービスの上限緩和を申請する
5.
必要に応じて、使用可能な Amazon EBS ボリュームの制限の引き上げをリクエストします。制限タイ
プとして [EBS] を選択し、ステップ 4 の要領で制限申請フォームのフィールドに入力します。
ステップ 2(a). 新しい Amazon VPC にクイックス
タートを起動する
このステップでは、以下を自動化する AWS CloudFormation テンプレートを起動します。
• MongoDB デプロイのためのベース AWS ネットワークインフラストラクチャを提供する Amazon VPC
を設定します。
• Amazon VPC 内のパブリックサブネットおよびプライベートサブネット、パブリックサブネット内で起
動される NAT インスタンス、セキュリティグループ、IAM ロールなどの MongoDB のデプロイに必要な
ネットワークリソースを作成します。
14
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
ステップ 2(a): 新しい Amazon VPC 内に起動する
• 選択したレプリカセットやシャ―ディングのオプションに基づいて、Amazon Linux を実行する Amazon
EC2 インスタンスを起動します。さらに、Amazon EBS ストレージボリュームは自動的にこれらのイン
スタンスにアタッチされます。
• 選択した MongoDB のバージョンを、必要なスクリプトと設定ファイルとともにダウンロードします。
ここでのすべてのステップは、AWS CloudFormation テンプレートで完全に自動化されます。構成設定の
一部を変更できますが、[KeyName] のみはテンプレートによって必須入力となっています。これは、AWS
アカウントのセットアップ時にステップ 1 (p. 12) で作成されたキーペアの名前です。
1.
AWS CloudFormationテンプレートを AWS アカウントに起動します。
テンプレートは、デフォルトで 米国東部(バー
ジニア北部) リージョンで起動されます。ナビ
ゲーションバーのリージョンセレクターを使用
することで、リージョンを変更できます。デプ
ロイ時間: 約 15 分
Note
このクイックスタートリファレンスデプロイの実行中に使用した AWS サービスのコスト
は、お客様が負担します。このクイックスタートを使用しても追加コストは発生しません。
様々なインスタンスタイプとストレージ設定の費用の見積については、「費用 (p. 3)」のセ
クションを参照してください。価格は変更されることがあります。詳細については、このク
イックスタートで使用する各 AWS サービスの料金表ページを参照してください。
テンプレートをダウンロードし、実装の開始点として使用することもできます。
2.
[Select Template] ページで、スタック名とテンプレートソースをデフォルト設定のままにし、[Next]
を選択します。
3.
[Specify Parameters] ページで、テンプレートのパラメータを確認します。[KeyName] パラメータの
値を指定します。次の追加パラメータをカスタマイズすることもできます。AWS CloudFormation テ
ンプレートはこれらの設定を使用してクラスター設定ファイルを作成します。終了したら、[Next] を
選択します。
ネットワーク設定
パラメータ
Default
説明
VPCCIDR
10.0.0.0/16
作成している Amazon VPC の
CIDR ブロック。
PublicSubnet
10.0.1.0/24
新しい Amazon VPC にあるパ
ブリック DMZ サブネットの
CIDR ブロック。
PrimaryReplicaSubnet
10.0.2.0/24
プライマリレプリカがデプロ
イされているプライベートサブ
ネットの CIDR ブロック。
SecondaryReplicaSubnet0
10.0.3.0/24
セカンダリレプリカセッ
ト 0 のプライベートサブ
ネットの CIDR ブロック
(ClusterReplicaSetCount >= 2
の場合にのみ適用)。
15
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
ステップ 2(a): 新しい Amazon VPC 内に起動する
パラメータ
Default
説明
SecondaryReplicaSubnet1
10.0.4.0/24
セカンダリレプリカセッ
ト 1 のプライベートサブ
ネットの CIDR ブロック
(ClusterReplicaSetCount >= 2
の場合にのみ適用)。
RemoteAccessCIDR
0.0.0.0/0
SSH を使用して NAT インス
タンスに接続するための IP
CIDR。
KeyName
####
既存のパブリック/プライベー
トキーペアを指定することで、
起動後にインスタンスに安全に
接続できます。AWS アカウン
トを準備した際に、ステップ
1 (p. 12) で作成したキーペ
アです。
コンピューティングの設定
パラメータ
Default
説明
NATInstanceType
m1.small
NAT インスタンスの Amazon
EC2 インスタンスタイプ。
NodeInstanceType
m3.medium
MongoDB ノードの Amazon
EC2 インスタンスタイプ。
ConfigServerInstanceType
t2.micro
設定サーバーの Amazon EC2
インスタンスタイプ。
パラメータ
Default
説明
VolumeSize
400
ノートにアタッチされる
Amazon EBS ボリュームサイズ
(データ) (GiB)。
VolumeType
gp2
Amazon EBS ボリュームタイプ
(gp2 または io1)。
Iops
100
io1 ボリュームを選択した場合
パラメータ
Default
説明
ClusterReplicaSetCount
1
レプリカセットの数。1 または
3 を選択します。
ストレージ設定
の Amazon EBS ボリュームの
IOPS。それ以外の場合、この
設定は無視されます。
MongoDB オプション
16
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
ステップ 2(a): 新しい Amazon VPC 内に起動する
パラメータ
Default
説明
ClusterShardCount
0
シャード数。0、1、2、または
3 を選択します。0 はシャ―ディ
ングなしです。> 1 でシャ―ディ
ングを設定します。
ShardsPerNode
1
ノードあたりのマイクロシャー
ド数。
MongoDBVersion
3.0
MongoDB バージョン (2.6 また
は 3.0)。
4.
[Options] ページで、[Next] を選択します。
5.
[Review]ページで設定を確認し、[Create] を選択してスタックをデプロイします。
図 7 のように [Status] フィールドに「CREATE_COMPLETE」が表示されていれば、MongoDB の準
備は完了しています。
図 7: MongoDB クラスターを正常に作成
17
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
ステップ 2(b): 既存の Amazon VPC 内に起動する
ステップ 2(b). クイックスタートを既存の Amazon
VPC に起動する
既存の Amazon VPC がある場合も、クイックスタートを使用して MongoDB クラスターを構築できます。
デプロイの手順は、ステップ 2(a) (p. 14) と同じですが、ネットワークパラメータの設定のみが異なり
ます。CIDR 範囲の代わりに、次の表に従って対応するサブネットの ID を入力します。他の全てのオプ
ションは同じままです。
テンプレートは、デフォルトで 米国東部(バージ
ニア北部) リージョンで起動されます。ナビゲー
ションバーのリージョンセレクターを使用するこ
とで、リージョンを変更できます。デプロイ時間:
約 15 分
パラメータ
Default
説明
PrimaryNodeSubnet
subnet-xxxx (####)
プライマリノードをデプロイす
る Amazon VPC の既存のサブ
ネットの ID。
Secondary0NodeSubnet
subnet-xxxx (####)
セカンダリレプリカセット 0
(該当する場合) をデプロイする
Amazon VPC の既存のサブネッ
トの ID。
Secondary1NodeSubnet
subnet-xxxx (####)
セカンダリレプリカセット 1
(該当する場合) をデプロイする
Amazon VPC の既存のサブネッ
トの ID。
テンプレートをダウンロードし、実装の開始点として使用することもできます。
ステップ 3. MongoDB ノードに接続します。
AWS CloudFormation テンプレートが正常にスタックを作成している場合、すべての MongoDB ノード
は、AWS アカウントにインストールされたソフトウェアを実行します。MongoDB ノードに接続するに
は、SSH を使用して NAT インスタンスに接続します。Amazon EC2 コンソールで、インスタンスを選択
してから [Connect] を選択します。
18
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
ステップ 3. MongoDB ノードに接続する
図 8: MongoDB ノードに接続する
SSH を使用して NAT インスタンスに接続すると、同様の方法で任意の MongoDB ノードに接続できます
(ノードを選択して [Connect] を選択し、SSH コマンドを見つけます)。
重要
MongoDB ノードに接続するには、プライベートキー (.pem) ファイルが必要です。プライベート
キー (.pem) ファイルを NAT インスタンスにコピーします。例:
scp –i mykey.pem mykey.pem ec2-user@NAT-public-ip:/home/ec2-user/mykey.pem
すべての MongoDB ノードが、IAM ロールで起動される点に注意してください。このロールにより
Amazon DynamoDB テーブルの作成と消去、Amazon Simple Storage Service (Amazon S3) へのアクセ
スし、Amazon EC2 インスタンスの作成と消去などの様々なタスクの権限が付与されます。IAM コン
ソールを使用してポリシーを変更できます。IAM ロールの利点の詳細については、AWS ドキュメントの
「Amazon EC2 で実行されるアプリケーションにアクセス許可を委任する IAM ロールの使用」を参照して
ください。
19
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
MongoDB をテストする
AWS CloudFormation テンプレートが正常に完了すると、システムは、プライマリレプリカセットの各
ノードで mongos インスタンスを実行します。システムを検証して設定を確認するには、次の手順を実行
します。
1.
2.
SSH を使用し、クイックスタートテンプレートで作成されたプライマリインスタンスの 1 つにログイ
ンします。
端末から次のコマンドを実行します。
mongo
sh.printShardingStatus()
3.
mongo シェルがデフォルトの TCP ポート (27017) でローカルホストに接続されていること、さらにク
イックスタートテンプレート用に指定した設定が出力に反映されていることを確認します。
MongoDB サーバーのテストの詳細については、MongoDB ドキュメントを参照してください。
20
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
データのバックアップ
バックアップのため、Amazon S3 を使用して MongoDB データのコピーを保持することが推奨されま
す。Amazon S3 では、複数の施設にまたがる複数のデバイスにデータオブジェクトが冗長的に格納される
ので、多数のさまざまなクライアントやアプリケーションスレッドからデータオブジェクトに対する読み
込み/書き込みの同時アクセスが可能になります。Amazon S3 に格納された冗長データを使用すれば、イ
ンスタンスまたはアプリケーションの障害から迅速かつ確実に復旧できます。
その他のバックアップ戦略については、MongoDB ドキュメントを参照してください。
21
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
IAM
セキュリティ
AWS クラウドが提供するスケーラブルで信頼性の高いプラットフォームは、顧客がアプリケーションや
データを素早く安全にデプロイすることを可能にします。
AWS インフラストラクチャでシステムを構築すると、お客様と AWS の間でセキュリティ上の責任が分担
されます。この共有モデルにより、ホストオペレーティングシステムや仮想化レイヤーから、サービスが
実行されている施設の物理的なセキュリティまで、コンポーネントが AWS によって運用、管理、制御さ
れるため、運用上の負担を軽減させることができます。一方で、ゲストオペレーティングシステム (アッ
プデートやセキュリティパッチを含む)、その他の関連するアプリケーション、ならびに AWS より提供さ
れるセキュリティグループのファイアウォールの設定に関する責任と管理はお客様に任されます。AWS の
セキュリティの詳細については、AWS セキュリティセンターを参照してください。
AWS Identity and Access Management (IAM)
このソリューションは、最小限の特権アクセスを持つ IAM ロールを利用しています。プロビジョニングさ
れたインスタンスで SSH キー、シークレットキー、またはアクセスキーを保存することは必要なく、また
推奨されません。
OS セキュリティ
クラスターノードのルートユーザーには、デプロイプロセス中に指定された SSH キーでのみアクセスでき
ます。AWS はこれらの SSH キーを保存しないため、SSH キーを紛失するとこれらのインスタンスにアク
セスできなくなる場合があります。
オペレーティングシステムパッチは、お客様の責任において定期的に実行する必要があります。
個のセキュリティグループ
セキュリティグループは、1 つ以上のインスタンスのトラフィックを制御するファイアウォールとして機
能します。インスタンスを起動するときに、1 つ以上のセキュリティグループとインスタンスを関連付
けます。各セキュリティグループに対してルールを追加し、関連付けられたインスタンスに対するトラ
フィックを許可します。セキュリティグループのルールはいつでも変更できます。新しいルールは、セ
キュリティグループに関連付けられているインスタンスすべてに自動的に適用されます。
22
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
セキュリティグループ
このソリューションの一部として作成されて各インスタンスに割り当てられたセキュリティグループ
は、MongoDB に必要な様々な機能へのアクセスが確保されるように、可能な限り制限されます。クラス
ターが起動され実行された後に、必要に応じてさらにアクセスを制限する場合は、セキュリティグループ
を確認することが推奨されます。
23
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
その他のリソース
AWS サービス
• はじめに
• AWS CloudFormation
• Amazon EC2:
• ユーザーガイド
• リージョンとアベイラビリティーゾーン
• キーペア
• インスタンスストア
• よくある質問
• Amazon EBS:
• 概要
• ボリュームの種類
• AWS Identity and Access Management:
• ユーザーガイド
• IAM の利点
• Amazon VPC:
• ドキュメント
• NAT インスタンスの高可用性
• AWS セキュリティセンター
• AWS 簡易見積りツール
MongoDB
• MongoDB on AWS: ガイドラインとベストプラクティス
• MongoDB プロダクションノート
• MongoDB MMS ドキュメント
•
•
•
•
•
MongoDB アーキテクチャガイド
MongoDB のパフォーマンスベストプラクティス
MongoDB のマルチデータセンターデプロイ
MongoDB サーバーのテスト
MongoDB のバックアップ方法
24
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
• mongodump のリファレンス
追加のクイックスタートリファレンスデプロイ
• AWS クイックスタートのホームページ
25
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
付録: セキュリティグループの仕様
次の表に、このクイックスタートでデプロイされた様々なインスタンスに割り当てられ、設定されたイン
バウンドおよびアウトバウンドプロトコルとポートを示します。
NAT セキュリティグループ
インバウンド:
送信元
プロトコル
ポート範囲 (サービス)
コメント
デプロイプロセス中
に指定された CIDR ブ
ロック に制限されま
す。
TCP
22 (SSH)
ネットワークから Linux
インスタンスへのイン
バウンド SSH アクセス
(インターネットゲート
ウェイ経由) を許可しま
す。
10.0.0.0/16
TCP
80 (HTTP)
Amazon VPC にデプロ
イされたインスタンス
からのみ、受信 HTTP
アクセスを許可しま
す。
10.0.0.0/16
TCP
443 (HTTP)
Amazon VPC にデプロ
イされたインスタンス
からのみ、受信 HTTPS
アクセスを許可しま
す。
送信先
プロトコル
ポート範囲
コメント
10.0.1.0/24
TCP
22 (SSH)
NAT インスタンスから
10.0.1.0 サブネットへの
SSH アクセスを許可し
ます。
0.0.0.0/0
TCP
80 (SSH)
Amazon VPC にデプロ
イされたインスタンス
から任意の場所へのア
アウトバウンド:
26
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
NAT セキュリティグループ
ウトバウンド HTTP ア
クセスを許可します。
0.0.0.0/0
TCP
443 (SSH)
Amazon VPC にデプロ
イされたインスタンス
から任意の場所へのア
ウトバウンド HTTPS ア
クセスを許可します。
10.0.2.0/24
TCP
22 (SSH)
NAT インスタンスから
10.0.2.0 サブネット (プ
ライマリ レプリカ) への
SSH アクセスを許可し
ます。
10.0.3.0/24
TCP
22 (SSH)
NAT インスタンスか
ら 10.0.3.0 サブネット
(Secondary0 レプリカ)
への SSH アクセスを許
可します。
10.0.4.0/24
TCP
22 (SSH)
NAT インスタンスか
ら 10.0.4.0 サブネット
(Secondary1 レプリカ)
への SSH アクセスを許
可します。
MongoDB クラスターノード
インバウンド:
送信元
プロトコル
ポート範囲 (サービス)
コメント
デプロイプロセス中
に指定された CIDR ブ
ロック に制限されま
す。
TCP
22 (SSH)
ネットワークから Linux
インスタンスへのイン
バウンド SSH アクセス
(インターネットゲート
ウェイ経由) を許可しま
す。
カスタム TCP ルール
TCP
1-65535
10.0.2.0/24
カスタム TCP ルール
TCP
1-65535
10.0.3.0/24
カスタム TCP ルール
TCP
1-65535
10.0.4.0/24
送信先
プロトコル
ポート範囲
コメント
0.0.0.0/0
TCP
1-65535
すべてのクラスター
ノードからの任意の
宛先へのアウトバウン
ドアクセスを許可しま
す。
アウトバウンド:
27
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
フィードバックの送信
質問やコメントを歓迎しています。AWS クイックスタートディスカッションフォーラムにフィードバック
を投稿してください。
GitHub リポジトリでは、このクイックスタートのテンプレートとスクリプトをダウンロードし、カスタマ
イズ内容を他のユーザーと共有できます。
28
AWS 上の MongoDB クイックス
タートリファレンスデプロイガイド
ドキュメントの改訂
日付
変更
場所
2015 年 4 月 日
初版発行
–
通知
このデプロイガイドは、情報提供のみを目的としています。本書は、発行時点における AWS の現行製品
と慣行を表したものであり、それらは予告なく変更されることがあります。お客様は本文書の情報およ
び AWS 製品の使用について独自に評価する責任を負うものとします。これらの情報は、明示または黙示
を問わずいかなる保証も伴うことなく、「現状のまま」提供されるものです。本文書内のいかなるもの
も、AWS、その関係者、サプライヤ、またはライセンサーからの保証、表明、契約的なコミットメント、
条件や確約を意味するものではありません。お客様に対する AWS の責任は AWS 契約によって規定され
ています。また、本文書は、AWS とお客様との間の契約に属するものではなく、また、当該契約が本文書
によって修正されることもありません。
29
Fly UP