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で構築するオンプレとクラウドのハイブリッド環境「前編」

【実践】Rancherで構築するオンプレとクラウドのハイブリッド環境「前編」

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

はじめに

Rancherを使っていくにあたってリソース(特にホスト)をどうするかという課題は常に考えないといけません。
クラウドに好きなだけリソース(例えばAWSであればEC2)を追加できる環境下であれば良いのですが、皆が皆そうとは限りません。
場合によっては自社内のベアメタルと、クラウドの両方を使いたい、つまりはオンプレとクラウドのハイブリッド環境を実現したいとも考えるかもしれません。

そこで今回は、Rancherで構築するオンプレとクラウドのハイブリッド環境を実践してみたいと思います。
ポイントは「オンプレなのか」、「クラウドなのか」ということは意識せず、それぞれのホストがあくまで「リソース」としてシームレスに使われているという点です。

構成と概要

構成図としては上記のようになります。
2台のホスト(EC2)をAWSのパブリックサブネットに配置し、2台のホストを社内LANに配置します。それぞれのホストにはRancherOSをインストール済みです。
上の構成図でちょっと見慣れないと思われる点は、AWSと社内ネットワークでVPNを構築していることです。
Rancherのホスト間通信を実現する為には、Rancher UI上で表示されているIP(下図)で相互に通信ができる必要があり、かつそのIPは一意である必要があります(Cross-host intercontainer communication trouble にてvincent氏が語っています)。

この条件を満たすためにVPNを構築しているというわけです。VPNサーバーにはOpenVPNを使い、(カタログからポチッと作成)VPNクライアントは専用のコンテナをRancherOS上で稼働させます。
VPNが構築できたところでロードバランサの後ろにWordpressをそれぞれのホストにデプロイし、シームレスにロードバランスされているのが確認できたら「オンプレとクラウドのハイブリッド環境」が構築できたことになります。

今回のWordpressに関しての実用性はともかく、オンプレとクラウドを意識することなく、ホストが「リソース」として使えていることに着目していただきたいと思います。それでは順を追って実際に構築していきましょう!

実践

前提

以下は既に準備ができているものとして話を進めていきますのでご了承ください。

  • Rancherサーバーはパブリックネットワークにデプロイ済み(今回はAWSにデプロイ済みでElastic IPも付与済み)
  • 社内のベアメタル環境にはRancherOSをインストール済み

AWSにホストを1台追加

まずはAWSにホスト(EC2)を追加しましょう。Rancher UIから「インフラストラクチャ」を選択し、「ホストを追加」を選択します。

次にホスト(EC2)をデプロイしたいリージョンを選択し、EC2作成権限のあるアクセスキーとシークレットキーを入力し、諸々必要な情報を入力して「作成」を選択します。

これだけでRancherOSの入ったEC2がAWS上にデプロイされ、ホストとして追加されます。もちろん、AWS上でもこのEC2は確認できます(下図参照)

全てがうまくいけば、以下のようにホストが追加されたのが確認できるかと思います。

VPNサーバーをカタログから構築

パブリックなホスト(EC2)が1台準備できたところで、カタログからOpenVPNのサーバーを立ち上げます。Rancher UIの「カタログ」でフィルタに「vpn」と入力することでVPNに関連するカタログに絞り込むことができます。

今回はRancherのローカル認証を使おうかと思います。
「詳細を見る」を選択するとフォームが表示されるので、この中に以下のように必要事項を入力します。

ポイントとしては

  • RancherサーバーのURL
  • OpenVPNサーバーのIPアドレス(EC2のパブリックIP)
  • OpenVPNのカスタム設定
    • VPNの証明書を複数のホストで共有するので duplicate-cn を追加します(グッドプラクティスとは言えませんが便宜上)

そして「起動」します。これで先程のホスト(EC2)にOpenVPNサーバーのコンテナが立ち上がります。
正常に立ち上がれば以下のようになります。

