皆さま毎度お久しぶりです。
今年は気温が40度超える日もあるのではないかと怯えているA.S.です。
(おそとこわい……)
日本気象協会では気温40度以上は「酷暑日」としていますが、
記憶の中の酷暑日はもはや暑いじゃなくて痛い(皮膚が)だった気がします(;´Д`)
ただ適度に外に出ないとそれはそれで不健康……どうしろと。
そういえば同僚のTさんと、今年もまた健康ミネラルむぎ茶の某師匠が
増量の圧かけられてて大変そうだねって話をしました(^o^)
(事実無根)
🐣閑話休題🐣
本題に入りますが、「~as~」の用語多すぎて混乱しませんか……:D
IaaSとかPaaSとか、、、
DaaSに至っては「Desktop as a Service」と「Data as a Service」でどっち?ってなる始末。
そんな中今回取り上げるのは「IaC (Infrastructure as Code)」です。
訳:コードとしてのインフラストラクチャ
IaCとは
Infrastructure as Code (IaC) とは、手動のプロセスや設定の代わりに、
Red Hat
コードを使用してインフラストラクチャの管理とプロビジョニングを行うことを言います。
IaCを利用すると次のようなメリットがあります。
一貫性と再現性:繰り返し同じ環境を構築できる
スピードと効率:自動的にインフラストラクチャをデプロイできる
バージョン管理:プログラムソースコードのようにバージョン管理できる
デバッグとテスト:容易に複製できるので、環境を再現しデバッグやテストができる
IaCツール
主なIaCを実現するための構成管理ツールは以下です。
Terraform
- 複数のクラウドサービスプロバイダをサポート
- HCLという独自の言語を使用
- シンプルで学習コストが低い
AWS CloudFormation
- AWSのインフラ環境構築に特化しているので、AWSのリソースのみ
- JSONまたはYAML形式のテンプレートを使用
Ansible
- Pythonで実装されたオープンソースの構成管理ツール
- Ansible社を買収したRedHat社が開発・提供
- SSHを使用して管理対象サーバにアクセスするため、エージェントのインストールが不要
Chef
- Rubyで実装されたオープンソースソフトウェア
- RubyのDSLという言語で各設定内容を記述
- Rubyの知識が必要だが複雑なインフラストラクチャの構成管理や大規模なデプロイメント環境に対応可能
Puppet
- Rubyで実装されたオープンソースソフトウェア
- OS、ディストリビューション、パッケージシステム等の違いを吸収してくれるレイヤー(抽象化レイヤー)がある
IaCと生成AI
コードでインフラ環境が構築できるなら、
自然言語のプロンプトや構成図からAIにコードを生成させればよくね?
って真っ先に思いますよね。私は短絡的な脳みそなのでそう思いました(^q^)
先ほど挙げなかったですが「Pulumi」というツールでは、
「Pulumi AI」というサービスがあります。※日本語非対応
Pulumiは既存のプログラミング言語(TypeScript、JavaScript、Pythonなど)
が使えるのが特徴です。
ただデメリットもある……
便利そうですぐ飛びついてしまいそうですが、
調べているとやっぱり問題点もいくつかありますね(*_*)
- 学習コストがかかる
- コードの管理やメンテナンスが必要
- かえって時間がかかる場合もある
- コマンド一行で済む軽微な修正でも、ソースを書き直し実行する必要がある
まとめ
IaCで検索すると「疲れた」がサジェストされるので(笑)、
コード化するのはそれはそれで面倒なところもあるのだろうなという感じです。
開発部門がある会社はコードで管理するとシームレスに作業が行えるし、
コード管理にも慣れているので導入しやすいかもですが、
インフラ専門の会社はそういったところでハードルが高そうですね~(;´∀`)
構築・運用・保守を全て一人で担当するならなんとかなりそうですかね?……属人化ェ……苦笑
それでは~(^_^)/~