Stack Map新人 Web エンジニアの地図

サーバーやネットワークの設定を、画面で手作業するのではなく、コードに書いて管理するやり方です。
Terraform・Ansible・Kubernetes を例に、変える前に確かめる方法と、気をつける所をまとめました。

なぜコードにするか

HashiCorp は Terraform を「クラウドやオンプレの資源を、安全に効率よく作り・変え・版を管理するための、インフラをコードで書く道具」と説明しています。手作業と比べると、違いはここです。

考え方のヒント表の比べ方は一例です。

Terraform の流れと、plan の読み方

書く → 見る → 当てる、の 3 つで進みます。いちばん大事なのは、当てる前に plan(実行計画)を読むこと。変更を選ぶと、plan がどう出るかが変わります。出力は、公式のチュートリアルの形に合わせた作り物です。

    コードの変更

    terraform plan の出力

    state(今の状態の記録)

    Terraform は、コードと本物の対応を state に記録しています。state の扱いを間違えると、plan が狂ったり、秘密が漏れたりします。

    ほかの道具

    道具の一覧と、どの組み合わせで使われているかは、技術の地図で見られます。

    Ansible の playbook を読む

    Ansible は、離れたサーバーの管理を自動にして、望む状態に保つ道具です。ここでは、作ったサーバーの中に Apache と PHP を入れて設定する例を 1 行ずつ読み、実際に流したときの出力を見ます。道具の並びは技術の地図「Ansible」で見られます。

    3 つのファイルを読む

    流してみる(2 回目は何もしない)

    
          

    出力は、Rocky Linux 9.8 で実際に流したものです(一時ファイルの長い名前だけ縮めました)。

    AI 時代AI と Ansible

    Kubernetes(欲しい状態に合わせ続ける)

    Kubernetes では「何個を、どの版で動かしたいか」を書くと、今の状態をそこへ近づけ続けます。Pod を止めたり、版を上げたりしてみてください。動きは作り物です。

    欲しい状態
    今の状態

      版を少しずつ入れ替えるやり方は、運用「本番への出し方と、戻し方」のローリングと同じです。

      GitOps

      OpenGitOps は、Git などに置いた「欲しい状態」に、道具が本物を合わせ続けるやり方を、4 つの原則にまとめています。

        考え方のヒントプルリクエストに plan の結果を貼り、レビューと承認のあとで当てる流れにすると、手作業の変更が減ります。

        費用と、ルールをコードで

        コードにすると、何でもすぐ作れます。作れる分だけ、費用と決まりを見張る仕組みも要ります。

        AI 時代AI にインフラのコードを書かせるとき

        AI は設定ファイルを書くのが得意です。ただ、1 行の違いで本番が消えることもあります。セキュリティ「権限の持たせすぎ」も見てください。

        チェックリスト

        確かめたものに印を付けてください(この端末にだけ残ります)。考え方のヒント