更新日:2026年1月7日

11分で読めます

GitLabを少ない工数で冗長化して安定運用を実現する ~HAクラスターソフトウェア「LifeKeeper」による冗長化~

この記事では、GitLabの止まらない仕組みを、直感的なGUIが用意されたHAクラスター製品による冗長化構成で実現する方法をご紹介します。

編集部注:私たちは時折、パートナーコミュニティのメンバーにGitLabブログへの寄稿をお願いしています。今回は、サイオステクノロジー株式会社の西下容史氏に寄稿いただきました。

当ブログは、GitLabを運用されている方を対象にしています。開発の中核を担うGitLabは、何らかの障害(例えばサーバーの停止やGitLab自体の停止など)が原因で止まってしまうと、開発業務に大きな影響が出てしまいます。このためGitLabには「止まらない仕組み」が求められています。
このブログでは、GitLabの止まらない仕組みを、直感的なGUIが用意されたHAクラスター製品による冗長化構成で実現する方法が紹介されています。

開発を止めないために:GitLabの冗長化を考える

GitLabの停止が開発チームに与える影響

GitLabをSelf-Managed版で運用されている企業のインフラ担当者やDevOpsエンジニアの皆さん、GitLabの可用性について不安を感じたことはありませんか?

特に金融系・公共系企業では、セキュリティやコンプライアンスの観点から自社環境でGitLabを運用するケースが増えています。しかし、GitLabが障害で停止してしまうと、開発チーム全体の業務が止まり、システムやサービスのリリースに遅れが発生するなど、ビジネスへの影響は計り知れません。

バージョン管理、CI/CD、課題管理といった開発の中核を担うGitLabだからこそ、「止まらない仕組み」が求められています。

HAクラスター構成による高可用性の実現

このような課題に対する有効な解決策が、HAクラスター構成によるGitLabの冗長化です。稼働系と待機系のノードを用意し、障害発生時には自動的に切り替えることで、最小限のダウンタイムでサービスを継続できます。

本記事では、世界で9万ライセンス以上の導入実績を持つHAクラスター製品「LifeKeeper for Linux」を使用した、GitLabの冗長化構成を具体的にご紹介します。Amazon EC2環境でのAZ跨ぎ構成を例に、データ共有の仕組み、障害監視とフェイルオーバーの自動化、そして直感的なGUI操作による管理方法まで、実際の検証結果に基づいて解説していきます。

開発を止めないインフラ基盤の構築を検討されている方は、ぜひ最後までお読みください。

GitLabとは:開発基盤に求められる高可用性

GitLabは、分散型バージョン管理システムの「Git」を利用したDevSecOpsプラットフォームであり、世界中で多くの企業に採用されています。ファイルのバージョン管理、課題管理、CI/CDパイプラインなど、ソフトウェア開発に必要な機能を統合的に提供します。

GitLabが停止したときの影響

GitLab停止時の影響範囲

GitLabが停止すると、以下のような影響が即座に発生します:

- 開発作業の停止: コードのプッシュ・プル、マージリクエストのレビューができなくなる

  • CI/CDの停止: ビルド、テスト、デプロイといった自動化ワークフローが機能しなくなる
  • コラボレーションの遮断: 課題管理やプロジェクト管理機能が使えず、チーム間の連携が途絶える
  • 緊急対応の不可: 本番環境のバグフィックスやセキュリティパッチ適用ができない

停止時間が数時間に及べば開発計画が大幅に狂い、1日以上の停止は経営層への報告事項となる深刻なビジネスインパクトをもたらします。

Self-Managed版GitLabにおける冗長化の必要性

GitLabには、SaaS版とSelf-Managed版の2つが提供されています。Self-Managed版は自社で用意した環境(IaaSやオンプレミス)にセットアップして利用するため、可用性の担保は利用者側の責任となります。

特に開発チームの規模が大きい場合や、ミッションクリティカルなシステム開発を行っている場合は、障害発生を前提とした冗長化構成が不可欠です。予め待機系ノードを用意しておき、障害発生時には自動的に稼働系から待機系に切り替えることで、最小限のダウンタイムでの復旧が実現できます。

冗長化を実現する技術要素

GitLabの停止リスクに対する有効な解決策が、HAクラスター構成による冗長化です。ここでは、高可用性を実現するための技術要素と、その中核を担う「LifeKeeper for Linux」について解説します。

