産業オートメーション環境における Infrastructure as Code
Software Defined Automation (SDA) は、Infrastructure as Code (IaC) を用いて SDA プラットフォームのリソースを定義、デプロイ、管理できる Terraform プロバイダーを提供開始します。本機能は現在プライベートプレビューとして提供されています。ご関心のある組織は SDA までお問い合わせください。
開発の背景
SDA で新しいテナントを作成する際、お客様は通常、プロジェクト、デバイス、ゲートウェイ、Vault、ドキュメント、リソースグループなど、幅広いリソースを構成する必要があります。現時点では、これを実現する方法は次の 2 つに限られています。
1. Web コンソールでの手動セットアップ
- 時間がかかり、作業が繰り返しになる
- 構成ミスが発生しやすい
- 再現性や監査性が確保しにくい
- バージョン管理や変更履歴がない
2. SDA API を用いたカスタム自動化
REST または GraphQL API の利用は手動構成よりもスケーラブルですが、次のような課題があります。
- 相当な開発工数と当社 API に関する習熟が必要
- スクリプトにボイラープレートコードが蓄積しやすい
- お客様側で冪等性、リトライ、部分的な失敗からの復旧を処理する必要がある
- 独自の状態管理が必要
- 拠点、チーム、ベンダー間での標準化が難しい
これらの課題が重なることで、新規拠点やテナントのオンボーディングが本来必要以上に遅くなり、不要な運用リスクが生じます。
現在開発しているもの
これらの課題を解決するため、SDA は HashiCorp の業界標準 IaC フレームワークを利用したファーストパーティの Terraform プロバイダーを開発しています。Terraform では、シンプルな宣言型言語(HCL)で望ましいシステム状態を定義でき、Terraform が以下を処理します。
- デプロイ
- 更新
- ロールバック
- ドリフト検出
- 削除
- 状態管理
これは、SDA が自社の AWS クラウドインフラを管理するために社内で使用しているものと同じ技術です。
Terraform プロバイダーで実現できること
完全に実装された後は、お客様は Terraform を通じてすべての SDA リソースをプロビジョニングおよび管理できるようになります。対象は次のとおりです。
- リソースグループ(ネストされたグループを含む)
- プロジェクト
- デバイス
- ゲートウェイ
- ドキュメント
- Vault およびシークレット
- 将来の SDA オブジェクト
Terraform の構成は他のコードと同様に Git に保存でき、次のことが可能になります。
- 変更の追跡
- ピアレビュー
- 再現可能なデプロイ
- 自動化された CI/CD ワークフロー
仕組み
Terraform は、Terraform の宣言型構成ファイルと SDA の API(REST および GraphQL)の間を橋渡しするカスタムプロバイダーを通じて SDA と通信します。
-
ユーザーは HCL でリソースを定義します。
resource "sda_resource_group" "example" {name = "Production"parent_id = "root"} -
Terraform はこれを SDA に対する API 呼び出しへ変換します
-
SDA はそれに応じてリソースを作成、更新、削除します
-
Terraform は状態を維持し、実際のシステム状態が望ましい構成と一致することを保証します
現在の提供状況
現在の Terraform プロバイダーは、以下の機能を提供しています。
- リソースグループの読み取り
- リソースグループの作成
- リソースグループの更新
- リソースグループの削除
(ネストされた階層を含む)
プロバイダーのアーキテクチャ、API の抽象化、および各種パターンの主要部分は確立済みであり、製品の進展に合わせて本ドキュメントに記載していきます。
技術に関する注記
本プロジェクトは、SDA の GraphQL および REST API を用いて構築されました。
- GraphQL は SDA 内部のフロントエンド ↔ バックエンド間通信では非常に効率的ですが、Terraform プロバイダーでの実装はより複雑になります。
- REST は外部の自動化ツールにおける業界標準であり、当社は今後もお客様向けに REST エンドポイントのサポートと拡充を継続します。
Terraform プロバイダーの利用にご関心がありますか?
SDA Terraform プロバイダーは現在プライベートプレビュー段階です。
SDA 環境における Infrastructure as Code の活用を検討されるアーリーアダプターを歓迎します。
ご参加にご関心のある方は、SDA までお問い合わせください。
当社はお客様と直接連携し、以下を行います。
- ユースケースの評価
- プライベートプレビューへのアクセス有効化
- オンボーディング支援の提供
- 最終リリースに反映するためのフィードバック収集