Infrastructure as Codeの基礎
Infrastructure as Codeを理解します。コンソールを操作する代わりに、バージョン管理されたファイルでサーバー、ネットワーク、サービスを定義し、それを信頼性の高いものにする原則を学びます。
「Infrastructure as Codeの基礎」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
Infrastructure as Code とは
Infrastructure as Code(IaC) とは、サーバー、ネットワーク、ロードバランサーなどのインフラストラクチャを、手作業で設定するのではなく、バージョン管理して自動的に適用できる機械可読なファイルで記述することです。
解決する課題
手作業でクリックして設定すると、設定ドリフトが発生します。環境が徐々に異なる状態になり、なぜそうなったのか誰も覚えていないという状態です。IaC によって、インフラストラクチャを再現可能、レビュー可能、かつ復旧可能にできます。
- 開発・ステージング・本番環境の一貫性
- 迅速な災害復旧
- 監査可能な変更履歴
宣言的アプローチと命令的アプローチ
宣言的ツールは望ましい最終状態を記述し、そこに到達する手順を判断します(Terraform など)。命令的ツールは、明示したコマンドを順番に実行します(シェルスクリプトなど)。現在の IaC の多くは宣言的です。
宣言的な例
ここでは、宣言的なファイルで 1 台の仮想マシンが存在すべきことだけを指定しています。作成、更新、または何もしないかはツールが判断します。
resource "server" "web" {
name = "web-01"
cpu = 2
image = "ubuntu-22.04"
}冪等性
IaC の基本原則の 1 つは、同じ定義を繰り返し適用しても同じ結果になることです。初回の実行でリソースが作成され、状態がすでに一致していれば、2 回目以降の実行では何も変更されません。
バージョン管理
IaC のファイルは、アプリケーションコードと同じように Git で管理します。差分、コードレビュー、blame を利用でき、コミットを戻すことでインフラストラクチャもロールバックできます。
git add main.tf
git commit -m "Add web server definition"適用前にプランを確認する
優れた IaC ツールは、適用する前にプラン(変更内容のプレビュー)を表示します。これにより、意図しない削除が起きる前に発見できます。
terraform plan状態の管理
宣言的ツールは、定義と実際のリソースの対応関係を記録する状態ファイルを保持します。状態ファイルは安全に(多くの場合はリモートに)保存し、手作業で編集してはいけません。
イミュータブルインフラストラクチャ
稼働中のサーバーにパッチを当てるのではなく、イミュータブルなアプローチではサーバーを置き換えます。新しいイメージを作成し、新しいインスタンスをデプロイして、古いものを廃止します。予期しない問題が少なく、簡単にロールバックできます。
構成管理
IaC はマシンをプロビジョニングし、構成管理ツール(Ansible、Chef、Puppet)はそのマシンにソフトウェアをインストールして設定します。両者を組み合わせることで、スタック全体を自動化できます。
ansible-playbook -i inventory site.ymlDevOps パイプラインにおける IaC
IaC は CI/CD に組み込めます。マージによってレビュー用の plan を実行し、承認後に apply を実行できます。インフラストラクチャの変更も、コードの変更と同じゲートを通過します。
簡単な確認
IaC で冪等性が重要なのはなぜですか?
まとめ
これで、IaC の基礎を理解できました。
- インフラストラクチャを手作業のクリックではなく、バージョン管理されたファイルで記述します
- 宣言的な定義と冪等的な適用を使用します
- apply の前にplanを実行し、安全に状態を管理します
- イミュータブルインフラストラクチャと構成管理で全体を完成させます
IaC によって、DevOps の自動化を信頼性と再現性のあるものにできます。
よくある質問
「Infrastructure as Codeの基礎」レッスンは無料ですか?
はい。「Infrastructure as Codeの基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「Infrastructure as Codeの基礎」で何を学びますか?
Infrastructure as Codeを理解します。コンソールを操作する代わりに、バージョン管理されたファイルでサーバー、ネットワーク、サービスを定義し、それを信頼性の高いものにする原則を学びます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「Infrastructure as Codeの基礎」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- DevOpsの考え方
- 継続的インテグレーションの解説
- 継続的デリバリーと継続的デプロイ
- Infrastructure as Codeの基礎