MENU
AI開発、音楽制作、プログラミング技術の実践的な情報を発信する技術ブログです。OpenRouter、Claude、Next.js、React、音楽制作ツールなど最新技術を解説します。
じゅんち8Blog - AI・音楽・プログラミング技術ブログ
じゅんち8Blog - AI・音楽・プログラミング技術ブログ
  1. ホーム
  2. AI・人工知能
  3. AlmaLinuxを本番環境で試した結果、Debian系に戻った理由【2025年最新比較】

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

2025 8/23
AI・人工知能
2025年8月23日
目次

はじめに:なぜ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
  • 試行錯誤: ausearch、sealertによる原因分析
  • 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(柔軟) |
    | 設定難易度 | 高(専門知識必要) | 中(直感的) |
    | トラブル時の調査 | ausearch、sealert | 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の進化は本当に目覚ましいですが、それと同時に人間らしい創造性も大切にしていきたいですね。

AI・人工知能
AlmaLinux Debian DevOps Linux Ubuntu インフラ サーバー管理
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • 2025年のゲーム業界トレンド:モバイルゲーム、ライフハック、ゲーム開発、Unity、Unreal Engine、インディーゲームの最新動向
  • 個人音楽配信で実際にやってみたマーケティング戦略【失敗談も含む】

この記事を書いた人

じゅんち8のアバター じゅんち8

関連記事

  • featured image 69 1ed88e0e80a391ede3adcd2acd2addf1.png
    OpenRouterで始める2025年最新LLM活用術:Claude 4、OpenAI o3、DeepSeek-R1の完全比較とコスト最適化戦略
    2025年8月23日
  • featured image 68 6bf64b613b69f7f5301fe154ecc4014e.png
    2025年最新フロントエンドフレームワーク事情まとめ:実体験に基づく技術選択ガイド
    2025年8月23日
  • featured image 67 1f42d580955a46c9d64e16b95bf9da3b.png
    WireGuard + AdGuardHome で構築する最強VPN広告ブロック環境【2025年完全ガイド】
    2025年8月23日
  • featured image 66 0ac59e90ab667ec88e1b2d7aaad960c2.png
    個人開発者のためのVercel vs Netlify徹底比較:2025年版デプロイメントプラットフォーム選択ガイド
    2025年8月23日
  • J-POP楽曲制作で学んだシンセポップの魅力と制作テクニック
    2025年8月23日
  • 2025年のゲーム業界トレンド:モバイルゲーム、ライフハック、ゲーム開発、Unity、Unreal Engine、インディーゲームの最新動向
    2025年8月23日
  • ボーカロイド6とSynthesizer Vの比較検証:日本のシンセポップ・J-POP音楽制作における実践的活用法
    2025年8月23日
  • 現代J-POP制作の完全ガイド:シンセポップから学ぶプロフェッショナルな音楽制作テクニック
    2025年8月23日
2026年1月
月 火 水 木 金 土 日
 1234
567891011
12131415161718
19202122232425
262728293031  
« 8月    

© じゅんち8Blog - AI・音楽・プログラミング技術ブログ.

目次