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