HAクラスター構成の基本的な考え方

HAクラスター構成では、稼働系(Active)と待機系(Standby)の2つのノードを用意します。通常時は稼働系でGitLabが動作し、障害が発生した際には自動的に待機系へ切り替わることで、サービスの継続性を確保します。

この仕組みにより、ハードウェア障害やソフトウェア障害が発生しても、数分程度のダウンタイムでGitLabを復旧できます。重要なのは、待機系が常にスタンバイ状態にあり、稼働系のデータをリアルタイムで同期していることです。これにより、切り替え時にもデータの一貫性が保たれ、開発者は障害発生前とほぼ同じ状態で作業を継続できます。

LifeKeeper for Linuxとは

LifeKeeper for Linuxは、サイオステクノロジーが提供するHAクラスター製品で、全世界で9万ライセンス以上の導入実績を持つ信頼性の高いソリューションです。Linux環境におけるアプリケーションの高可用性を実現するために設計されており、GitLabのような重要なDevSecOpsプラットフォームの保護に最適です。

LifeKeeperの大きな特徴は、アプリケーションレベルでの可用性担保を実現できる点です。単にサーバーの冗長化を行うだけでなく、GitLabというアプリケーション自体を監視し、異常を検知した際には自動的にフェイルオーバーを実行します。

冗長化構成を支える3つの技術要素

LifeKeeperによる冗長化構成は、以下の3つの技術要素で構成されています。

1. データ同期とレプリケーション

LifeKeeperの製品ラインナップである「DataKeeper」は、ローカルディスク(Amazon EC2環境ではEBS)をブロックレベルでリアルタイム同期します。これにより、共有ストレージを使用せずに論理的な共有ディスクを実現できます。稼働系で発生したデータの変更は即座に待機系へ反映されるため、フェイルオーバー時にもデータの整合性が保たれます。

2. 多層的な障害監視

LifeKeeperは2種類の障害監視を並行して実行します。1つ目は、クラスターノード間の相互ハートビート通信によるノード自体の障害監視です。2つ目は、稼働系で動作するGitLabなどのソフトウェアの障害監視です。この多層的な監視により、ハードウェア障害とソフトウェア障害の両方を確実に検知できます。

3. 自動フェイルオーバー機能

障害を検知すると、LifeKeeperは自動的にフェイルオーバーを実行します。待機系ノードでGitLabを起動し、アクセス経路を切り替えることで、サービスを継続します。この一連のプロセスは自動化されているため、深夜や休日に障害が発生した場合でも、管理者の手動介入なしに復旧が完了します。

自動フェイルオーバーがもたらすメリット

自動フェイルオーバーの最大のメリットは、復旧時間の短縮です。手動での復旧作業では、障害の検知、原因の特定、復旧手順の実行に多くの時間がかかりますが、自動フェイルオーバーであれば数分以内に復旧が完了します。
また、人的ミスのリスクも排除できます。緊急時の手動作業では、手順の誤りや設定ミスが発生しがちですが、事前に設定された自動プロセスであれば、確実かつ一貫した復旧が可能です。
さらに、24時間365日の監視体制を人的リソースだけで維持するのは困難ですが、自動フェイルオーバーがあれば、深夜や休日でもシステムが自律的に障害対応を行います。これにより、運用担当者の負担を大幅に軽減できます。

クラウド環境での冗長化にも対応

LifeKeeperは、Amazon EC2などのクラウド環境での冗長化にも対応しています。標準機能として「Recovery Kit for Route53」や「Recovery Kit for EC2」が提供されており、クラウド特有のネットワーク構成にも柔軟に対応できます。これにより、オンプレミス環境だけでなく、IaaSを利用したSelf-Managed版GitLabの冗長化も実現可能です。

GitLabのHAクラスター構成

それでは、LifeKeeper for Linuxを使ってどのようにGitLabを冗長化するのかを見てみましょう。

今回当社では、Amazon EC2環境でAZを跨いだ冗長化構成を検証しました。下記の図は検証構成の概念図です。

GitLabのHAクラスター構成

