MENU
  • ホーム
  • AWSマネージドサービス
    • AWS運用サポート
    • AWSコンサルティング
    • コンテナ導入支援『仁』
  • AWS導入支援
  • WordPress
    • WordPress脆弱性対策
    • WordPress高速化
    • 高速WordPressサーバ『翔』
  • 導入事例
  • Q&A
  • お問い合わせ
AWSの構築・クラウド運用を総合支援【CapsuleCloud】
  • ホーム
  • AWSマネージドサービス
    • AWS運用サポート
    • AWSコンサルティング
    • コンテナ導入支援『仁』
  • AWS導入支援
  • WordPress
    • WordPress脆弱性対策
    • WordPress高速化
    • 高速WordPressサーバ『翔』
  • 導入事例
  • Q&A
  • お問い合わせ
AWSの構築・クラウド運用を総合支援【CapsuleCloud】
  • ホーム
  • AWSマネージドサービス
    • AWS運用サポート
    • AWSコンサルティング
    • コンテナ導入支援『仁』
  • AWS導入支援
  • WordPress
    • WordPress脆弱性対策
    • WordPress高速化
    • 高速WordPressサーバ『翔』
  • 導入事例
  • Q&A
  • お問い合わせ
  1. ホーム
  2. Rancher
  3. 【実践】Rancher HAをTerraformで構築する

【実践】Rancher HAをTerraformで構築する

2022 7/28
Rancher
2022年7月28日
目次

はじめに

今回は、AWS上にTerraformを利用してRancher HA構成を構築する方法をご紹介します。

RancherはRancher serverコンテナを起動するだけで簡単に使い始めることができますが、何かしらの理由により停止してしまった場合は利用できなくなってしまいます。
本格的に利用する際はRancher Serverの冗長性を確保したいところですが、最初から完全なHighAvailabilityな構成で構築することを考えると、コスト面で躊躇してしまうことがあるのではないでしょうか。

ユースケース
将来的にHAにできるミニマム構成で立ち上げつつ、性能や冗長性が気になりだしたら簡単にスケールアウトしたい。

Terraformを利用することで、メンテナンス性を担保しつつ上記のようなケースを実現することができるのです。

Rancher HA

まずは、Rancher HAの要件を確認してみましょう。詳細は公式ドキュメントをご確認ください。

HAを構成するノードについて
  • DockerがサポートされているモダンなLinux
  • ノード間通信用に9345, 8080のポートが開いていること
  • 1GB RAM
MySQLデータベースについて
  • 少なくとも1GB RAM以上
  • Rancher serverノード毎に50コネクション
  • その他MySQLの設定
ロードバランサーについて
  • ロードバランサーとノード間の通信は8080ポート
大規模構成のための奨励要件
  • サーバノード毎に4GB/8GBのヒープサイズ。つまり8GB/16GBのRAM
  • データベースには速いディスクIOを用意する
  • データベースはレプリケーションされ、適切にバックアップされること

AWSでどのように実現するか?

上記の要件を踏まえつつ、今回は下記のような構成をとりたいと思います。

全体
  • 提供されているRancherOSのAMIを利用する
  • 新規VPCを作成して構築する
  • MySQLの代わりにAmazon Auroraを利用する
  • HA構成時のEC2インスタンス配置はAZに分散する
  • ロードバランサーはELBを利用する
  • ロードバランサーのTLS証明書はACMで事前取得したものを利用する
ミニマム構成
  • EC2インスタンスはt2.smallを1つ
  • DBインスタンスdb.t2.smallを1つ
HA構成
  • EC2インスタンスはt2.smallを3つ
  • DBインスタンスdb.t2.smallを2つ

サンプル

今回の構築のサンプル定義はこちらにあります。
sample-rancher-terraform

各定義内容の詳細な説明は割愛しますが、ポイントは以下になります。ご自身の環境に合わせて調整してください。

  • variables.tfで変数宣言とデフォルト値設定を行なっている
  • terraform.tfvarsでデフォルト値を上書きしている

