Comments
Description
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