メニューを閉じる

テクノデジタルグループ

メニューを開く

2024.04.18

インフラ

IaCのいいところ・つらいところ勉強会

はじめに

こんにちは。テクノデジタルでインフラを担当しています、Mです。

自分の所属している部署では今年から毎月の定例会で技術的な情報共有を目的にしたゆる勉強会を実施しています。本記事では前回取り扱われた、IaC(インフラストラクチャ アズ コード)についての発表の様子を紹介します。

忙しい人のためのざっくりIaCまとめです。

つらみ

  • デプロイに時間がかかりすぎて、試行錯誤がつらい。
  • 新機能の追従学習コストがつらい。
  • 差分管理エラーで詰まるのがつらいらしい。
  • まだまだ発展途上の分野なので、DB権限の設定など細かいところに手間がかかる。
  • 長大なYamlやJsonを読むのはつらい。

うれしみ

  • システムの構成が読めばわかる。
  • 差分管理がしやすい。

むずかしみ

  • 構成管理を再利用する仕組み・ルールの設計がむずくね問題。
  • そもそもインフラ(ネットワークやサーバ)って一回作ったらいじったりしなくね問題。

というわけで

とりあえずAnsibleでサーバ構成のテンプレート化から経験を積んでいこうぜ(;´∀`)

本題

勉強会の進行ルールはこんな感じ

  • 発表資料は必要なし!
    •     ただし、用意するかは発表者の自由。
  • メイン質問者が事前に提示した質問三つに必ず回答する。
    •     発表者は最低限質問に答えられるようにテーマについて調べてくること!
  • 発表の途中での質問は自由。
    •     こちらの回答は憶測でも可!
    •     参加者からの補足回答も可!

それでは改めてIaCについて

インフラ業界で流行りかけた気がする「Inflastracter as Code」が改めてどうなんだ?ということで勉強会のテーマに取り上げられました。(ちなみに毎回のテーマは主催である私、Mが独断と偏見で決定しています。)

IaCプラットフォーム(ツール+インフラを管理するシステム)として最も有名なのはTeraformでしょう。マルチプラットフォームに対応しているので、これ一つ覚えるだけでAWS、GCP、AzureをはじめとしてCloudFrareやIBMCloudなど、さまざまクラウドプラットフォームの構築をコードで管理できるようになります。ちなみに近年、Teraformのライセンスの変更によって発生したフォークであるOpenTofuというLinuxFoundationが管理するOSSプロジェクトが正式リリースされていたりします。

他にもAWSにはCloudFormation、GCPにはCloud Deployment Manager、そしてAzureにはAzure Resource ManagerというネイティブサポートのIaCプラットフォームが用意されています。(ちなみに私も直近でCloudFormationを使用してスマートフォンアプリ用APIクラスタのインフラ構築を担当したりしていましたが、Yamlで構成を記述する関係で、例えばホストするVMの初期設定でちょっとしたシェルを実行したい場合など、構文エラーに悩まされることが多い印象でした。JSONで書く場合ではキーも値もすべて明確に文字列として記述しなければいけないので、こういうことは少ないかもしれません。読みやすいのはYamlの方なんですがね)

と、まあ、こんな感じで「そもそもIaCとは何ぞや?」という紹介から勉強会は始まりました。

先人たちはどう思っているの?

次に、発表者が参考にしたブログなどを見ながら、現在までのIaC使用感から「我々がどういう使い方をしていけばいいのか」という議論に発展しました。

Teraformなどを業務で使用したことのあるメンバーにも意見を聞きつつ、自分たちの部署、また全社的にIaCの導入推進を行っていくにはどいうメリット、デメリットがあるかを話し合う感じです。

メンバーの感想には賛否両論ありましたが、最終的な結論は以下のようになりました。

  • クラウドをターゲットにしたIaCテンプレートを作成しても、プロジェクトごとの応用が利かないから使いどころが難しい。
  • 実プロジェクトでの運用経験がないため、その経験蓄積コストを考えると、二の足を踏んでしまう。
  • そんなわけで、とりあえずサーバ単位の構成管理ツールであるAnsibleで経験を積むことにしよう。

あとがき

この勉強会の主目的は、知識のアップデートですが、今思うと「Ansible」と「Teraformなど」ではターゲットのスケールが全く異なるのに、同じステージ感で議論することになってしまったのはちょっと残念だと思っています。

クラウドネイティブのシステム開発を行うときは、インフラエンジニアが従来のモノシリックな構成で意識していた耐久性や安定性主体の視点から、一気にサービスレベルまで拡張されないとシステム設計が立ち行かないと思っているので、次回の勉強会からはそういった視点での議論もできるようになっていきたいですね。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事