DigitalOceanブループリント:Node.js、MySQLレプリケーション、およびCachetの起動と実行
序章
DigitalOceanブループリントは、拡張時にサポートする高速で柔軟なインフラストラクチャを提供します。 ブループリントを開発ワークフローの一部として活用および組み込むことで、コードの作成により多くの時間を費やし、インフラストラクチャのセットアップに費やす時間を短縮できます。
ブループリントとは何ですか?
DigitalOceanブループリントは、自動化されたマルチサーバーインフラストラクチャセットアップを提供します。 各ブループリントの目標は、開発者がインフラストラクチャのセットアッププロセスを合理化する方法を提供し、アイデアやプロジェクトを実現するためにより多くの時間を費やせるようにすることです。
ブループリントは、マルチサーバー環境のプロジェクトまたはコンポーネントの基盤になります。 さらなる作業の開始点として、ブループリントは構成とコンテンツの作成を開発者の手に委ねると同時に、開発者に迅速に開始するためのツールを提供します。
利用可能な青写真
各ブループリントは、TerraformおよびAnsibleを使用して、さまざまなユースケースに対応するDigitalOcean製品でインフラストラクチャセットアップを作成します。
-
Node.js Webアプリケーション:このブループリントを使用して、Nginx、Node.js、およびMongoDBで2ノードインフラストラクチャをセットアップできます。 Web層とアプリケーション層は一方のサーバーにデプロイされ、データベースはもう一方のサーバーに配置されます。 データベースからのデータはブロックストレージデバイスに保存され、トラフィックを規制するために各サーバーの前にクラウドファイアウォールが構成されます。
-
ProxySQLを使用したMySQLグループレプリケーション:このブループリントは、MySQLグループレプリケーションおよびProxySQLを使用したレプリケートされたデータベースグループのセットアップを提供します。 クローン設定により、プロジェクトデータを処理するための3ノードのレプリケーションデータベースレイヤーが作成されます。 また、プロジェクトのバックエンドへのクエリと変更を管理するように構成されたProxySQLサーバーを作成します。
-
ステータスページアプリケーション:このブループリントは、 Cachet 、オープンソースのステータスページアプリケーション、および2ノードインフラストラクチャを使用してステータスページを作成します。 2つのサーバーの1つはMySQLを実行し、もう1つはNginxとPHP-FRMを使用してCachetアプリケーションを実行します。 2つのサーバーはDigitalOceanのプライベートネットワークを介して通信し、アクセスをさらに制限するためにカスタマイズ可能なクラウドファイアウォールが設置されています。 Nginxは、 Let’sEncryptを使用してSSL/TLS証明書で構成されています。
これらの各ブループリントは、さまざまなユースケースの基礎を築き、ニーズに基づいて変更できるパターンを提供できます。
ブループリントの使用方法
各ブループリントは、いくつかの前提条件が整った後、クローンを作成して使用する準備が整います。 必要になるだろう:
- ローカルマシンまたはコントロールドロップレットにインストールされたDocker。 Dockerをローカルにインストールするには、コミュニティエディションのダウンロードガイドラインに従うことができます。 コントロールドロップレットを使用したい場合は、DigitalOceanDockerワンクリックアプリケーションをすぐに使い始めることができます。
- Gitはローカルをインストールしました。 コントロールドロップレットでDockerワンクリックイメージを使用している場合、Gitはすでにインストールされています。
- DigitalOceanアカウントとAPIキー。
これらの前提条件が整っていると、次の手順を実行して、各ブループリントを稼働させることができます。
-
リポジトリのクローンを作成します。
-
Dockerイメージとローカルリポジトリの定義と資格情報を構成します。
-
インフラストラクチャを作成します。
ここから、インフラストラクチャをカスタマイズして、ニーズやユースケースに適合させることができます。
次のステップ
ブループリントを使用するための良い最初のステップは、各プロジェクトの README.md
略さずに。 そこには、インストールの詳細な手順と、インフラストラクチャのテスト、カスタマイズ、およびプロビジョニング解除の方法に関する説明があります。