最終更新日 2025年10月17日

Contents
はじめに
LPIC-305(Virtualization & Containerization)は、LPIC-3の中でも仮想化とコンテナ技術の専門試験として人気の高い分野です。
本記事では、LPI公式のv3.0試験範囲に完全準拠し、KVM・Docker・LXD・Terraform・cloud-initなど、試験で頻出する400語以上をチートシート形式で整理しました。
実際の構築現場でも役立つ内容になっているので、学習と実務を両立したい方はぜひ最後までご覧ください。
第1章:Full Virtualization(完全仮想化)
暗記のポイントは以下の通りです。
- KVM+QEMU+libvirtの構成を正確に理解することが最重要。
virsh
コマンド群(start, list, dumpxml, snapshot)は「状態」とセットで覚える。- qcow2とraw形式の違い、および
qemu-img
の変換操作を押さえる。 - ライブマイグレーションとスナップショットの要件(共有ストレージ有無)を整理。
用語 | 意味 | 主な使い方や構成要素 | 試験でのポイント |
---|---|---|---|
Hypervisor | 仮想マシンを管理するソフトウェア層 | Type1(ベアメタル)とType2(ホスト型)に分類 | KVMはType1に分類されることを理解する |
KVM(Kernel-based Virtual Machine) | Linuxカーネルに統合された仮想化機構 | /dev/kvm を介してハードウェア支援仮想化を利用 | CPUのVT-x/AMD-Vが必要 |
QEMU | オープンソースの仮想マシンエミュレータ | KVMと組み合わせることで高速な仮想化 | KVMを有効化すると「qemu-system-x86_64 -enable-kvm」で使用 |
Libvirt | 仮想化APIを統一するライブラリ | virsh , virt-manager , virt-install などのツールが利用 | 仮想マシン、ネットワーク、ストレージの統合管理が可能 |
virsh | libvirtのCLI管理ツール | virsh start vm1 , virsh list , virsh shutdown など | 試験で頻出コマンド。状態遷移管理に注目 |
virt-manager | GUIベースの仮想マシン管理ツール | Libvirtをバックエンドに使用 | 実務ではVNC接続設定や仮想ネットワーク確認で利用される |
virt-install | 仮想マシンをCLIで作成するツール | ISO指定、ディスクサイズ指定など可能 | 非対話的インストール方法を覚える |
virt-viewer | 仮想マシンのコンソールを表示 | VNC/SPICE経由で仮想マシンに接続 | GUIアクセス用として出題される |
virt-clone | 仮想マシンを複製するツール | --original と --name 指定でクローン作成 | UUID重複回避に注意 |
virt-sysprep | 仮想マシンの初期化ツール | ホスト名やSSHキーを削除して再利用可能化 | テンプレート作成時に使う |
virsh snapshot-create-as | 仮想マシンのスナップショット作成 | --domain と--name を指定 | snapshot管理は試験頻出 |
virt-snapshot | スナップショットを管理するツール | LVMスナップショットやqcow2に対応 | バックアップ用途を理解 |
qcow2 | QEMU Copy-On-Write形式の仮想ディスク | スナップショット・圧縮・AES暗号対応 | qemu-img info で確認可能 |
qemu-img | 仮想ディスクイメージの作成/変換ツール | qemu-img convert , create , resize など | raw→qcow2変換を覚える |
rawイメージ | シンプルなディスク形式 | 高速だがスナップショット不可 | パフォーマンス重視用途に使う |
virt-top | 仮想マシンのリソース使用状況確認ツール | CPU , MEM , VIRT などをリアルタイム表示 | 実行時にvirsh list でVM名を確認しておく |
virt-df | 仮想マシン内部のディスク使用量を表示 | virt-df -d <vm> | ゲストOSにログインせず確認できる |
virsh dominfo | 仮想マシン情報の表示 | CPU, メモリ, UUID, 状態など | 状態確認に必須 |
virsh autostart | 自動起動設定コマンド | virsh autostart <vm> | 起動時自動スタート設定を覚える |
virsh dumpxml | 仮想マシンの定義をXMLで表示 | 設定ファイルの編集・複製に利用 | XML直接編集は出題されやすい |
virt-xml | XMLを編集するツール | ネットワークやディスク追加を自動化 | --edit オプションを覚える |
virt-log | ゲストOSのログ取得 | systemdジャーナルと連携 | トラブル解析用途 |
virt-copy-in / virt-copy-out | 仮想マシンのファイル入出力 | OSを起動せずにコピー | 試験で「ゲストにログインせず変更可能」を狙う問題あり |
virt-cat | 仮想マシン内ファイル閲覧 | 例: virt-cat -d vm1 /etc/hostname | 便利ユーティリティとして出題される |
virt-rescue | 仮想マシン修復モード起動 | 緊急時のファイル修復やfsck実行 | 実践的知識として評価される |
virt-builder | OSイメージ自動生成ツール | テンプレートから構築、virt-builder --list で一覧 | クラウド向け展開の下準備に利用 |
virt-resize | 仮想ディスクのサイズ変更 | オンライン・オフラインで利用可 | ルートパーティション拡張試験例あり |
brctl | Linuxブリッジ制御ツール | 仮想NICを接続するためのブリッジ作成 | brctl addbr br0 で仮想ネットワーク作成 |
virsh net-define | 仮想ネットワーク定義 | XMLでネットワーク設定 | NAT/ブリッジの違いを理解 |
virsh net-start | 仮想ネットワーク開始 | virsh net-start default | 起動と永続設定を区別 |
virtio | 仮想化デバイスの標準ドライバ | I/O性能最適化 | virtio-blk, virtio-netが試験対象 |
SR-IOV | Single Root I/O Virtualization | NICを仮想関数(VF)として分割 | 高速ネットワーク構成で出題あり |
Nested Virtualization | 仮想マシン内で仮想化を動かす技術 | kvm_intel nested=1 で有効化 | 実験・CI環境で利用される |
NUMA | Non-Uniform Memory Access | CPUソケット単位でメモリ最適化 | numactl 設定と関係あり |
Xen | オープンソースのType1ハイパーバイザ | Dom0/DomU構成 | paravirtualizationとHVMの違いを理解 |
Dom0 | Xenの制御ドメイン | ハードウェア直接アクセス可 | ゲスト(DomU)の管理を担当 |
DomU | Xenゲストドメイン | Dom0経由で管理 | paravirt構成で高速動作 |
xlコマンド | Xen管理コマンド | xl create , xl list など | 古いxm より新しい管理体系 |
xenstored | Xen設定デーモン | 設定情報を保持 | 正常動作に必須プロセス |
xenconsoled | Xenゲストコンソール管理 | xl console vm1 で接続 | コンソール確認で出題される |
virtio-blk | 仮想ブロックデバイス | 高速なI/Oを提供 | qcow2形式と組み合わせて使用 |
virtio-net | 仮想ネットワークデバイス | 通常のe1000より高速 | SR-IOVと対比で問われる |
vhost-net | カーネル空間でパケット転送 | virtio性能を更に向上 | ネットワーク最適化問題に出題される |
PCI Passthrough | 物理デバイスをVMに直結 | GPU, NIC, USBなど | vfio-pci モジュール理解が必要 |
vfio | 安全なデバイスアクセスを提供 | IOMMUと連携 | セキュリティ面も問われる |
IOMMU | 入出力メモリ管理ユニット | デバイスのメモリアクセス制御 | 仮想化のハードウェア基盤知識として頻出 |
snapshot | 仮想マシン状態保存 | qcow2, LVMスナップショットに対応 | 差分保存方式を理解 |
live migration | 稼働中VMを停止せず移動 | virsh migrate で実行 | ネットワーク共有ストレージ要件を問われる |
cold migration | 停止後に移動 | ストレージコピー含む | 差を区別して覚える |
virtlockd | 仮想マシンロック管理デーモン | 同時アクセス制御 | 競合防止として出題される |
virtlogd | 仮想マシンログ収集 | systemd統合ログ管理 | journalctl -u virtlogd で確認 |
KSM(Kernel Samepage Merging) | 重複メモリページを統合 | メモリ削減 | /sys/kernel/mm/ksm/ 設定を問う問題あり |
ballooning | メモリ動的再割り当て | ゲスト間で共有最適化 | メモリオーバーコミット対策 |
Overcommit | メモリ・CPUの過剰割当 | 実リソースより多く割当 | パフォーマンス低下の危険を理解 |
CPUピニング | 仮想CPUを物理CPUに固定 | NUMA最適化と関連 | vCPU配置最適化で出題あり |
hugepages | 大きなページサイズで性能改善 | /proc/meminfo 確認 | メモリチューニング関連問題あり |
virt-who | サブスクリプション監視ツール | RedHat系で使用 | 試験範囲外に近いが知識として有用 |
XMLドメイン定義 | 仮想マシン設定ファイル | CPU, メモリ, NIC, ディスク設定 | <devices> 要素理解が出題される |
virt-sandbox | 安全なVM実行環境 | セキュリティ実験用途 | libvirt-sandboxパッケージで利用 |
vhost-scsi | SCSIデバイス高速I/O | 仮想ディスクI/O最適化 | ストレージ最適化で出題される |
tapデバイス | 仮想ネットワークI/F | qemuが自動生成 | ip link で確認できる |
NATネットワーク | 仮想マシンから外部通信可 | デフォルトネットワーク設定 | 外部→内部通信は不可 |
ブリッジネットワーク | ホストと同一セグメント参加 | brctl 構成 | 複数VMの相互通信に利用 |
macvtap | 高性能仮想NIC | SR-IOV代替 | パケット転送経路の制限あり |
cloud-image | 事前構築されたVMイメージ | Ubuntu Cloud Imageなど | cloud-initと組み合わせ利用 |
ISOブート | 仮想マシン初回起動時の方法 | OSインストール用 | virt-installで指定 |
OVMF | UEFI対応の仮想ファームウェア | Secure Boot対応 | 試験ではEFI設定に注目 |
TPM passthrough | 仮想TPMデバイス接続 | セキュリティ機構強化 | swtpm ユーティリティと関連 |
SPICE | 仮想ディスプレイプロトコル | 高速・暗号化転送 | VNCとの違いを理解 |
VNC | 仮想マシンリモート表示 | デフォルト6000番台ポート | セキュリティ設定を問われる |
SELinux | 仮想環境保護に利用 | virt-sandboxやlibvirt制御に関与 | 強制アクセス制御が出題される |
AppArmor | Ubuntuでのセキュリティ制御 | 仮想プロセス隔離 | プロファイル設定確認問題あり |
Kdump | カーネルクラッシュダンプ取得 | 仮想環境でのトラブル解析 | /etc/kdump.conf |
Sysctl | カーネルパラメータ制御 | 仮想化時の最適化設定 | net.ipv4.ip_forward=1 等出題あり |
SELinux booleans | セキュリティ例外制御 | setsebool virt_use_nfs on 等 | 仮想環境との共存設定で頻出 |
virt-host-validate | ホストが仮想化可能か検査 | VTサポート等を自動確認 | インストール前チェックとして出題 |
libvirtd | libvirtデーモン | systemctl status libvirtd | 起動トラブル解析で問われる |
qemu-kvm | KVM実行バイナリ | CPUエミュレーション含む | バージョン確認qemu-kvm --version |
第2章:Container Virtualization(コンテナ仮想化)
暗記のポイントは以下の通りです。
- namespace・cgroup・capabilities の役割を正確に区別して理解する。
- LXC/LXDの基本コマンド(
lxc launch
,lxc exec
,lxc profile
)を習得。 - Dockerfile命令の実行順序(FROM→RUN→CMD→ENTRYPOINT)を暗記。
- Kubernetesの構成(Pod, Deployment, Service)の関係を理解しておく。
- runc・containerd・CRI-Oなどランタイムの違いを明確に把握する。
用語 | 意味 | 主な使い方や構成要素 | 試験でのポイント |
---|---|---|---|
コンテナ仮想化 | OSカーネルを共有する軽量仮想化 | LXC, Docker, Podmanなどが代表 | 仮想マシンとの違いを理解する |
Namespace | プロセスを分離するLinux機能 | PID, NET, MNT, UTS, IPC, USERなど | 各Namespaceの役割を暗記 |
Cgroup(Control Group) | リソース制御を行う仕組み | CPU, メモリ, I/O, ネットワーク制限 | /sys/fs/cgroup 下で制御される |
Capabilities | root権限を分割管理する仕組み | CAP_NET_BIND_SERVICEなど | 不要な権限を削除してセキュリティ強化 |
seccomp | システムコールをフィルタリング | Dockerはデフォルトでseccomp有効 | 攻撃面縮小の代表技術 |
AppArmor | プロセス制限のセキュリティ機構 | Ubuntuで利用される | Dockerのプロファイル設定で出題あり |
SELinux | コンテナアクセス制御 | RHEL/CentOS系で使用 | sVirtによるコンテナ隔離を理解 |
OCI(Open Container Initiative) | コンテナ標準仕様 | runtime-spec, image-specなど | runcはOCI準拠ランタイム |
runc | OCI準拠のコンテナ実行エンジン | Docker, Podmanが内部で利用 | runc run で直接起動も可能 |
containerd | Dockerから独立したランタイム | gRPC APIを提供 | Kubernetesでも標準採用 |
CRI-O | Kubernetes向け軽量ランタイム | Red Hat系で採用 | CRI(Container Runtime Interface)実装の一種 |
Podman | rootlessコンテナ対応ツール | Docker互換CLIを持つ | podman ps , podman build を覚える |
Buildah | OCIイメージビルダー | Dockerfile不要で構築 | セキュリティ重視環境で使用 |
Skopeo | コンテナイメージ転送ツール | skopeo copy docker://... | 直接レジストリ間コピー可能 |
LXC(Linux Containers) | 軽量コンテナ技術 | lxc-create , lxc-start で操作 | システムコンテナを扱う |
LXD | LXCを管理するデーモン/CLI | lxc launch ubuntu:22.04 vm1 | ネットワーク/ストレージ統合管理 |
lxc-create | コンテナ生成コマンド | -t download でテンプレート指定 | 設定ファイルパス /var/lib/lxc/<name>/config |
lxc-start / lxc-stop | コンテナ起動・停止 | lxc-start -n web | 状態管理を問う問題あり |
lxc-attach | 実行中コンテナに接続 | rootでの操作時に使用 | SSH不要の管理手段として出題 |
lxc-ls | コンテナ一覧表示 | lxc-ls --fancy | 状態・IP確認に使用 |
lxc-info | コンテナ詳細情報を表示 | PID, 状態, ネットワークなど | コンテナトラブル時に有用 |
lxc-snapshot | コンテナのスナップショット作成 | lxc-snapshot -n vm1 | 差分保存を理解 |
lxc-copy | コンテナ複製 | lxc-copy -n vm1 -N vm2 | テンプレート化に利用 |
lxc-destroy | コンテナ削除 | lxc-destroy -n vm1 | クリーンアップで頻出 |
LXDプロファイル | ネットワークやストレージ設定を定義 | lxc profile show default | 自動設定テンプレート理解が重要 |
LXDストレージプール | コンテナのディスク領域 | lxc storage list | zfs/btrfs/lvmの違いを理解 |
LXDネットワーク | 仮想NICの設定 | lxc network create br0 | NAT/Bridgeモードを区別 |
lxc exec | コンテナ内でコマンド実行 | lxc exec c1 -- bash | SSH代替として頻出 |
LXDクラスタ | 複数ノードの統合管理 | lxc cluster add | 高可用性環境で利用される |
Docker | アプリケーションコンテナの代表格 | クライアント・デーモン構造 | LPIC-305では必須トピック |
Docker Engine | コンテナ実行基盤 | dockerd, containerd, runcで構成 | 3層構造を暗記 |
dockerd | Dockerデーモン | コンテナ実行リクエストを処理 | /var/run/docker.sock で通信 |
Docker CLI | クライアント操作ツール | docker run , docker build , docker ps | 試験に多く出題 |
Dockerfile | コンテナ構築用スクリプト | FROM, RUN, CMD, COPY, ENTRYPOINT等 | 命令の実行順序を理解 |
FROM命令 | ベースイメージ指定 | 例:FROM ubuntu:22.04 | 最初に記述する命令 |
RUN命令 | ビルド時にコマンド実行 | RUN apt update && apt install -y nginx | イメージレイヤ生成の基礎 |
CMD命令 | コンテナ実行時コマンド | CMD ["nginx", "-g", "daemon off;"] | ENTRYPOINTとの違い理解 |
ENTRYPOINT命令 | コンテナの固定実行エントリ | ENTRYPOINT ["python3"] | CMDとの組み合わせ問題あり |
COPY / ADD | ファイルをコンテナに追加 | COPY app.py /opt/ | ADDは圧縮展開対応 |
EXPOSE | 公開ポート指定 | EXPOSE 80 | 実際の公開には-p 指定必要 |
ENV | 環境変数設定 | ENV LANG ja_JP.UTF-8 | CMDから参照可能 |
WORKDIR | 作業ディレクトリ設定 | WORKDIR /app | RUN, CMD, COPYの基準パスになる |
VOLUME | 永続ボリューム宣言 | VOLUME /data | docker volume と混同しない |
LABEL | メタデータ設定 | LABEL maintainer="admin@example.com" | 監査・管理用途で使用 |
ARG | ビルド時変数指定 | ARG version | ENVとの作用範囲の違いに注意 |
docker build | イメージを構築 | docker build -t web:v1 . | Dockerfileのコンテキスト理解 |
docker run | コンテナ起動 | docker run -d -p 80:80 nginx | オプション-v , -e , --rm を覚える |
docker ps | 稼働中コンテナ一覧 | docker ps -a | 状態管理に頻出 |
docker exec | 実行中コンテナ内でコマンド実行 | docker exec -it web bash | デバッグ手法として出題 |
docker logs | コンテナログ表示 | docker logs -f web | トラブル解析に使用 |
docker network | ネットワーク管理 | docker network ls | bridge, host, noneを区別 |
docker volume | ボリューム管理 | docker volume create data | 永続化戦略を理解 |
docker inspect | コンテナ情報表示 | JSON形式で詳細出力 | 設定・IP確認に使用 |
docker-compose | 複数コンテナ定義ツール | docker-compose up -d | YAML形式での依存関係を理解 |
docker swarm | 分散オーケストレーション | docker swarm init | Kubernetesとの違いを理解 |
overlay network | Swarmのマルチホスト通信 | driver: overlay | 分散環境での通信理解 |
Kubernetes(k8s) | コンテナオーケストレーション基盤 | Pod, Deployment, Serviceなど | 試験の「352.4」で重点出題 |
Pod | コンテナの最小実行単位 | 同一ネットワーク・ストレージを共有 | YAML構成理解 |
Deployment | Pod管理オブジェクト | kubectl apply -f deployment.yml | ローリングアップデートに注目 |
Service | Podへのアクセスを定義 | ClusterIP, NodePort, LoadBalancer | 通信経路の違いを理解 |
kubelet | ノード上のコンテナ管理エージェント | Pod状態監視・制御 | systemctl status kubelet で確認 |
kubectl | Kubernetes操作CLI | kubectl get pods , logs , describe | 主要サブコマンド暗記 |
ConfigMap | 設定データ共有 | kubectl create configmap | 環境変数注入で利用 |
Secret | 機密データ格納 | Base64エンコードで保存 | パスワード管理試験例あり |
Helm | Kubernetesパッケージ管理ツール | helm install nginx stable/nginx | manifest一括管理に使用 |
Docker Registry | イメージ保存サーバ | Docker Hub, Harbor, GCRなど | プライベートレジストリ構築が出題される |
docker login | レジストリ認証 | docker login myrepo.local | 認証情報の保存場所を覚える |
docker tag | イメージに別名を付ける | docker tag web:v1 repo/web:latest | Push前に使用する |
docker push | イメージをレジストリに送信 | docker push repo/web:latest | 認証要件を問われる |
docker pull | イメージ取得 | docker pull ubuntu:22.04 | キャッシュ利用を理解 |
イメージレイヤ | Dockerイメージの階層構造 | キャッシュ再利用で高速化 | レイヤ数を減らす最適化も出題あり |
Rootlessモード | 非rootユーザーで実行 | Podmanなどでサポート | セキュリティ重視環境で利用 |
OverlayFS | コンテナファイルシステム | イメージレイヤを重ねて実現 | 書き込みは最上層 |
tmpfs | 一時的なメモリFS | コンテナ内の一時領域 | パフォーマンス向上手法 |
systemd-nspawn | systemd組み込みのコンテナ | machinectl で管理 | 軽量LXC代替技術 |
chroot | ルートディレクトリ変更 | コンテナ原型技術 | コンテナ前史として理解 |
RootFS | コンテナのベースファイルシステム | /var/lib/docker/overlay2 | コピーオンライト構造を理解 |
Container Image | 実行可能な環境テンプレート | Docker Hubなどで配布 | OCI規格に準拠 |
Restart Policy | コンテナ再起動方針 | --restart=always | サービス稼働継続に関係 |
Healthcheck | コンテナの状態監視 | HEALTHCHECK CMD curl -f localhost:80 | 自動再起動の条件判定に使う |
docker prune | 未使用リソース削除 | docker system prune -a | クリーンアップで頻出 |
コンテナログ | /var/lib/docker/containers に保存 | JSON形式 | ログ肥大対策も試験対象 |
Docker Context | 接続先Docker環境設定 | docker context use remote | 複数環境管理で出題される |
第3章:VM Deployment and Provisioning(VMの展開とプロビジョニング)
暗記のポイントは以下の通りです。
- cloud-init のモジュール(write_files, runcmd, bootcmd)の順序を意識して暗記。
- Packerの構成(builder / provisioner / post-processor)を正確に押さえる。
- Vagrantfileの主要項目(provider / box / provisioner)とCLI操作(init, up, destroy)を確認。
- Terraformの実行順序(init → plan → apply → destroy)を理解する。
- OpenStack構成要素(Nova, Neutron, Cinder, Glance)を「名前+役割」で整理。
用語 | 意味 | 主な使い方や構成要素 | 試験でのポイント |
---|---|---|---|
プロビジョニング | 仮想マシンや環境を自動構築するプロセス | Packer, cloud-init, Terraform, Ansibleなど | 自動化フローと各ツールの役割を理解 |
ゴールデンイメージ | 再利用可能な標準OSイメージ | 企業標準設定済みのテンプレート | cloud-initで初期化を行うのが一般的 |
Packer | イメージ自動ビルドツール | JSON/HCL定義で構築自動化 | LPIC-305の中心トピック |
Packer Builder | イメージ生成モジュール | qemu, docker, virtualbox, amazon-ebsなど | 試験ではqemu-builderが対象 |
Packer Provisioner | ビルド中に設定を注入するモジュール | shell, ansible, chef, puppet等 | shell provisionerが最頻出 |
Packer Post-processor | ビルド後の処理(圧縮・配布など) | vagrant, docker-push, manifestなど | “post-processors”の用途を覚える |
Packer テンプレート | ビルド設定ファイル(JSON/HCL) | builders, provisioners, variables等で構成 | “variables”で再利用性を向上 |
packer build | イメージ作成コマンド | packer build template.json | 実行時変数の上書きオプションに注意 |
packer validate | 設定の構文検証 | packer validate template.json | 本番実行前チェックに利用 |
packer inspect | テンプレート内容確認 | 使用される変数やbuildersを一覧表示 | 誤設定防止に役立つ |
cloud-init | 初回起動時の自動初期化システム | ユーザーデータを読み取り設定を適用 | VM展開の自動化で必須技術 |
User-Data | cloud-initに渡す設定スクリプト | YAML形式で記述 | /var/lib/cloud/ 下に保存される |
cloud-config | cloud-init設定フォーマット | #cloud-config ヘッダーで開始 | YAML構造とインデントを確認 |
cloud-init modules | cloud-initが実行するフェーズ群 | bootcmd, runcmd, write_files など | 実行順序を理解する |
write_files | cloud-configモジュール | ファイル作成・編集を自動化 | 権限設定も指定可能 |
runcmd | cloud-configモジュール | 起動後にシェルコマンド実行 | サービス再起動設定などに使う |
bootcmd | 起動直後に実行される処理 | /bootマウント前後の設定に利用 | 実行タイミングを区別 |
ssh_authorized_keys | SSHキー登録設定 | cloud-initで公開鍵登録 | 初回ログイン認証の設定で出題 |
hostname設定 | cloud-initでホスト名指定 | hostname: server01 | ホスト固有化の定番 |
growpart | ディスクパーティション拡張 | デフォルトでcloud-initに含まれる | 自動リサイズ設定を理解 |
packages | cloud-initでパッケージインストール | packages: [nginx, vim] | apt/yumコマンドの自動実行 |
apt_upgrade | 起動時にアップデートを実施 | apt_update: true | セキュリティ維持に関連する |
cloud-init status | 状態確認コマンド | 成功/失敗を確認できる | デバッグで頻出 |
cloud-init clean | 初期化情報リセット | イメージ再利用前に実行 | golden image作成時に重要 |
cloud-init logs | ログ確認 | /var/log/cloud-init.log | 起動時エラー解析で利用 |
Packer × cloud-init | Packerでcloud-initを仕込む構成 | builderでISO指定しinitを有効化 | LPIC出題傾向の連携テーマ |
Vagrant | 仮想環境をコードで定義・起動 | Vagrantfile を使用 | 開発環境構築自動化ツール |
Vagrantfile | 仮想環境の設定ファイル | Ruby構文で記述 | provider, box, provisionなどを記載 |
vagrant init | 新規環境初期化 | vagrant init ubuntu/jammy64 | 初期ファイルを生成 |
vagrant up | 仮想マシンを起動 | providerに応じた起動方法を実行 | VirtualBox/Libvirt両対応を覚える |
vagrant halt | 仮想マシン停止 | vagrant halt | suspend との違い理解 |
vagrant destroy | 仮想マシン削除 | ディスク・設定ファイルを削除 | クリーンアップで使用 |
vagrant reload | 設定変更の再適用 | ネットワーク再構成などに利用 | provision との違い |
vagrant ssh | VMにログイン | SSH自動接続を提供 | vagrant ssh-config 確認も可能 |
vagrant box | ベースイメージ管理 | vagrant box list/add/remove | boxファイルのキャッシュ管理 |
vagrant snapshot | 状態保存・復元 | vagrant snapshot save dev1 | 試験で出題されやすい操作 |
provider | Vagrantが利用する仮想化バックエンド | VirtualBox, libvirt, Hyper-V等 | 環境ごとの差異を理解 |
provisioner | VM内部で設定を行う機能 | shell, ansible, puppet等 | Shell Provisionerが最重要 |
synced_folder | ホストとの共有フォルダ設定 | config.vm.synced_folder "./", "/vagrant" | 開発環境連携に使用 |
network設定 | Vagrantネットワーク構成 | private_network, public_networkなど | NATとの違いを問われる |
Vagrant Cloud | 公開boxの共有サービス | https://app.vagrantup.com | 既製box取得場所を把握 |
Terraform | インフラをコード化するツール | HCL言語で構築を宣言的に記述 | “IaC”の代表格 |
HCL(HashiCorp Configuration Language) | Terraform設定言語 | resource , variable , output 等 | 宣言型構文を理解 |
terraform init | 初期化コマンド | providerプラグインを取得 | 実行前に必須 |
terraform plan | 実行内容のプレビュー | 差分を確認できる | 破壊的変更の事前確認 |
terraform apply | 設定を適用 | 実際にリソースを作成 | “plan”の後に実行する |
terraform destroy | リソース削除 | 全インフラを削除 | クリーンアップ操作を問われる |
terraform state | 状態管理ファイル | terraform.tfstate | 手動編集は非推奨 |
terraform output | 変数出力 | 結果を他ツールと連携可能 | スクリプト連携問題あり |
provider | Terraformのクラウド接続定義 | aws, openstack, libvirt等 | 試験でlibvirt-providerを理解 |
resource | 作成対象を定義 | VM, network, storageなど | 宣言型構文を暗記 |
variable | 変数定義 | variable "region" {} | 環境間の使い回しに利用 |
output | 出力変数定義 | output "ip" {} | apply後に確認可能 |
OpenStack | オープンソースのクラウド基盤 | nova, glance, neutron, cinder等 | LPIC範囲では概要理解でOK |
Nova | 仮想マシン管理サービス | インスタンス作成・削除 | computeノード管理を担当 |
Glance | イメージ管理サービス | OSイメージ登録・配布 | cloud-initと連携 |
Neutron | ネットワークサービス | 仮想NIC, ルータ, セキュリティグループ管理 | VLANとSDN理解 |
Cinder | ブロックストレージサービス | ボリューム作成・接続 | VM永続ストレージ管理 |
Horizon | OpenStack Webダッシュボード | 管理UIを提供 | 試験では管理操作名を問う問題あり |
Keystone | 認証・認可サービス | トークンベース認証 | API認証の中心 |
Swift | オブジェクトストレージ | REST APIでアクセス | cURL利用問題あり |
CloudStack | 仮想クラウド管理プラットフォーム | GUIとAPIでクラウド管理 | OpenStackとの比較で出題される |
Eucalyptus | 旧AWS互換クラウド基盤 | EC2/S3 API準拠 | 歴史的知識として出題される |
OpenNebula | 軽量クラウド管理ツール | KVMと統合運用 | シンプル構成で人気 |
Ansible | 構成管理・自動化ツール | YAML形式のPlaybookを利用 | エージェントレス動作を理解 |
Playbook | Ansibleの実行手順ファイル | tasks, handlers, vars などを記述 | 宣言型構造を把握 |
Inventory | 管理対象ホストリスト | INI/YAML形式 | ホストグループ化で利用 |
Task | Ansibleでの処理単位 | nameとモジュール指定 | 冪等性の意味を理解 |
Role | Ansible構成分割単位 | roles/配下にtasks, varsなど配置 | 再利用性向上で出題される |
module | Ansibleの実行モジュール | apt, copy, file, serviceなど | 各モジュール用途を暗記 |
cloud-init × Ansible | 初期設定後に構成適用 | SSHキー経由で連携 | 現場では頻用される組み合わせ |
CI/CD | 継続的インテグレーション/デリバリ | JenkinsやGitLab CIと連携 | 自動デプロイ基礎知識として出題 |
cloud-image | 事前構築済みクラウドOSイメージ | Ubuntu Cloud Image等 | cloud-initプリインストール済み |
Metadata Service | クラウド環境での設定取得API | /latest/meta-data/ 経由で情報提供 | cloud-initが内部的に利用 |
NoCloud | ローカルISO等からcloud-init設定読込 | メタデータをCD-ROM経由提供 | オフライン環境で使われる |
Ignition | Fedora CoreOS向け初期化システム | JSON定義形式 | cloud-initとの違いを把握 |
Kickstart | RHEL系自動インストール設定 | .ks ファイルで記述 | cloud-init以前の方式 |
Preseed | Debian系自動インストール設定 | d-i 構文で回答定義 | Kickstartとの対比で出題あり |
MAAS(Metal as a Service) | 物理サーバ自動構築基盤 | PXEブートでOS展開 | Ubuntu環境で利用される |
PXE(Preboot eXecution Environment) | ネットワーク経由でOSブート | DHCP/TFTP連携 | cloud-initと併用される |
autoyast | SUSEの自動インストールツール | XML構成ファイルで設定 | 他ディストリとの差異を理解 |
virt-builder | 仮想イメージ自動生成ツール | OSテンプレートから即時構築 | cloud-init導入と併用される |
virt-sysprep | 仮想マシン再利用用初期化 | ホスト名・鍵削除等 | golden image化で使用 |
仮想マシンテンプレート | VM複製元の標準イメージ | vSphere, KVM等で利用 | cloud-init組込済みが主流 |
Infrastructure as Code(IaC) | コードによるインフラ定義概念 | Terraform, Ansibleが該当 | LPICでの理論問題に注意 |
YAML | 設定ファイル記述形式 | インデントで階層を表現 | Ansibleやcloud-initで使用 |
JSON | 軽量データ交換形式 | Packer, Ignitionで使用 | シンタックスエラーに注意 |
REST API | HTTPベースの操作インターフェース | OpenStack, CloudStackが採用 | GET/POST リクエスト理解 |
CLIツール | コマンドラインでの自動化 | openstack-cli, ansible, terraform等 | GUIとの違いを理解 |
Gitリポジトリ | IaC構成のバージョン管理 | Terraform, Ansible連携 | チーム運用で必須 |
secrets管理 | 機密情報の安全保管 | Vault, AWS Secrets Manager等 | IAMと併用理解が必要 |
idempotent(冪等性) | 同じ処理を何度実行しても結果が一定 | Ansibleの基本原則 | 試験の定義問題で出題あり |
再利用性 | 一度作った定義を他環境で使うこと | Packer・Terraform共通の目標 | IaC全体の設計思想として問われる |
その他参考情報
LPIC305 に関する参考情報を以下に記載します。
LPIC-3 305 試験概要(Version 3.0対応)
項目 | 内容 |
---|---|
試験コード | 305-300 |
試験時間 | 90分 |
試験提供機関 | Pearson VUE / Linux Professional Institute (LPI) |
問題数 | 60問(選択式+記述式) |
認定の有効期間 | 5年 |
前提条件 | LPIC-2 の認定を保持していること |
試験テーマ | Virtualization and Containerization(仮想化およびコンテナ技術) |
試験バージョン | Version 3.0 |
注意事項 | 旧LPIC-3 304(仮想化+高可用性)はVersion 3.0から分割され、305(仮想化/コンテナ)と306(高可用性/ストレージ)に改定されました。 |
出題範囲(Topic別・重み付き)
トピック | 主な内容 | 重み(試験での比率目安) |
---|---|---|
351:Full Virtualization | 仮想化の基本概念、Xen、QEMU/KVM、libvirt、VMイメージ管理、スナップショット、リソース制御 | 約25 |
352:Container Virtualization | コンテナ仮想化の概念、LXC、Docker、Podman、オーケストレーション(Kubernetes など) | 約25 |
353:VM Deployment and Provisioning | クラウド管理ツール(OpenStack など)、VM 展開・プロビジョニング、自動構成 | 約10 |
※比率の目安は当方が受験した際の出題率を目安にしています。
スポンサーリンク各トピックの補足説明・要注意点
トピック | 主な内容・キーワード |
---|---|
351:Full Virtualization(フル仮想化) | – ハイパーバイザの種類(Type1/Type2) – Xen、QEMU/KVM、libvirt による仮想化管理 – virsh コマンド、仮想ネットワーク設定、ブリッジ接続– スナップショット・クローン・ライブマイグレーションの仕組み – 仮想マシンのリソース制御(CPUピン留め・メモリ制限) |
352:Container Virtualization(コンテナ仮想化) | – コンテナ技術の基礎:namespace、cgroups、chroot – LXC/LXD の操作と設定、コンテナネットワーク – Docker/Podman の仕組み(イメージ/レイヤ構造/レジストリ) – docker-compose、Kubernetes の基本概念 – コンテナの永続化とストレージ管理 |
353:VM Deployment and Provisioning(仮想マシン展開・プロビジョニング) | – クラウド管理ツール(OpenStack, oVirt, cloud-init 等) – 自動展開・構成管理(Ansible, Terraform 連携) – 仮想マシンテンプレートとプロビジョニング手順 – メタデータ・ユーザデータの活用(cloud-init) |