実行

それでは早速、このような設定で実行してみましょう。

環境変数等にAWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEYを設定し、$ terraform applyを実行すると構築が始まります。構築完了までおよそ10分程度かかります。

構築が完了するとELBのDNS名が最後に表示されますので、Route53などでドメインと紐づけてください。(今回はTerraformによるRoute53の変更は組み込んでいません)

アクセスすると無事、初期画面が表示されました。

スケールアウトできることを確認するため、エージェントホストを1つ追加しておきます。

terraform.tfvarsでインスタンス数を修正し、再び$ terafform applyを実行します。

これでHA構成になりました!変更前に追加したエージェントホストもちゃんと見れていますね!

おわりに

TerraformによりRancher HAを「ミニマムな構成で立ち上げつつ、状況に応じてHA構成にスケールアウトする」ということをコードとして実現することができました。
コードとして実現することのメリットは、”HA構成にスケールアウトする”という作業をシンプルな手順で誰にでもできるようになる点です。複数人で同じ環境を触る際、バックエンド定義により状態を共有&ロックする必要がありますが、「当初はミニマムで構成したけれど、半年後にスケールアウトしたくなった」という場合でも、ゼロから環境を見直して思い返す必要がなくなります。

みなさんも是非、環境をコードとして残し、安心&安全な運用につなげてみてはいかがでしょうか!

Rancher
aws HA Rancher Terraform

関連記事

  • rancher
    【実践】RancherでArangoDB Vol.1
  • rancher
    Rancherでレジストリのホワイトリストを設定する
  • rancher
    Rancherで構築するDPP(Data Processing Platform)〜環境構築〜
  • rancher
    RancherにTerraform + AWSでホスト(RancherOS)を自動追加
  • rancher
    【実践】Rancherで構築するオンプレとクラウドのハイブリッド環境「後編」
  • rancher
    【実践】Rancherで構築するオンプレとクラウドのハイブリッド環境「前編」
  • rancher
    【実践】Rancherで本番運用するには
  • rancher
    【実践】RancherでBoostOnPremise Vol. 1
人気記事
  • AWS導入支援
    amazonクラウド、AWSとは?何ができるかデメリット含めわかりやすく説明
  • aws-s3
    Amazon S3で署名付きURLを使ったアクセス制御
  • terraform
    Terraformと変数(variable)のお話
新着記事
  • 10分でスタート!AWSの利用開始までを解説
  • WordPress脆弱性の原因とやっておくべき7つの対策
  • WordPress高速化!6つの簡単な方法で重さを改善
  • 高速WordPressサーバ『翔』
  • 【実例20選】AWS導入企業、活用事例をご紹介
カテゴリー
  • AWS
  • AWS導入支援
  • Rancher
  • Terraform
  • WordPress
アーカイブ
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2017年7月
  • 2017年6月
開発案件多数! フリーランス・エンジニアの求人はテックブレイン

スーパーソフトウエアはAWSパートナーネットワーク(APN)のコンサルティングパートナーです。

スーパーソフトウエアはRancherパートナーネットワークのコンサルティングパートナーです。

logo

カプセルクラウドはAWSクラウドのマネージドサービスです。AWSを安心かつ迅速に導入し、負荷分散・セキュリティ・DevOps・コスト削減など、クラウドサービスのメリットを活かした豊富なベストプラクティスをご提供いたします。

Contents

  • サービス
  • 導入支援
  • WordPress
  • 導入事例
  • ブログ
  • Q&A
  • お問い合せ

お問い合わせ

株式会社スーパーソフトウエア
東京 03-6721-7105
大阪 06-4707-6001
info-capsulecloud@tokyo.supersoftware.co.jp

  • プライバシーポリシー
  • 免責事項
  • 契約約款
  • 特商法に基づく表記
  • 会社情報
  • サイトマップ

© Supersoftware 2017. All rights reserved.

目次