ここで忘れてはいけないのが、ホスト(EC2)のセキュリティグループにてOpenVPNが使うポート1194を許可しておくことです。
これをやっておかないとOpenVPNサーバーにクライアントから接続できません。(下図参考)

VPNクライアント用のConfig作成

VPNサーバーが立ち上がったので、次にVPNクライアントが接続するための設定ファイルを作ります。
設定ファイルの元となるデータはOpenVPNサーバーのログ内にあるので、コンテナのログを「ログを見る」で参照します。

そのログの中で下図のような場所があるので、中身をコピーしています。(下図参照。 </ca> の場所までコピーが必要です。)

この中身を適当に vpn-client-config.ovpn とでも名前をつけて保存しておきましょう。中身は以下のようになっているはずです。

VPNサーバーと疎通確認

では、OpenVPNサーバーが正常に動作しているか疎通確認をしましょう。ローカルのmacからVPNクライアントを立ち上げて、接続ができるか試してみます。

やり方の詳細はこの記事では紹介しませんが、Tunnelblickなどのソフトと、先程作った設定ファイルを使ってVPNサーバーに接続してみます。
うまくいけば 10.43系 のIPが付与されるはずです。
この状態でVPNサーバーのコンテナを Ping するとちゃんと通るのが確認できます。

これでVPNサーバーがパブリックネットワークに正常にデプロイされているのが確認できました。

VPNクライアントコンテナをRancherOSで起動

VPNサーバーが完成したところで次はVPNクライアントを用意します。
方法は色々とあるかと思いますが今回はRancherOS上にOpenVPNのDockerコンテナを起動する方法にしたいと思います。
Dockerイメージに関してはあらかじめDockerHubに openvpn だけ alpine 上に入れたものを準備しています。
以下のとおり極々シンプルなDockerfileになっています。

FROM alpine:latest
RUN apk --no-cache add
openvpn

WORKDIR /etc/openvpn
ENTRYPOINT ["openvpn"]

それではまず、ホスト(EC2)に上で作っておいたVPNクライアント用のConfig(vpn-client-config.ovpn)ファイルを転送するか、コピペで作成するかして格納しましょう。ホストへは rancher cli を使って接続しています。

そしてConfigとopenvpnのクライアントコンテナを組み合わせてVPNクライアントを立ち上げます。(これはRancher UI上からもできますが、Configを準備したついでにそのままホスト内から起動しています)

VPNクライアントを立ち上げる場合に docker は通常の権限では不十分になることと、 --device オプションがついていることに注意してください。

sudo docker run -it --privileged --net=host \
--cap-add=NET_ADMIN --device /dev/net/tun \
--name vpn-client -v $(pwd):/etc/openvpn \
supersoftware/openvpn vpn-client-config.ovpn

-it オプションをつけているのはVPNの認証を対話型で行う為です。実運用でこの方法は非現実的ですが、とりあえず今回は便宜上このまま実行します。ユーザーにはRancherサーバーで認証の通るユーザーとパスワードを指定してください。認証が完了するとVPNの構築ができたはずです。

以下はホストでOpenVPNクライアントのコンテナが動いている様子です。( docker ps )

そしてコンテナ内からVPNサーバー( 10.42.17.234 )がPingできていることも確認できます(下図)

最後に、自分に 10.43系 のIPアドレスが付与されていることも確認できます。

これでコンテナによるVPN環境が1セット構築できました。

後編ではホストの量産を行っていき、Webアプリをデプロイしていきます!

Rancher
Docker Rancher オンプレミス クラウド

関連記事

  • rancher
    【実践】RancherでArangoDB Vol.1
  • rancher
    Rancherでレジストリのホワイトリストを設定する
  • rancher
    Rancherで構築するDPP(Data Processing Platform)〜環境構築〜
  • rancher
    RancherにTerraform + AWSでホスト(RancherOS)を自動追加
  • terraform
    【実践】Rancher HAをTerraformで構築する
  • 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.

目次