Databricks Terraform Provider Is Now Generally Available - The Databricks Blogの翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
本日、Databricks Terraformプロバイダーが正式提供(GA)となったことを発表できて嬉しく思っています!HashiCorp Terraformは、安全かつ再現可能なクラウドプロバイダーにまたがるクラウドインフラストラクチャを作成するための人気のあるオープンソースインフラストラクチャアズコード(IaC)ツールです。
最初のDatabricks Terraformプロバイダーは2年以上前にリリースされ、エンジニアはDatabricksレイクハウスプラットフォームの全ての管理の側面を自動化できるようになりました。それ以来、導入数が10倍以上に成長しました。
2021年5月から2022年5月の間にDatabricks Terraformプロバイダーの月間ダウンロード数は10倍に成長しました
さらに重要なこととして、我々のお客様が自身のプロダクション、開発環境を管理するために、Databricks Terraformプロバイダーを活用するケースが急激に成長していることに気づきました。
Databricks Terraformプロバイダーを導入するお客様のトレンド
コードとしてのレイクハウスによるお客様のウィン
Databricksのお客様がDatabricksプロバイダーをうまく活用している領域が複数あります。
レイクハウスコンポーネントの配備、DataOps/DevOps/MLOpsの実装の全てを自動化
これは複数のユースケースをカバーしており、dev/staging/prod環境間でのジョブのプロモーション、アップグレードが安全であることの保証、新たなプロジェクト/チーム向けに再現可能な環境の作成などが含まれています。
ジョイントのDAISセッションでは、Scribdが自身のデータプラットフォームが、開発者やデータサイエンティストが「自身の探険を選択」できるように自身のツールを活用できるようにするために、どのようにプラットフォームエンジニアリングに依存しているのかを話しました。Databricks Terraformプロバイダーを用いることで、社内の利用者に対して門番として振る舞うのではなく、彼らに柔軟性を提供することができます。彼らがDatabricksで必要とするものは何でもプルリクエストすることができます。
また、他のお客様ではDatabricks Terraformプロバイダーの利用を非常に称賛していました。「迅速な構成の複製」、「コンプライアンス標準の維持」、「何でも自動化できる」、「我々のSREチームのオペレーションの負荷を低減するために変更、民主化した」などです。
自動化されたディザスターリカバリー戦略の実装
ディザスターリカバリーは、データのアクセシビリティの重要性を理解する全ての企業や、規制がある業界では「持たなくてはならない」ものです。そして、Terraformはフェイルオーバープロセスが適切に自動化され、自動化プロセスが存在しない場合には一般的なエラーを引き起こすことなしに、予測可能な時間でフェイルオーバープロセスが実行されることを保証する非常に重要な役割を担います。
例えば、illimityのデータプラットフォームはAzure Databricksを中心としており、以前のブログ記事でこれらの機能が説明されています。illimityの規制組織、Banca d’Italia(イタリアの中央銀行)によって求められるRTOとRPOを保障するために、Databricks Terraformプロバイダーを用いたデータプラットフォームDRシナリオをデザインしました。我々のTerraformインテグレーションによるディザスターリカバリー準備に関する詳細なブログ記事を楽しみにしていてください!
セキュアなソリューションの実装
現代世界ではセキュリティは重要な要件となっています。しかし、お使いのデータがセキュアであることを保証することは、特に規制のある業界ではシンプルなタスクではありません。これらのソリューションに対しては、データ漏洩の防御、データへのユーザーアクセスのコントロールなど多くの要件が存在します。
例として、データ漏洩保護機能を持つAWS上のワークスペースのデプロイメントを考えてみましょう。通常、AWSのトランジットゲートウェイを用いたハブアンドスポークトポロジーのリファレンスアーキテクチャに沿って複数のDatabricksワークスペースをデプロイすることが推奨されます。以前の記事で示したように、セットアップはいくつかの手動のステップを含むAWS UIを通じて行なっています。Databricks Terraformプロバイダーを用いることで、これらは自動化され、詳細なガイドに従って、たった数ステップでデプロイすることができます。
Unity Catalogによるデータガバナンスの実現
DatabricksのUnity Catalogは、親しみやすくオープンなインタフェースを用いて、レイクハウスのデータに対してきめ細かいガバナンスとセキュリティを提供します。Databricks TerraformプロバイダーとUnity Catalogを組み合わせることで、お客さまは自動化を通じて簡単かつ大規模にレイクハウスに対して統制をかけることができます。そして、これは大企業にとっては非常に重要なこととなります。
プロバイダーの品質とサポート
今ではプロバイダーは正式にDatabricksによってサポートされており、Githubを通じたイシュートラッキングが確立されています。プルリクエストはいつでも歓迎です。コードはリリースごとに膨大なインテグレーションを通過しており、非常に広範なテストコードのカバレッジを持っています。
Terraformが全てのDatabricksのリソースと背後のクラウドインフラストラクチャの管理をサポートします
最も活用されているリソース
上述したユースケースは最も典型的なものであり、Databricks Terraformプロバイダーを用いた他のケースも数多く存在します。次の図ではTerraformを通じてよく管理されているリソースタイプがどれかに関する別のビューを提供しています。
Databricks Terraformプロバイダーにおける特定のリソース/データソースを利用しているお客様の割合
Databricks TerraformプロバイダーのGAバージョンに移行する
Databricks TerraformプロバイダーをGAにするために、https://github.com/databrickslabsからhttps://github.com/databricksに移動しました。スムーズな移行を確実にするために、HashicorpのTerraformレジストリチームと密に作業を行いました。既存のterraformデプロイメントは、皆様の方でアクションをする必要なしに、期待する通りに稼働し続けます。ソースコントロールにチェックインされるステートディレクトリには、.terraform.lock.hclファイルが存在する必要があります。terraform init
を実行することで以下の警告が出ます。
Warning: Additional provider information from registry
The remote registry returned warnings for registry.terraform.io/databrickslabs/databricks:
Terraform 0.13以降を使用している場合には、
this provider has moved to databricks/databricks. Please update your source in required_providers.
required_providers
ブロックでdatabrickslabs/databricks
をdatabricks/databricks
に置き換えると警告は出なくなります。*.tf
ファイルに対してグローバルの「検索・置換」を行なってください。あるいは、同じことを行うために、コマンドラインからpython3 -c "$(curl -Ls https://dbricks.co/updtfns)"
を実行することもできます。
しかし、terraform init
コマンドを実行した際に「Failed to install provider」や「Failed to query available provider packages」といった問題に遭遇するかもしれません。これはソースコードのバージョンコントロールに.terraform.lock.hcl
をチェックインしていないためです。
Error: Failed to install provider
Error while installing databrickslabs/databricks: v1.0.0: checksum list has no SHA-256 hash for "https://github.com/databricks/terraform-provider-databricks/releases/download/v1.0.0/terraform-provider-databricks_1.0.0_darwin_amd64.zip"
以下の3ステップで修正することができます。
-
python3 -c "$(curl -Ls https://dbricks.co/updtfns)"
コマンドで、全ての.tf
ファイルのdatabrickslabs/databricks
をdatabricks/databricks
に置き換えます。 -
terraform state replace-provider databrickslabs/databricks databricks/databricks
コマンドを実行し、変更を承認します。詳細はTerraform CLIをご覧ください。 - 全てが適切に動作していることを確認するために
terraform init
を実行します。
これで全てです。これでterraform apply
も期待通りに動作するはずです。
Databricks Terraformプロバイダーのドキュメントをチェックし、このガイドやサンプルリポジトリを用いてTerraformによるDatabricksレイクハウスの管理の自動化をスタートすることができます。既存のDatabricks環境があるが、まだTerraformで管理していない場合には、スタート地点として実験段階のエクスポーター機能を使用することができます。
さらに、我々のエンジニアはTerraformプロバイダーサポートに、新たなDatabricksの機能、新規モジュール、テンプレート、ウォークスルーを追加し続けています。