[Osaka/Yokohama] Looking for infrastructure/server side engineers!

[Osaka/Yokohama] Looking for infrastructure/server side engineers!

[Deployed by over 500 companies] AWS construction, operation, maintenance, and monitoring services

[Deployed by over 500 companies] AWS construction, operation, maintenance, and monitoring services

[Successor to CentOS] AlmaLinux OS server construction/migration service

[Successor to CentOS] AlmaLinux OS server construction/migration service

[For WordPress only] Cloud server “Web Speed”

[For WordPress only] Cloud server “Web Speed”

[Cheap] Website security automatic diagnosis “Quick Scanner”

[Cheap] Website security automatic diagnosis “Quick Scanner”

[Low cost] Wasabi object storage construction and operation service

[Low cost] Wasabi object storage construction and operation service

[Reservation system development] EDISONE customization development service

[Reservation system development] EDISONE customization development service

[Registration of 100 URLs is 0 yen] Website monitoring service “Appmill”

[Registration of 100 URLs is 0 yen] Website monitoring service “Appmill”

[Compatible with over 200 countries] Global eSIM “beSIM”

[Compatible with over 200 countries] Global eSIM “beSIM”

[Compatible with Chinese corporations] Chinese cloud / server construction, operation and maintenance

[Compatible with Chinese corporations] Chinese cloud / server construction, operation and maintenance

[YouTube] Beyond official channel “Biyomaru Channel”

[YouTube] Beyond official channel “Biyomaru Channel”

【知識編】インフラ構成のコード化。構成管理をスマートにするための「infrastructure as code」という考え方を学ぼう。

インフラエンジニアの寺岡です。
今回のブログのテーマはこちら ⇒ infrastructure as code
書く内容を考えていると思いのほか長くなってしまったので、知識編と技術編で分けることにしました。
まずは知識編。infrastructure as codeってなんだろう?からまとめていきます。

■「infrastructure as code」ってなんだろう?

一言で言うとインフラ構成をコード化することです。(そのままですね、Google翻訳もびっくりです。)
最近はAWSなどのクラウドサービスが主流なので
インフラの新規構築・変更などはGUI画面からボタンをポチっとなで終わりますが
infrastructure as codeではそんなことはしません。
プログラムのように全てコードとして記述して
それを専用のツールを使ってデプロイすることでインフラを構築します。
専用のツールに「terraform」というものがあるので
それを技術編でご紹介しますね!(後日ブログで書きます)

■そもそも何故「コード化」するのか?

メリットがないのにわざわざこんなことしないですよね。(ちゃんとメリットがあります)
まとめると以下のようになります↓

インフラ構築の自動化

これが一番大きなメリットではないでしょうか。
同じ構成のサーバを複数台構築する必要がある場合など
手作業でやっていると二度手間なことが数多くあります。
全く同じ作業をサーバの台数だけ繰り返さないといけないのか。できればやりたくないですよね。

前の項目で以下のように書きました。

プログラムのように全て「コード」として記述して
それを専用のツールを使ってデプロイすることでインフラを構築します。

「こんなインフラ構成を作りますよ」という構成はすでに予めコードとして記述しているので
専用のツールに「こんな感じで作ってね」とお願いするだけです。後は自動で全てやってくれます。
また、コードを実行するだけなので誰が作業をしても必ず同じ結果を得ることができます。
これによってヒューマンエラーも防ぐことが可能です。

インフラ構成の一元管理

インフラを新規構築もしくは変更を行う場合は必ず
「どういう構成になっているのか」や「いつどの部分を変更したのか」を形として残す必要があります。
(設計書とか手順書って言われているものですね)
残しておかないと、「今どのような構成になっているのか」がわからなくなってくるからです。
(これがわからなくなってくると当然オペミスが発生します)

また、設計書や手順書を残す場合
何か作業を行ったときはドキュメントを最新の情報に更新しておく必要があります。
次に同じ作業を行うときはそのドキュメントを参照することになるからです。
しかし人間が手作業で行うから間違いは付き物。
ドキュメントの更新を忘れているなんてことは容易に考えられます。
そうなってくると、ドキュメントの内容と実際の構成が何故か違うというような状態に。
ドキュメントの最終更新者が前任者ですでに現場を離れている
なんてことになれば目も当てられません・・・

infrastructure as codeでは
予めコードという形で作成された手順書をもとにインフラを構築するという特性上
設定の変更を行う場合は必ずコードを編集する必要があるので、更新忘れは起こりません。
さらに、プログラムのソースと同じようにGitなどでバージョン管理を行うことも可能です。

■便利だけど懸念点も

学習コストが当然上がる

コードが書けないとそもそも構成を変更することもできません。
また、デプロイするためのツールの使い方も新しく覚える必要があります。
この点で少なからず学習コストが上がってしまうと思います。
インフラエンジニアもコードが書けないと仕事ができない時代になるのでしょうか・・・(

コードだから想定外のエラーが出る

コードの記述にミスがあるとエラーで停止します。(プログラム言語と同じですね)
ミスがある状態でデプロイをやってしまうと精神衛生上よくないので
Githubなどでコードを共有することでナレッジの属人化を防ぎ
常に第三者の目を通してミスに気付けるような運用フローが必要かと思います。

■まとめ

知識編は正直長い文章を読むだけですね(
きちっと仕組みを理解して運用できれば魅力的な考え方だと思います。
何よりinfrastructure as codeという響きがかっこいいです。
・・・・冗談はここまで、次回は技術編なので手を動かしましょう。お楽しみに!!

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
1
読み込み中...
1 票, 平均: 1.00 / 11
5,415
X facebook はてなブックマーク pocket
[2024.6.30 CentOS support ended] CentOS server migration solution

[2024.6.30 CentOS support ended] CentOS server migration solution

[2025.6.30 Amazon Linux 2 support ended] Amazon Linux server migration solution

[2025.6.30 Amazon Linux 2 support ended] Amazon Linux server migration solution

[Osaka/Yokohama] Actively recruiting infrastructure engineers and server side engineers!

[Osaka/Yokohama] Actively recruiting infrastructure engineers and server side engineers!

The person who wrote this article

About the author

Yuki Teraoka

Joined Beyond in 2016 and is currently in his 6th year as an Infrastructure Engineer
MSP, where he troubleshoots failures while
also designing and building infrastructure using public clouds such as AWS.
Recently, I
have been working with Hashicorp tools such as Terraform and Packer as part of building container infrastructure such as Docker and Kubernetes and automating operations, and I
also play the role of an evangelist who speaks at external study groups and seminars.

・GitHub
https://github.com/nezumisannn

・Presentation history
https://github.com/nezumisannn/my-profile

・Presentation materials (SpeakerDeck)
https://speakerdeck.com/nezumisannn

・Certification:
AWS Certified Solutions Architect - Associate
Google Cloud Professional Cloud Architect