本文へ移動
Unlogical Systems

Ctrl / ⌘ + K でも開けます

    Unlogical Systems

    Terraform を採用する理由

    Terraformは、クラウドのサーバーやネットワーク構成をコードとして記述し、自動で構築・変更するためのツールです。弊社がAWSなどのインフラ構成の管理にTerraformを採用する理由と、運用の注意点を解説します。

    Terraformとは

    Terraformは、クラウド上のサーバー、ネットワーク、データベース、権限といったインフラの構成を、設定ファイルとして記述し、その内容どおりに自動で構築・変更するためのツールです。この手法は「インフラのコード化(IaC)」と呼ばれます。管理画面から手作業で設定する方法と比べ、構成が文書として残る、同じ構成を何度でも正確に再現できる、変更前に何が変わるかを確認できる、という利点があります。AWSをはじめ複数のクラウドや外部サービスに対応しており、異なるサービスをまたぐ構成を一つの仕組みで管理できます。

    弊社が採用する理由

    弊社では、AWSを中心としたクラウドのインフラ構成をTerraformでコードとして管理しています。採用の最大の理由は、構成が設定ファイルとして残るため、ステージング環境と本番環境を同じ形で構築でき、誰がいつ何を変えたかが履歴として追えることです。手作業で構築した環境は、時間が経つと構成の全体像を把握できる人がいなくなりがちですが、コードで管理していれば引き継ぎの際にファイルを読めば構成がわかります。変更を適用する前に差分を確認できるため、意図しない変更による障害を防げます。AWS以外のサービス、たとえばDNSや監視の設定も同じ仕組みで管理できるため、複数のサービスにまたがる構成を一貫して扱えます。TypeScriptで記述したい案件ではAWS CDKを使うこともあり、チームの慣れと構成の性質に応じて使い分けています。

    向いている案件

    • AWSなどのクラウド上に業務システムの本番環境を構築する案件
    • ステージングと本番など複数の環境を同じ構成で揃えたい場合
    • クラウドとDNS、監視など複数のサービスをまたいで構成を管理したい場合
    • 構成の変更履歴を残し、引き継ぎに備えたいシステム

    保守・移行の観点

    Terraformは、実際のクラウドの状態を記録した「状態ファイル」を基準に動作するため、このファイルの保管場所と同時編集の防止が運用の要です。管理画面から手作業で変更を加えると、コードと実際の状態がずれるため、変更は必ずコードを通して行う運用を徹底します。Terraform本体と各サービス向けの接続部品の更新では記述方法が変わることがあり、更新後は差分の確認で意図しない変更が出ないことを検証します。定期的に差分確認を実行し、ずれがないことを確かめる運用をおすすめしています。

    組み合わせて使う技術

    よくあるご質問

    手作業で構築した既存のAWS環境をTerraformで管理できますか?

    可能です。既存の構成を読み込んでコードに取り込む作業を段階的に行います。まず現状の構成を調査し、影響の少ない部分から管理下に移す進め方をご提案します。

    TerraformとAWS CDKはどちらを使いますか?

    どちらもインフラをコードで管理する仕組みです。複数のサービスをまたぐ構成や、汎用性を重視する場合はTerraform、アプリケーションと同じTypeScriptで書きたい場合はAWS CDKを選ぶことが多いです。

    関連するサービス

    関連する開発ガイド

    関連用語: ステージング環境保守運用

    監修: Unlogical Systems合同会社杉並区・西荻窪)公開

    まずは現場のエンジニアにご相談ください

    営業担当ではなく、実際に設計・開発を行うエンジニアが直接お答えします。ご相談・お見積りは無料、1営業日以内にご回答いたします。

    無料でご相談・お見積り

    資料の添付は、送信後に届く受付メールへの返信でお送りいただけます。

    相談・見積りは無料
    1営業日以内にご回答します

    無料で相談する