AlmaLinuxを本番環境で試した結果、Debian系に戻った理由【詳細比較】

インフラ・ネットワーク

はじめに:なぜAlmaLinuxを選んだのか

Lovate本番環境の再構築を機に、これまで使い慣れたDebian系から離れてAlmaLinuxにチャレンジしてみました。

検討の背景

    • 長期サポート: Red Hat Enterprise Linux(RHEL)との互換性
    • 企業環境での実績: エンタープライズ用途での安定性
    • セキュリティ重視: SELinuxによる強固なアクセス制御
    • コンテナ技術: PodmanによるDockerレス運用の可能性

目標は、AdGuardHome + UnboundによるプライベートDNS環境と、Nextcloudを含む自宅サーバー環境の安定運用でした。

AlmaLinuxで構築した環境

基本システム構成

# AlmaLinux 9.4 (Seafoam Ocelot)
$ cat /etc/os-release
NAME="AlmaLinux"
VERSION="9.4 (Seafoam Ocelot)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.4"
PLATFORM_ID="platform:el9"

実装したサービス

#### 1. Podmanによるコンテナ運用

# AdGuardHome コンテナ
podman run -d --name adguardhome 
  --restart=unless-stopped 
  -v /opt/adguardhome/work:/opt/adguardhome/work 
  -v /opt/adguardhome/conf:/opt/adguardhome/conf 
  -p 53:53/tcp -p 53:53/udp -p 3000:3000/tcp 
  adguard/adguardhome

Unbound DNS リゾルバ


podman run -d --name unbound 
  --restart=unless-stopped 
  -v /etc/unbound:/opt/unbound/etc/unbound 
  -p 5335:53/tcp -p 5335:53/udp 
  mvance/unbound:latest

#### 2. systemdサービス定義

# /etc/systemd/system/container-adguardhome.service
[Unit]
Description=AdGuard Home container
Wants=network-online.target
After=network-online.target
RequiresMountsFor=%t/containers

[Service] Environment=PODMAN_SYSTEMD_UNIT=%n Restart=on-failure TimeoutStopSec=70 ExecStartPre=/bin/rm -f %t/%n.ctr-id ExecStart=/usr/bin/podman run –cidfile=%t/%n.ctr-id –cgroups=no-conmon –rm –sdnotify=conmon -d –replace –name adguardhome -v /opt/adguardhome/work:/opt/adguardhome/work -v /opt/adguardhome/conf:/opt/adguardhome/conf -p 53:53/tcp -p 53:53/udp -p 3000:3000/tcp adguard/adguardhome ExecStop=/usr/bin/podman stop –ignore –cidfile=%t/%n.ctr-id ExecStopPost=/usr/bin/podman rm -f –ignore –cidfile=%t/%n.ctr-id Type=notify NotifyAccess=all



[Install]
WantedBy=multi-user.target

#### 3. ファイアウォール設定

# FirewallD設定
firewall-cmd --permanent --add-service=dns
firewall-cmd --permanent --add-port=3000/tcp
firewall-cmd --permanent --add-port=5335/udp
firewall-cmd --reload

Nextcloud導入試行

# Nextcloud用ディレクトリ準備
mkdir -p /opt/nextcloud/{data,config,apps}
chown -R 33:33 /opt/nextcloud/

Podmanでの起動


podman run -d --name nextcloud 
  -p 8080:80 
  -v /opt/nextcloud/data:/var/www/html/data 
  -v /opt/nextcloud/config:/var/www/html/config 
  -v /opt/nextcloud/apps:/var/www/html/custom_apps 
  nextcloud:latest

AlmaLinuxで遭遇した課題

1. SELinuxの学習コストとトラブル

#### 問題の詳細

# Samba共有でのアクセス拒否
$ sudo setsebool -P samba_enable_home_dirs on
$ sudo chcon -t public_content_rw_t /shared/data

それでもアクセス拒否が発生


$ sudo sealert -a /var/log/audit/audit.log
SELinux is preventing smbd from write access on the directory data.

#### 対処に要した時間

    • 調査時間: 各エラーにつき平均2-3時間
    • ドキュメント確認: Red Hat公式ドキュメント、Stack Overflow
    • 試行錯誤: ausearchsealertによる原因分析

2. Podman特有の権限問題

#### ボリュームマウント時のエラー

# エラー例
Error: mounting volume "/opt/nextcloud/data": chown /opt/nextcloud/data: operation not permitted
WARN[0000] Failed to decode the keys "[]" from "/run/user/1000/containers/auth.json"

#### 解決策と限界

