データインフラを自動化する5つの理由

<font color="Grey">*[5 reasons to automate your data infrastructure ](https://aiven.io/blog/5-reasons-to-automate-your-data-infrastructure)の翻訳です。*</font>

2022年11月3日

# データインフラを自動化する5つの理由

アプリケーション・インフラだけに集中していませんか？データ・インフラストラクチャの自動化が重要な5つの理由と、その正しい実行方法をご紹介します。

ソフトウェアはあらゆるビジネスの中核であり、信頼性の高いソフトウェアには堅牢なインフラが必要です。しかし、**インフラ**と聞いて何を思い浮かべますか？仮想マシン、ロードバランサー、ネットワークスイッチだとしたら、パズルの重要なピースである**データ・インフラ**を忘れていることになる。これには、データベース、ストリーミング・サービス、データの保存と移動を支援するその他のサービスが含まれます。


この記事では、データ・インフラストラクチャを自動化することの利点を強調し、自動化の負担について警告し、データ・インフラストラクチャを自動化する「方法」について説明する。


何を取り上げるか


* [データインフラの断片](#pieces-of-data-infrastructure)
* [自動化の負担（間違った方法）](#the-burden-of-automation-done-wrong)
* [自動化する5つの理由](#the-5-benefits-of-infrastructure-as-code-iac-approach)
* [データインフラ自動化のためのツール](#tools-for-your-data-infrastructure-automation)


## データインフラの断片


クラウド時代以前、企業はベアメタルサーバーや仮想マシン上でモノリシックなリレーショナルデータベースを稼働させていた。データベース・サーバーとそれがホストされているマシンには名前（ペット扱い）があり、これらが企業全体のデータ・インフラを形成していた。クラウド時代には、マルチクラウドがチャンスとなる。現在の真実のバージョンは、Amazon Web Service（AWS）上で稼働するリレーショナル・データベースに保存され、すべての変更の履歴はGoogle Cloud Platform（GCP）上の長期記憶オブジェクト・ストレージに保存されるかもしれない。


技術間のデータギャップを埋めるために、[Aiven for Apache Kafka®](https://aiven.io/kafka)を使用することができます。クラウド間でストリーミングモードでデータを同期することができ、データアクセス、観測可能性、およびガバナンスを管理するための他の複数のサービスも利用できます。これらすべてが組み合わさって、貴重なデータ・インフラが形成される。


さらに、データ・インフラ内に設定した仮想プライベート・クラウド（VPC）、サブネット、ネットワーク・ゲートウェイも忘れてはならない！


## 自動化の負担（間違ったやり方）


あなたは概念実証としていくつかのサービスから始め、社内のシェルスクリプトがその仕事に最適なツールに思えたかもしれません。時間が経つにつれて、あなたはより多くのサービスを必要とし、これらのシェルスクリプトはより複雑になっていきました。ある時点で、ファイアウォールの内側にあるサービスをデプロイするための手動プロセスを追加したかもしれない。このファイアウォールの背後にあるデータベースは、ホスト名を受け付けないため、静的IPアドレスを作成・管理させる。


そしてこの時点で、あなたは自動化地獄に陥っており、これらの恵まれたシェルスクリプトは、壊れた半自動化プロセスの断片にすぎない。


しかし希望はある！その希望とは、Infrastructure as Code（IaC）アプローチだ。


## コードとしてのインフラ（IaC）アプローチの5つの利点


社内シェルスクリプトの採用は、かつては自動化のように思われた。しかし、この種の自動化は予測不可能である。また、誰が最近の変更を行ったのかが分からないため、説明責任に欠けることもある。


IaCの目標は、ソフトウェア開発のプラクティスに基づいた方法でインフラを管理することだ。これには、バージョン管理、テスト、継続的インテグレーション、継続的デプロイなどが含まれる。IaCアプローチを使ってデータ・インフラを管理し、自動化するメリットをいくつか見てみよう。


### 1:データインフラの信頼性


クラウド時代において、基盤となるハードウェアの障害は**if**ではなく**when**の問題です。ハードウェアが故障している間、稼働しているデータベース・サービスの信頼性をどのように確保できるでしょうか？


これが、基盤となるハードウェアをソフトウェア・リソースとして抽象化する理由です。自動化ツールは、期待される状態から逸脱したリソースを作成、変更、破棄します。ハードウェアとソフトウェアの緩やかな結合により、システムを動的かつ確実に構築・再構築することができます。


### 2: 予測可能な自動化ツール


データベースサービスをデプロイするスクリプトがあるとします。そのスクリプトを10回実行したらどうなるでしょうか？10個のサービスが作成されるでしょうか？これを避けるには、サービスを作成する前に、サービスがすでに存在するかどうかをチェックするロジックを追加する必要がある。IaCアプローチでは、このロジックはすでに使用しているツールに組み込まれており、**実際の**システムが、コードで定義された**期待される**状態に従うことを保証します。


### 3: 環境間の一貫性


ステージング環境と本番環境が、コンピューティング、ネットワーク、ストレージの容量において同一であることをどのように保証していますか？分散運用チームは、開発者のために同一の内部開発者プラットフォームを構成していることをどのように確認していますか？自動化ツールは、バージョン管理されたソフトウェア設計図から、再現可能で一貫性のあるソフトウェア環境を作成することができます。これは、アプリケーションとデータ・インフラストラクチャの両方に当てはまります。


### 自動化によるセキュリティ


一貫性のなさは設定の誤りにつながり、設定の誤りはセキュリティの問題につながる。長期間のデータベース管理者認証情報をスプレッドシートに保存し、同僚と共有している場合、セキュリティ攻撃やシステム侵害の可能性が大きくなります。


自動化ツールのコマンドを呼び出すにせよ、継続的インテグレーション（CI）プロセスでツールを実行するにせよ、サーバーを構築・設定するためのアクセスは動的かつ短期間であるべきだ。自動化ツールは、アクセスを制御し、監査し、侵害が発生した場合に特定のアクセスを取り消すことができる。


### 5：コストと俊敏性


エンジニアリング・チームの時間は有限であり、貴重です。システムを構築したり設定したりするよりも、アプリケーションを構築したり修正したりすることで、ビジネスに付加価値を与えることを望んでいるのではないでしょうか。どのような自動化ツールも、導入当初は高価に思えるかもしれませんが、ITインフラストラクチャの構築と管理の作業を自動化することで、エンジニアリングチームの時間を無数に節約できます。


データ・インフラストラクチャの一部として何十ものクラウド・リソースをデプロイする場合、依存関係の問題を処理するために、それらが指定された順序で作成されるようにする必要があります。[Apache Kafka® MirrorMaker 2](https://aiven.io/blog/5-reasons-why-you-should-be-using-mirrormaker-2)のレプリケーションフローを設定する前に、ソースとターゲットのApache Kafka®クラスターを立ち上げる必要があるかもしれません。リソースの削除も同様です。


自動化とIaCのアプローチは、バックグラウンドで依存関係のチェックという重労働をこなし、クラウドやリージョンをまたいで複数のサービスを迅速にデプロイすることを可能にし、組織の時間とコストの両方を節約します。


#### 変革の到来

さまざまな業界で成功を収めている企業は、変革戦略の一環としてマネージド・データ・プラットフォームをどのように活用しているのだろうか。彼らがどのようにビジネスや技術的な課題を解決したのか、電子書籍でご覧ください。

[こちらから](https://aiven.io/ebook/how-a-cloud-data-platform-can-drive-transformation-in-your-business?utm_source=ebook&utm_medium=internal&utm_campaign=transformation_ebook&utm_content=5-reasons-to-automate-your-data-infrastructure)
## データインフラ自動化のためのツール


[Terraform](https://terraform.io/)はオープンソースのIaCツールで、マルチクラウドのデプロイモデルにおけるアプリケーションとデータインフラのプロビジョニングを自動化するのに役立つ。自動化ツールに関しては多くの選択肢があるが、Terraformは多くの顧客によって実運用でテストされている。Terraformは[provider](https://www.terraform.io/language/providers)を使い、アクセス可能なAPIを持つ事実上あらゆるプラットフォームやサービスと連携する。


[Aiven Provider for Terraform](https://registry.terraform.io/providers/aiven/aiven/latest/docs)を使ったデータインフラの自動化については、以下の**レシピ**をご覧ください：


* [PostgreSQL® サービスを複数のクラウドやリージョンにデプロイする](https://docs.aiven.io/docs/tools/terraform/reference/cookbook/multicloud-postgresql-recipe.html)
* [Apache Kafka® MirrorMaker 2によるクラスタ横断レプリケーション](https://docs.aiven.io/docs/tools/terraform/reference/cookbook/kafka-mirrormaker-recipe.html)
* [Apache Flink® ジョブのソースおよびシンクとしての Apache Kafka®](https://docs.aiven.io/docs/tools/terraform/reference/cookbook/kafka-flink-integration-recipe.html)


#### Aiven Terraform クックブック

各「レシピ」には、アーキテクチャ図と、セットアップを自分で構築するために必要なTerraformサンプルコードが含まれています。

[もっとレシピを見る](https://docs.aiven.io/docs/tools/terraform/reference/cookbook.html)
## まとめ


さて、自動化のメリットを理解し、データ・インフラストラクチャを自動化するIaCアプローチを紹介したが、次のステップは何だろうか？まずは小さく始めて、あなたの組織で概念実証を行ってみよう。オープンソースの技術に基づいてデータインフラを管理するテスト環境が必要であれば、[Aivenを試してみてください](https://aiven.io/how-to-get-started-with-aiven)。



Aivenと私たちのサービスに関する最新ニュースや、オープンソースに関するちょっとした情報を入手するには、[月刊ニュースレターを購読](https://aiven.io/newsletter)してください！Aivenに関する日々のニュースは、[LinkedIn](https://www.linkedin.com/company/aiven/)と[Twitter](https://twitter.com/aiven_io)のフィードでご覧いただけます。


サービスのアップデート情報を知りたい方は、[変更履歴](https://aiven.io/changelog)をご覧ください。