【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【200ヶ国以上 グローバル対応】eSIM Marketplace「beSIM(ビーシム)」

【200ヶ国以上 グローバル対応】eSIM Marketplace「beSIM(ビーシム)」

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

LPIC-305 に合格しました

初めまして、システムソリューション部所属  筋トレエンジニアの白阪です。

夏が本格的に始まって、筋トレの季節になってきたので舞い上がっております。

突然ですが皆様  LPIC はご存じでしょうか?

IT資格の中でもかなり有名であり、エンジニアであれば受験したことがある方も多いかと思います。

昨年それの Level3 に改定が入り、LPIC304 が廃止され、305(Virtualization and Containerization)と306(High Availability and Storage Clusters)へ分割されました。

そこで305の内容が私の好きなコンテナ関係だったこともあり、先月試験を受けてきましたので、合格のために勉強したことと試験の感想をお伝えできればと思います!

1. LPIC-305の概要

ザックリとした試験の概要としては、KVMな どの仮想化技術全般、Docker などのコンテナ技術、Packer などのプロビジョニング用ツールの扱いが主な試験範囲となり、

KVM や Xen がどのようにして仮想化を実現しているかや、namespace などのコンテナ技術を実現するための概念、およびDocker や Kubernetes の実際の挙動などが出題されました。

※ 下記公式サイトに、詳細な概要が記載されておりますのご参照ください。

https://www.lpi.org/ja/exam-305-objectives

また、2022年に新設された試験となりますので、従来の LPIC-304 のように ping-t やいわゆる黒本などが出版されていません(2023年7月時点)

なので、試験勉強は重要語句を自分でノートなどにまとめて覚えたり、実際に手を動かしてを挙動を確認する必要がありますので

最低でも1ヶ月以上は勉強時間を確保したほうが無難かと思います。

2. 試験のために勉強したこと

大きく分けて4つのことを重点的に勉強しましたので、それぞれ説明します。

・ping-t で LPIC-304 の問題集を繰り返し解く

・コンテナの基本的な概念の勉強

・Docker、LXD、Kubernetesを手を動かして勉強

・Packer などの勉強

ping-t で LPIC-304 の問題集を繰り返し解く

仮想化技術全般の範囲が LPIC-305 と 304 で被っていたので、ping-tで その部分だけ集中的に勉強し、安定して 100% を取れるようにしました。

特に、最初は Xen と QEMU がそれぞれどのようなものか全くイメージができなかったので、問題を解くたびに ping-t の解説にある図解を繰り返し読むようにしました。

上記に加えて、QEMU でハードウェアのエミュレーションを行い、KVM で CPU仮想化のサポートを行うなどの具体的な動きをそらんじれるようになるまで暗記しました。

その結果、本番試験で問題内容と関係のない単語は省くなどの消去法に活用できました。

コンテナの基本的な概念の勉強

ここから試験対策本や専用のWebサイトがないので、まずは公式サイトに記載されている重要そうな語句をまとめたうえで、Docker の書籍やインターネットで検索して深堀していきました。

とりわけ、コンテナ技術を実現するうえで最も基本的な機能である、「namespace」、「cgroups」、「capability」、「seccomp」については、複数の書籍で詳細に勉強したり、

実際にDocker環境を構築したうえで、nsenterコマンドとunshareコマンドで実際に名前空間を作成したりしました。

上記に加え、runc と containerd の関連性や Kubernetes の pod が落ちたときの挙動など、かなり細かく勉強しました。

Docker、LXD、Kubernetesを手を動かして勉強

こちらは試験の重量が高いこともあり、ローカルの Vagrant + VirtualBox に Docker とLXD 環境を構築し、ひたすらコンテナの作成と削除を繰り返しました。

試験では Dockerfile の中身やローカルディレクトリをマウントしてコンテナを起動するコマンドはどれかなどが出題されるので、

様々な想定でrunコマンドを実行するようにし、--volumes-from などの比較的使用されやすいオプションも覚えるようにしました。

また、Docker の各種オプションを指定することができる、daemon.json ファイルのデフォルトのパスも暗記するようにしました。

▼ --volumes-from オプションを指定

 docker run --volumes-from 【コンテナ名】 -d -p 8080:80 centos7:latest 

次に、Docker より馴染みはないですが、仮想マシンをそのままコンテナ化したLXDコンテナも勉強し、OSイメージを引っ張ってくるコマンドや、ポートフォーワードを設定してブラウザからコンテナ内のページを見れるようにするなど、多岐にわたり勉強しました。

▼ ポートフォワード設定

lxc config device add centos http proxy listen=tcp:127.0.0.1:50005 connect=tcp:【コンテナのIP】:80 bind=host

なお、Kubernetes は自前環境の構築がやや複雑なこともあり、Docker Desktop を利用してコマンドの練習や挙動の確認を実施しました。

具体的には、複数のコンテナが含まれているポッドを作成し、その中の1つのコンテナが削除されたときの挙動や複数のポッドを組み合わせて WordPress ページの作成などを実施しました。

Packer などの勉強

上記以外に、「Packer」、「cloud-init」、「Docker Swarm」も一通り手を動かして勉強しました。

例えば、cloud-init は LXDコンテナと組み合わせて、config ファイルに cloud-init ファイルを指定して、LXDコンテナを起動したりしました。

▼ config ファイルに cloud-init ファイルを指定してLXDコンテナ起動

lxc config set ubuntu-container user.user-data - < cloud-init-config.yml

 

また、Docker Swarm は Kubernetes ほど構築が複雑ではないので、自分で環境を構築し、Dockerイメージを引っ張ってくるコマンドを検証したり、ワーカーノードが落ちたとき、別のワーカーノード上にコンテナが自動作成されるかどうかなどを確認しました。

ただ、ここは試験の重量がそこまで高くないので、軽く触れる程度にしておきました。

以上が勉強したことのまとめとなりますが、これ以外にもDockerコンテナの capability を変更して、実行できるサービスを制限したりなど、網羅的に勉強するようにしました。

なお、学習期間としては大体1か月半くらいになります。

3. 試験を受けてみて

試験を受けた感想としましては以下となります。

・仮想化技術の範囲は LPIC-304 の過去問を繰り返せばなんとかなる

・コンテナの基本概念と Docker は、とにかく手を動かして色々なオプションを覚える

・試験の重量が低いものはそこまで深堀しなくてもいい

上記の中でもDockerに関する問題は、出題数の3分の1(体感)くらいは出てきたような気がするので、完全に理解するくらいの気概で勉強すれば分からない語句はなくなるかと思います。

また、試験の重量が低い項目も、それぞれ1問か2問ぐらいは出題されるので、build コマンドなどの基本的なコマンドは覚えるようにしましょう。

4.まとめ

本試験を通して仮想化やコンテナの基本的な概念を知る良い機会となりました。

そして、実際に手を動かして覚えていくことができたので、勉強自体が苦ではなく、むしろ楽しみながら新たな知識を学ぶことができました。

LPIC-305 についての情報が少なく、手探りでの勉強になりますので、本記事が少しでも参考になれば幸いでございます。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
25
読み込み中...
25 票, 平均: 1.00 / 125
2,929
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

白阪

システムソリューション部所属の筋フラエンジニアです
ホームトレーニーで好きな種目はデッドリフトです
最近のマイブームはちくわを食べてたんぱく質を補給することです