# 権限調整の試行
sudo podman run --privileged 
  --security-opt label=disable 
  -v /opt/nextcloud/data:/var/www/html/data:Z 
  nextcloud:latest

それでもSELinuxコンテキストの問題が残る

3. Nextcloudの設定トラブル

#### 発生した問題

    • 初期設定画面が表示されない
    • データベース接続エラー
    • ファイルアップロード権限エラー
# ログ確認
$ sudo podman logs nextcloud
PHP Warning: file_put_contents(/var/www/html/config/config.php): failed to open stream: Permission denied

#### デバッグプロセス

1. 権限確認: ls -laZでSELinuxコンテキスト確認
2. ログ分析: /var/log/audit/audit.logの精査
3. 設定調整: config.phpの手動編集試行
4. 最終的な断念: 時間コストが予想を大幅に超過

🆚 AlmaLinux vs Debian系 詳細比較

セキュリティ機能

| 項目 | AlmaLinux | Ubuntu/Debian |
|——|———–|—————|
| 強制アクセス制御 | SELinux(厳格) | AppArmor(柔軟) |
| 設定難易度 | 高(専門知識必要) | 中(直感的) |
| トラブル時の調査 | ausearchsealert | aa-status、ログ確認 |
| コミュニティサポート | 限定的 | 豊富 |

パッケージ管理

#### AlmaLinux(dnf)

# パッケージ検索
dnf search nginx
dnf info nginx

インストール


dnf install nginx

更新


dnf update

#### Ubuntu(apt)

# パッケージ検索
apt search nginx
apt show nginx

インストール


apt install nginx

更新


apt update && apt upgrade

コンテナ技術

| 機能 | AlmaLinux (Podman) | Ubuntu (Docker) |
|——|——————-|—————–|
| デーモンレス | ✅ セキュリティ向上 | ❌ dockerd必要 |
| 学習コスト | 高(Docker知識+α) | 低(豊富な情報) |
| エコシステム | 発展途上 | 成熟 |
| トラブルシューティング | 情報少ない | 豊富な事例 |

運用・保守性

#### ドキュメントの充実度

AlmaLinux

    • Red Hat公式ドキュメント(有料部分あり)
    • コミュニティWiki(情報量限定)
    • Stack Overflowの情報(CentOS/RHEL流用)

Ubuntu/Debian

    • 公式ドキュメント(無料で充実)
    • Ubuntu Server Guide
    • 膨大なコミュニティ情報

#### トラブル解決速度

実際のトラブル解決時間を計測:

| 問題の種類 | AlmaLinux | Ubuntu |
|———-|———–|——–|
| 権限エラー | 3-4時間 | 30分-1時間 |
| サービス設定 | 2-3時間 | 1-2時間 |
| ネットワーク問題 | 1-2時間 | 30分-1時間 |

Debian系に戻した決定的理由

1. 開発・運用効率の重視

# Ubuntuでの同環境構築時間

AdGuardHome + Unbound: 約2時間

Nextcloud: 約1時間

総構築時間: 約3時間

AlmaLinuxでの構築時間

AdGuardHome + Unbound: 約6時間(SELinux調整含む)

Nextcloud: 未完了(8時間で断念)

2. 学習コスト vs ビジネス価値

時間投資の観点

    • SELinuxの深い理解:数十時間の学習が必要
    • Podmanの習熟:既存Docker知識の拡張に時間
    • トラブルシューティング:情報収集の困難さ

得られる価値

    • セキュリティ向上:重要だが、AppArmorでも実用十分
    • 企業環境への応用:個人開発では限定的なメリット

3. プロジェクトの優先順位

Lovateプロジェクトでは以下を重視:

1. 迅速な機能開発
2. 安定した運用環境
3. 障害時の素早い復旧

この観点で、慣れ親しんだDebian系の方が圧倒的に効率的でした。

最適な選択をするための判断基準

AlmaLinuxを選ぶべき場面

    • 企業の本番環境(Red Hat系が標準)
    • セキュリティが最優先の環境
    • 長期間の安定運用が必要
    • 専任のインフラエンジニアがいる体制

Debian系を選ぶべき場面

    • 個人・小規模開発プロジェクト
    • 迅速なプロトタイピングが必要
    • コミュニティサポートを重視
    • 学習コストを抑えたい

技術選択の思考フレームワーク

