こんにちは。ITサービス&エンジニアリング事業本部(以下、ITS&E)ITソーシング事業部の眞有 和輝です。私は現在、お客様のAmazon Web Services(以下、AWS)環境の運用・保守業務を担当しています。前回の記事では、Infrastructure as Code(IaC)とは何か、そしてIaCを導入することで得られるメリットや代表的なツールについて紹介しました。IaCを使うと、インフラ構築の手順をコード化でき、再現性の高い環境構築や作業効率の向上、ヒューマンエラーの削減が可能になります。
しかし、メリットやツールの種類を知っても、初心者の方々にとっては、
という疑問が次に生まれると思います。
そこで本記事では、初心者の方がゼロからIaCを導入し、段階的にスキルを磨いていけるような学習プロセスをご紹介します。みなさん一人ひとりの状況に合った学び方を考えるうえでの参考になれば幸いです。
IaCを導入する際に最初に考えることは、まずどのツールを使うかです。なぜなら、選ぶツールによって得意分野、対応できるクラウド環境、コミュニティの情報量が大きく異なるからです。前回の記事でも触れたように、IaCにはさまざまなツールがあります。例として挙げると以下のようなツールがあり、いずれも無償で利用できます。Terraform CloudやRed Hat Ansible Automation Platformなど、機能追加がある有償版を提供しているツールもありますが、まずは無償版で使いやすさなどを確認してみるといいでしょう。各ツールの比較は、下表を合わせてご覧ください。
横にスクロールできます
次にこうした様々なツールの中から自身にあったものを選ぶ際の代表的なポイントをいくつかご紹介します。今回のブログでは、今後業務にIaCを導入したいという方を想定して、ポイントをご紹介します。
用途がインフラ構築の自動化、もしくはサーバの設定自動化かどうかで適したツールが異なります。インフラ構築の場合はTerraformなど、サーバの設定変更を自動化するならAnsibleやChefなどが適しています。
既に使っているクラウドや、これから使いたいクラウドに対応しているかどうかも重要です。もし特定のクラウドのみを利用するのであれば、そのクラウド専用のIaCツールを利用するのも良い選択です。AWSならCloudFormationやCDK、AzureならBicepなどが挙げられます。一方で、複数のクラウドを利用するのであれば、TerraformやPulumiのようなマルチクラウド対応ツールを最初から選ぶのも良いと思います。
用途や対応クラウドが適しているツールが複数あれば、学習のしやすさで選ぶことも重要です。
例えばツールが使用するプログラミング言語について、自分が既に知っている言語や書き方に近いものを選べば、学習コストを大幅に下げられます。また、公式ドキュメントやチュートリアルの充実度、利用者数の多さ、日本語の記事の多さも重要な判断基準になります。エラーや疑問に直面した際に、簡単に解決できるかどうかは学習の続けやすさを左右します。
ツールを選んだら、IaCを利用する環境の準備をしましょう。手順には大きく分けて以下の4ステップがあります。
利用予定のクラウドサービス(AWS、Azure、Google Cloudなど)のアカウントを作成します。アカウント登録後は、管理コンソールにログインできるか確認しておきましょう。画像はAWSのマネジメントコンソール画面です。
IaCツールがクラウドと通信するためには、クラウドの公式CLIツールが必要です。CLIとは「コマンドラインインターフェース(Command Line Interface)」の略称で、キーボードでコマンドを入力してコンピュータを操作するツールのことを指します。AWSなら「AWS CLI」、Azureなら「Azure CLI」、Google Cloudなら「gcloud CLI」などがあります。インストール後はバージョン確認コマンドで正常にインストールできているかチェックしましょう。画像はAWS CLIでの入力例です。
CLIツールのインストールが終わったら、認証情報も忘れずに設定しましょう。この認証情報は、IaCツールが自分のクラウド環境に安全かつ正しくアクセスするための身分証明になります。画像はAWS CLIでの認証情報設定の例です。
選んだIaCツールをインストールしましょう。公式サイトに従い、パッケージマネージャーやご自身の環境に合ったバイナリファイルからインストールすることが多いです。インストール後は、「terraform -v」や「cdk --version」などIaCのバージョン確認コマンドで正常にインストールできているかチェックしましょう。画像はインストール可否の例です。
コードを書くためのIDEやテキストエディタを用意します。特にこだわりがなければ、私も愛用しているVisual Studio Code(VS Code)がおすすめです。VS CodeはMicrosoftが開発した無料のコードエディターで、軽量で高速、多機能、クロスプラットフォーム対応で、多くのプログラミング言語をサポートしています。IaCツール用の拡張機能を追加することで、構文チェックや補完が利用でき、とても効率的に作業ができます。
環境の準備が整ったら、実際に手を動かして操作に慣れていきましょう。学習を挫折せずに続ける最大のコツは小さな成功体験を早めに作ることです。いきなり業務で扱うような複雑な構成に挑戦するのではなく、ほんの数行のコードで作れる最小限のリソースから始めるのがおすすめです。ここでは例として、Terraformを利用する場合を想定し、順に説明していきます。
まずは以下のような、単体で完結するリソースを作ってみましょう。
例えばAWSのS3バケットを1つ作る場合、以下のようなコードを書きます。
provider "aws" { region = "ap-northeast-1" } resource "aws_s3_bucket" "example" { bucket = "nssol-terraform-bucket-20250824" }
この数行だけでS3バケットを構築できます。実際に動かす手順は次の通りです。
terraform init
terraform plan
terraform apply
yesと入力するとバケットが作成されます。
IaCのコマンドでリソースのデプロイに成功したら、クラウドのコンソールで作成されたリソースを確認してみましょう。自分が書いたコードとクラウド上の設定を対比することで理解がさらに深まります。
IaCの魅力はリソースの削除もコマンドで簡単にできることです。
terraform destroy
と実行してyesを入力すると、先ほど作成したS3バケットが削除されます。クラウドのリソースは使い続けると料金が発生します。気づかないうちに費用が積み上がっていた、ということを防ぐためにも使い終わったら必ず削除してクリーンな状態に戻しましょう。
IaCを利用したリソース構築に慣れてきたら、次は少しずつ応用範囲を広げてみましょう。今後のためのステップとして、例をいくつか挙げます。
単体のリソースを作れるようになったら、次は複数のリソースを組み合わせて小さなシステムを作ってみましょう。自分で何か動くものが作成できるとモチベーションにつながると思います。おすすめは以下のようなシンプルな構成です。
IaCはGitなどのバージョン管理システムと相性が抜群です。作成したコードをGitで管理してみましょう。バージョン管理をすることで、以下のようなメリットが得られます。
将来的にチームでIaCを活用する際にも、この経験は非常に役立つはずです。
慣れてきたら、IaCをCI/CDパイプラインに組み込み、自動で環境を構築・変更できる仕組みを作ってみましょう。これにより、手作業をなくして「コードを書いたら環境が整う」という本来のIaCのメリットを実感できるはずです。
今回のブログでは、初心者の方々がIaCを導入し、学習を進めていくための具体的なステップとポイントを解説しました。IaC学習をこれから始める方や、導入を検討している皆さんの参考になれば幸いです。
ちなみにNSSOLではAWS包括的技術支援サービスを提供しています。AWSへの移行でお悩み等ございましたら、ぜひ本サービスもご活用ください。その他、AWSをはじめマルチクラウド化に関するご相談全般はこちらからお気軽にお声がけください。また、お客様の更なるAWS利活用をご支援するべく、コスト最適化とIT統制に関するアドバイスをまとめたダウンロード資料を公開中です。ご興味ある方はぜひこちらの「AWSのガバナンス強化と、コスト最適化のポイント」もご確認ください!
最後に、クラウドリフトの先、クラウドシフトについてご検討中のお客様へは、クラウドネイティブ化を包括的に支援する新サービス「CloudHarbor(クラウド・ハーバー)」も提供しております。クラウド移行に留まらず、クラウドネイティブ化にもご興味ある方はぜひCloudHarborカタログも併せてご覧ください。それでは、また次回もお楽しみに!