インフラ
Terraform Associate 004 #7 設定の作成 — 変数の優先順位、関数、カスタム条件
変数の型と値の入力元の優先順位、sensitive の効力範囲、output と locals の役割を試験の観点で圧縮し、頻出の組み込み関数と式を整理します。004 で強化されたカスタム条件である変数の validation、リソースの precondition・postcondition、check ブロックの区別と評価タイミングまで、トラックで浅く扱った部分を補強します。
Terraform Associate 004 #6 モジュール — ソース指定、バージョン固定、入出力の文法
モジュールの定義とルート、子モジュールの区別から、レジストリ、Git、ローカルパスというソース指定方式ごとの文法と version 引数が動作する条件を試験の観点で整理します。モジュールに値を渡す入力と module.名前.出力 の形で受け取る出力の文法、モジュール内のリソースには直接アクセスできないというカプセル化の原則、パブリックレジストリの verified 表示まで、出題ポイントを固めます。
Terraform Associate 004 #5 state 管理 — バックエンド、ロック、state コマンド、機密情報
state の目的とデフォルトのファイル位置から、ローカルとリモートバックエンドの違い、ロックが防ぐ事故と force-unlock の位置づけを試験の観点で整理します。state list、show、mv、rm の各コマンドが何を変えて何を残すのか、moved、removed、import ブロックとの対応、そして state の中の機密情報とアクセス制御まで、出題ポイントを固めます。
Terraform Associate 004 #4 コアワークフロー — init・plan・apply・destroy とデバッグ
Write、Plan、Apply という試験公式ワークフローの 3 段階と各コマンドの役割、init を再実行すべき 4 つの状況を整理します。plan の -out 保存、apply の -auto-approve と -replace、-target の危険性といったオプションの出題ポイント、fmt と validate の役割の区別、そして TF_LOG 環境変数でデバッグログを有効にする方法まで固めます。
Terraform Associate 004 #3 Terraform の基本 — バージョン制約、ロックファイル、provider 設定
インストール方法と terraform version での確認から始めて、試験が特に好むバージョン制約演算子(=、~>、>=)の読み方、required_providers ブロックと .terraform.lock.hcl ロックファイルの役割の区別を整理します。provider の設定と alias によるマルチリージョン構成、そして .terraform ディレクトリに何が入るのかまで、試験目標 3 の出題ポイントを固めます。
Terraform Associate 004 #2 IaC の概念と Terraform の目的 — 定義問題の攻略
IaC の定義と利点を試験が求める言い回しで整理し、宣言型と命令型の区別、冪等性の概念を問題を解く観点から固めます。マルチクラウドと provider エコシステムにおける Terraform の位置、state が存在する理由、そして Terraform の言語とバイナリの構造まで、試験目標 1 と 2 の出題ポイントをひととおり押さえます。
Terraform Associate 004 #1 試験の紹介 — 004 改定の内容、ドメイン構成、学習戦略
HashiCorp Terraform Associate 資格の 2026 年 1 月の 004 改定を基準に、試験の形式と 003 からの変更点を整理します。新しく出題範囲になった ephemeral・write-only と HCP Terraform の拡大、ドメインごとの出題範囲、そしてこのブログの Terraform トラック 26 本と試験目標のマッピング表まで作って、学習の道筋を立てます。
REST vs GraphQL vs tRPC — API スタイルの選択基準
新しいプロジェクトの API を何で作るかを決める基準を整理します。リソースと HTTP のセマンティクスの上に立つ REST の強みとオーバーフェッチ問題、クライアントが必要なデータをクエリで宣言する GraphQL が解決するものと新たに抱えるコスト、TypeScript のモノレポで型を端から端までつなぐ tRPC の魅力と明確な適用限界、そして公開の有無・クライアントの多様性・チーム構造という 3 つの軸で分かれる選択基準まで扱います。
eBPF 整理 — カーネルを再コンパイルせずに拡張する技術
可観測性・ネットワーキング・セキュリティツールの基盤技術になった eBPF を整理します。カーネルモジュールの危険とユーザースペースの限界の間に eBPF が開く第三の道、検証器が無限ループと不正なメモリアクセスを遮断する安全モデル、kprobe・tracepoint・XDP といったフック地点、bpftrace のワンライナーから bcc、libbpf へ上がる道具のはしご、Cilium・Falco といった代表的な活用先、そしてカーネルバージョンと権限という現実的な制約まで扱います。
メモリが余っているのに OOM で死ぬ理由 — オーバーコミット、cgroup、OOM キラー
free で見るとメモリが残っているのにプロセスが OOM で死ぬパラドックスを解きほぐします。Linux がメモリを約束だけして後から支給するオーバーコミットの原理、free と available の違いとページキャッシュ、システム全体ではなく cgroup の上限に当たって死ぬコンテナ時代の OOM(137、OOMKilled)、犠牲者を選ぶ oom_score の計算、dmesg と kubectl で死因を確認する方法、そして上限・要求値の設計まで扱います。
terraform.tfstate を消してしまったときの復旧 — バックアップファイル、S3 バージョニング、再 import の順で
state ファイルが消えたときに現れる症状と、そのまま apply してはいけない理由から整理します。ローカルの terraform.tfstate.backup の確認、S3 バージョニングから以前のバージョンを復元するコマンド、バックアップが何もないときに import で state を再構築する最後のルートまで優先順位どおりに扱い、同じ事故を構造的に防ぐバックエンド設定をまとめます。
terraform import のやり方 — import ブロックで既存リソースをコードに取り込む
コンソールで作ったリソースを Terraform 管理下に取り込む手順を、import ブロック基準で整理します。リソースごとの import ID を探す場所、-generate-config-out でコードの下書きを生成する方法、plan が変更なしになるまでコードを実際に合わせるコツ、旧 CLI コマンド方式との違いと、複数リソースを一度に取り込むときの順序まで扱います。