graph TD
    A[技術選択] --> B{プロジェクト規模}
    B -->|企業・大規模| C[AlmaLinux検討]
    B -->|個人・中小規模| D[Debian系推奨]
    
    C --> E{セキュリティ要件}
    E -->|最高レベル| F[AlmaLinux]
    E -->|標準レベル| G[要検討]
    
    D --> H{開発速度重視?}
    H -->|はい| I[Ubuntu/Debian]
    H -->|いいえ| J[AlmaLinux検討]

実践的な移行ガイド

AlmaLinuxからDebian系への移行手順

#### 1. サービス設定のバックアップ

# 設定ファイルのバックアップ
tar -czf almalinux-configs.tar.gz 
  /etc/systemd/system/ 
  /opt/adguardhome/ 
  /etc/unbound/ 
  /etc/firewalld/

コンテナイメージのエクスポート


podman save adguard/adguardhome -o adguardhome.tar
podman save mvance/unbound -o unbound.tar

#### 2. Ubuntu環境での再構築

# Docker Composeによる簡潔な定義
version: '3.8'
services:
  adguardhome:
    image: adguard/adguardhome
    container_name: adguardhome
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "3000:3000/tcp"
    volumes:
      - ./adguardhome/work:/opt/adguardhome/work
      - ./adguardhome/conf:/opt/adguardhome/conf

unbound:
    image: mvance/unbound:latest
    container_name: unbound
    restart: unless-stopped
    ports:
      - "5335:53/tcp"
      - "5335:53/udp"
    volumes:
      - ./unbound:/opt/unbound/etc/unbound

#### 3. 移行後の検証

# DNS解決テスト
nslookup google.com localhost
dig @localhost google.com

サービス状態確認


sudo systemctl status docker
docker ps

パフォーマンス比較

リソース使用量

| メトリック | AlmaLinux | Ubuntu 22.04 LTS |
|———-|———–|——————-|
| メモリ使用量 | 1.2GB(基本) | 0.8GB(基本) |
| ディスク使用量 | 4.5GB(最小構成) | 2.1GB(最小構成) |
| 起動時間 | 45秒 | 28秒 |

構築・保守コスト

| 作業 | AlmaLinux | Ubuntu | 時短効果 |
|——|———–|——–|———-|
| 初期構築 | 8時間 | 3時間 | 62%短縮 |
| トラブル対応 | 3時間/件 | 1時間/件 | 67%短縮 |
| 機能追加 | 2時間 | 1時間 | 50%短縮 |

今後の技術戦略

段階的なスキルアップ計画

1. Phase 1: Debian系での安定運用確立
2. Phase 2: Docker/Kubernetesスキル向上
3. Phase 3: 企業環境でのRHEL系運用経験
4. Phase 4: AlmaLinuxでの本格運用再チャレンジ

技術選択の原則

技術選択指針:
  primary:
    - プロジェクト目標達成速度
    - チーム・個人のスキルレベル
    - 長期保守コスト
  
  secondary:
    - 技術トレンド
    - エコシステムの成熟度
    - コミュニティサポート
  
  evaluation_cycle:
    - 四半期ごとの技術選択見直し
    - プロジェクト完了時の振り返り

まとめ:適材適所の技術選択

AlmaLinuxの価値を認めつつ

AlmaLinuxは確実に優秀なディストリビューションです:

    • エンタープライズグレードのセキュリティ
    • 長期サポートによる安定性
    • Red Hat エコシステムとの親和性

Debian系の実用性

一方で、以下の場面ではDebian系が圧倒的:

    • 迅速な開発サイクルが必要
    • 小規模チームでの運用
    • 学習コストを抑えたい
    • 豊富な情報源を活用したい

最終的な判断基準

> 「技術選択は手段であり、目的ではない」

Lovateプロジェクトでは、安定した環境での迅速な機能開発が最優先。この目標達成のため、使い慣れたDebian系を選択しました。

将来的にエンタープライズ環境で働く機会があれば、その時こそAlmaLinuxの真価を発揮できる場面だと考えています。

参考資料

  • [AlmaLinux OS Official Documentation](https://wiki.almalinux.org/)
  • [Red Hat Enterprise Linux Documentation](https://access.redhat.com/documentation/)
  • [Ubuntu Server Guide](https://ubuntu.com/server/docs)
  • [SELinux User’s and Administrator’s Guide](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/using_selinux/)
  • [Podman Documentation](https://docs.podman.io/)

📌 この記事は2025年8月時点の実体験に基づいています。技術の進歩により、今後状況が変わる可能性があります。

じゅんち8

じゅんち8より
AIの進化は本当に目覚ましいですが、それと同時に人間らしい創造性も大切にしていきたいですね。

関連記事

タイトルとURLをコピーしました