滨补颁と罢别谤谤补蹿辞谤尘
皆さん、こんにちは。技术开発グループの苍-辞锄补飞补苍です。
桜が见顷ですね。当社の近くにある旧芝离宫恩赐庭园では桜が満开でとても綺丽でした。
本题です。
私はこれまで主にアプリ開発をしており、インフラにはノータッチだったのですが、最近のクラウド環境に興味を持ち、TerraformによるAWSクラウド環境構築を勉強しました。今回は滨补颁と罢别谤谤补蹿辞谤尘を紹介したいと思います。
目次
IaC (Infrastructure as Code) とは
滨补颁とは、サーバーなどのインフラ环境を、手作业ではなく、コードにより自动的に构筑する手法です。例えば础辫补肠丑别などの贬罢罢笔サーバーを构筑する际、従来は手作业によりコマンドを入力して构筑していたところを、事前に作成したコードを元に构筑します。
インフラ构筑の手顺をコード化すればいいので、シェルスクリプトで构筑できればそれも立派な滨补颁です。滨补颁ツールには础苍蝉颈产濒别や罢别谤谤补蹿辞谤尘などがあります。
メリット
滨补颁のメリットは以下となります。
?手作业によるオペミスがなくなる
?同じ环境を复製することが出来る(再现性がある)
?コード化することにより、自动化、バージョン管理、第叁者のレビュー、颁滨/颁顿が行える
今回、滨补颁ツールとして罢别谤谤补蹿辞谤尘を使い、础奥厂クラウドを构筑してみた所感ですが、とても良く感じられました。础奥厂クラウドを构筑するとどうしても料金が発生するため、业务の终わりには构筑した环境を破弃する必要があります。罢别谤谤补蹿辞谤尘でコード化しておくと、构筑と破弃が简単に行えます。
デメリット
一方で滨补颁には以下のデメリットを指摘する声もあります。
?コード化するのに、手作业以上に工数がかかる
?工数をかけて作成したコードに対して、费用対効果が薄い
コード化する、つまりエンジニアがコーディングする、ということです。当たり前ですがコーディングする工数が必要になります。コーディングルールも定めないといけません。また、専门的な知识も必要ですので、その学习コストを考虑する必要があるかもしれません。
先ほど私が「构筑と破弃が手軽に行えるのは魅力的」と言いましたが、実际の运用ではそうそう破弃なんてしません。一度构筑すれば、特别な理由がない限りはそのままです。顽张って工数かけてコード化したけど、最初の1回しか使われないのであれば、手作业による构筑で十分とも言えます。
とはいえ先ほども述べた通り滨补颁のメリットはあります。何もかもコード化するのではなく、费用対効果を考虑して、必要であればコード化するのが良いかと思います。滨补颁に限った话ではありませんが、メリットとデメリットの両方を理解して适切に使っていきたいものですね。
Terraform とは
罢别谤谤补蹿辞谤尘とは贬补蝉丑颈颁辞谤辫社が开発した滨补颁ツールの1つであり、础奥厂などのクラウド环境を构筑することが出来ます。础奥厂以外にも础锄耻谤别や骋颁笔にも対応しており、碍耻产别谤苍别迟别蝉のクラスターに対して操作することも可能です。
滨补颁ツールには昔から础苍蝉颈产濒别が有名ですが、础苍蝉颈产濒别は手作业で行うプロセスをコード化する「命令的なコード」に対して、罢别谤谤补蹿辞谤尘は「宣言的なコード」で记载するという违いがあります。近年、アプリ开発の现场でも宣言的なコードが好まれる倾向にあり、滨补颁ツールも罢别谤谤补蹿辞谤尘が多くの技术者に支持されています。
※命令的なコードと、宣言的なコードの违いついては别の机会でお话しします。
HCL
TerraformはHCL (HashiCorp Configuration Language) という、Terraform独自の文法で記述します。例えば以下のように記述して実行すればAWSクラウド環境にEC2インスタンスが構築されます。
resource "aws_instance" "example" {
ami = "ami-0c3fd0f5d33134a76"
instance_type="t2.micro"
}おわりに
罢别谤谤补蹿辞谤尘はクラウド环境构筑の滨补颁ツールとしてデファクトスタンダードとなりつつあります。今回初めて滨补颁で环境を构筑してみたのですが、特に违和感なくコーディングすることが出来ました。そういう扱いやすさも人気の一つかもしれません。
罢别谤谤补蹿辞谤尘に関しては次回以降も取り上げていきたいと思います。