管理クライアントからはRoute53による名前解決でActive側のクラスターノードへのアクセスを実現しています。LifeKeeper for Linuxの標準機能の「Recovery Kit for EC2」を使うことで、スクリプト開発を行わずにGUI上でクラスターのアクセス制御を容易に設定できます。
[参考]
今回の検証ではElastic IPによる制御による名前解決を使用しましたが、LifeKeeperは製品の標準機能で下記の方式に対応しています。
→『LifeKeeper』によるAmazon EC2の冗長化構成の例

  • Recovery Kit for Route53:Route53の名前解決およびクラスターの切り替わり時にAレコードを書き換えて、名前解決した実IPに向けて通信する方式
  • Recovery Kit for EC2:
    • Elastic IPをActiveノードのENIに割り当てることで、外部からActiveノードへの接続を可能にする方式
    • CIDRの外を指す仮想IPに向けて通信し、クラスターの切り替わり時にルートテーブルの送信先が仮想IPのターゲットを書き換えて通信する方式

データ共有

前述の通り、クラスターノード間のデータ共有には「DataKeeper」を使用しています。本検証では、EBSをブロックレベルでリアルタイム同期することで、論理的な共有ディスクを実現しました。

障害監視とフェイルオーバー

LifeKeeperは下記の2種類の障害監視を並行して行っており、障害が検知されると自動的に待機系に切り替え(フェイルオーバー)て復旧を実現します。

  1. 相互のハートビート通信によるノードの障害の監視
  2. Active側の監視対象のソフトウェアの障害の監視

上記の2.については、今回の検証ではQSP(Quick Service Protection)という機能を使っています。QSPはserviceのstatus/stop/startを使って簡易的にソフトウェアを監視や切り替えて保護できる機能です。
[参考]
今回の検証ではソフトウェアの保護にQSPを使用しましたが、LifeKeeperは他に下記の2つの方式に対応しています。

  • Application Recovery Kit:SIOSが開発した制御スクリプトのラインナップを使う方式
  • Generic ARK:ユーザーが開発した制御スクリプトをLifeKeeperに組み込んで使う方式

直感的な操作を実現するWebGUI

LifeKeeperには直感的な操作を実現するWebGUIが標準機能として提供されています。GitLabのプログラムやファイルシステムなど、各保護対象をクラスターリソースとして登録し、依存関係(起動や停止させる時に他のクラスターリソースを道連れにするかしないか)もツリー構造で直感的かつ効率的に設定できます。

<クラスターの切り替え前>

直感的な操作を実現するWebGUI - クラスターの切り替え前

<クラスターの切り替え後>

直感的な操作を実現するWebGUI - クラスターの切り替え後

手順の詳細はぜひ検証レポートをご覧ください。下記からダウンロード頂けます。

https://mk.sios.jp/lifekeeper-gitlab-report_l

まとめとHAクラスター製品「LifeKeeper」について

ここまでご覧頂きました通り、開発の中核を担うGitLabには「止まらない仕組み」が求められています。このためには、GitLabの障害を自動的に検知・復旧し、安定した運用が求められます。こうした冗長化構成を、直感的なWebのGUI上で容易に構築できるのが「LifeKeeper」なのです。

「LifeKeeper」は、サイオステクノロジーが提供する全世界で9万ライセンス以上の導入実績があるHAクラスター製品です。「LifeKeeper」を導入することで、アプリケーションレベルでの可用性担保の実現に加えて、データレプリケーション製品の「DataKeeper」と組み合わせることで共有ストレージを使用せずクラウド上でシステムを冗長化させ、システム全体の可用性が高められます。
詳細情報は、https://bccs.sios.jp/lifekeeper/ をご覧ください。

サイオステクノロジーについて

サイオステクノロジーは、Linuxに代表されるオープンソースソフトウェアを活用したシステムインテグレーションを原点とし、自社開発ソフトウェアおよびSaaSの販売とサービスを行っています。直近では、クラウドをはじめとするDXの技術領域に注力し、AIの活用支援や次世代を支える製品とサービスを提供しています。これからも革新的なソフトウェア技術を追求し、世界のIT産業に影響力のある存在となって価値を創造し、社会の発展に貢献してまいります。
詳細情報は、https://sios.jp をご覧ください。

ご意見をお寄せください

このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成してあなたの声を届けましょう。

フィードバックを共有する

より優れたソフトウェアをより速く提供

インテリジェントなDevSecOpsプラットフォームで

チームの可能性を広げましょう。