中山テック 代表の中山です。
まだまだ続くよWildFly特集(笑)
さて、WildFly管理画面のススメ(前編)のブログで触れましたが
wildflyにはstandaloneモードとdomainモードがあります。
それぞれの違いと利点をお話したいと思います。
目次
図解
違いを説明する前にこちらをご覧ください。
図解するとこのような違いがあります。
※20分の力作です!(笑)
standaloneモード
まずstandaloneモードについてお話します。
standaloneモードは文字の通りサーバ単体として動きます。
通常のサーバ同様でクラスタ設定をしなければ1ポートのみの入り口となります。
もし入り口を増やしたければ別ポートで新規サーバを立てなければなりません。
standaloneモードで何が悪いと言うことでもありません。
起動が早いという利点があるので1サーバでOKとなれば、standaloneモードを推奨するぐらいです。
- WildFly文字化け対応
- OracleのDataPumpの使い方(応用編)~テーブル単位や容量見積だけといったオプションをご紹介~
- MongoDBでレプリカセット解除後、データ引き継いだまま初期化できない時の対処法
- CentOSでインストール不可?mirrorlist.centos.orgがアクセスできない件
- エンジニアが取った方が良い資格6選
- OracleのDataPumpの使い方(基礎編)~サポート切れに伴う新しいエクスポート方法~
- 【バックエンド開発】代表の実績や経験をご紹介すると共に得た知識を技術コラムとして執筆
- XSERVERにSSH通信でアクセスする方法~公開鍵と秘密鍵を作成することが必須~
- 【PostgreSQL】えっ!?レプリカセットで3台以上を!?~PRIMARY基準に構築する~
- pgpool-Ⅱを構築~PostgreSQLをロードバランス&フェイルオーバー可能とする~
domainモード
入り口は1つですが、比較的簡単に仮想サーバを立てられる利点があります。
つまり、コンテナそのものがhttpサーバのような役割を持てるのです。
大規模開発において、簡単にサーバを増やせない現場も多いことからwildflyが威力を発揮します。
利点は後述するとして、まずはdomainモードの仕組みをお話したいと思います。
domainコントローラー
通信の受け口という意味ではstandaloneモードと一緒です。
しかし、domainモードでは、このdomainコントローラーがhostと呼ばれるサーバ群に振り分けます。
ちなみに振り分けの判断材料は「ポート番号」となるため
事前にどこに穴を開けるか決めておく必要があります。
hostコントローラーのためのHTTPサーバと思って頂ければよいと思います。
hostコントローラー
仮想サーバの入口に当たり、割り振るためのHTTPサーバと思ってください。
ここでは「host」と呼ぶことにします。
hostはポートで振り分けられ、独立して起動することが可能な状態であります。
これにより、クラスタ設定せずとも簡単に仮想サーバを立てることができるのです。
サーバグループ
グループの作成も可能です。
1グループ1サーバの起動が可能となっています。
※2021/1/13 追記
全サーバー稼働が可能です
これの利点は「サービス」毎の振分けが可能な点だったり
ホットスタンバイとしての機能を提供してくれる点だと思ってます。
例えば、サービスAの機能をサーバグループ1、サービスBの機能をサーバグループ2として
日にち毎で試験を行う(大規模開発ではリソースに限りがあるので日付で
試験が出来るできないはよくあります)。
また同じ機能を二つ盛り込んで片方が落ちたら
もう片方を予備用サーバとして起動させるホットスタンバイも可能です。
サーバ
アプリを組み込むための仮想サーバとなります。
ポート番号指定されているので各々独立したアクセスが可能となります。
ただし、前述のようにサーバは1台稼働となっているのでスケジュール調整が必要な場合があります。
利点
standaloneモードの利点
動きはTomcatと同様で、軽いことが挙げられます。
サーバの起動の速さはdomainモードにはないスピードです。
複雑なサーバ構成でなければstandaloneモードをおすすめします(もしくはTomcatでもいいかも・・・)
domainモードの利点
standaloneモードに比べると起動は重いですが、比較的簡単にクラスタ構成を構築することが出来ます。
これは大規模開発で各チームが独立して試験工程を行えるという大変大きな利点があります。
例えば、1つのシステムでリリース時期が違う、更に結合試験の時期が被る場合に
試験実施の資材をわけなければいけません。
その際、サーバグループ1は早い方のリリース、2は遅い方のリリースの資材を配置することが出来るのです。
まとめ
このようなトピックは大規模開発に従事している方が殆どだと思いますが
結合試験以降はdomainモードをおすすめします。
また、ローカルでの開発はstandaloneモードでスピード感ある開発が可能になるので
使い分けできるとスムーズだと思います。
クセが強いながらも利点も多いWildFly(JBoss)、是非使ってみてはいかがでしょうか。