본문으로 건너뛰기

산업 자동화 환경을 위한 Infrastructure as Code

SEW-EURODRIVE는 고객이 Infrastructure as Code(IaC) 를 사용하여 SEW 플랫폼 리소스를 정의, 배포 및 관리할 수 있도록 하는 Terraform provider를 도입하고 있습니다. 이 기능은 현재 private preview로 제공됩니다. 참여에 관심이 있으신 경우 SEW에 문의해 주십시오.


개발 배경​

SEW에서 새로운 테넌트가 생성되면 고객은 일반적으로 프로젝트, 디바이스, 게이트웨이, 볼트, 문서, 리소스 그룹 등 광범위한 리소스를 구성해야 합니다. 현재 이 작업은 두 가지 방법으로만 수행할 수 있습니다.

1. 웹 콘솔에서의 수동 설정​

  • 시간이 많이 소요되고 반복적임
  • 구성 오류가 발생하기 쉬움
  • 반복 수행이나 감사가 용이하지 않음
  • 버전 관리 및 변경 이력이 없음

2. SEW API를 사용한 사용자 지정 자동화​

REST 또는 GraphQL API를 사용하는 방식은 수동 구성보다 확장성이 뛰어나지만, 다음과 같은 과제가 따릅니다.

  • 상당한 개발 노력과 당사 API에 대한 이해가 필요함
  • 스크립트에 보일러플레이트 코드가 누적되는 경향이 있음
  • 고객이 멱등성(idempotency), 재시도 및 부분 실패 복구를 직접 처리해야 함
  • 사용자 지정 상태 관리가 필요함
  • 사이트, 팀 및 공급업체 전반에 걸쳐 표준화하기 어려움

이러한 과제들이 결합되어 신규 사이트 및 테넌트의 온보딩 속도가 필요 이상으로 느려지고 불필요한 운영 리스크가 발생합니다.


당사가 구축 중인 것​

이러한 문제를 해결하기 위해 SEW는 HashiCorp의 업계 표준 IaC 프레임워크를 활용하는 자사 Terraform provider를 개발하고 있습니다. Terraform을 통해 사용자는 원하는 시스템 상태를 간단한 선언형 언어(HCL)로 정의할 수 있으며, Terraform이 다음을 처리합니다.

  • 배포
  • 업데이트
  • 롤백
  • 드리프트 감지
  • 삭제
  • 상태 관리

이는 SEW가 자체 AWS 클라우드 인프라를 관리하기 위해 내부적으로 사용하는 것과 동일한 기술입니다.

Terraform Provider로 가능한 것​

완전히 구현되면 고객은 Terraform을 통해 다음을 포함한 모든 SEW 리소스를 프로비저닝하고 관리할 수 있습니다.

  • 리소스 그룹(중첩 그룹 포함)
  • 프로젝트
  • 디바이스
  • 게이트웨이
  • 문서
  • 볼트 및 시크릿
  • 향후 추가될 SEW 객체

Terraform 구성은 다른 코드와 마찬가지로 Git에 저장할 수 있으며, 이를 통해 다음이 가능합니다.

  • 변경 사항 추적
  • 동료 검토
  • 재현 가능한 배포
  • 자동화된 CI/CD 워크플로

작동 방식​

Terraform은 Terraform의 선언형 구성 파일과 SEW의 API(REST 및 GraphQL) 사이에서 브리지 역할을 하는 사용자 지정 provider를 통해 SEW와 통신합니다.

  • 사용자는 HCL로 리소스를 정의합니다.

    resource "sda_resource_group" "example" \{
    name = "Production"
    parent_id = "root"
    \}
  • Terraform이 이를 SEW에 대한 API 호출로 변환합니다

  • SEW가 그에 따라 리소스를 생성, 업데이트 또는 삭제합니다

  • Terraform이 상태를 유지하고 실제 시스템 상태가 원하는 구성과 일치하도록 보장합니다


현재 제공 범위​

현재 Terraform provider는 다음 기능을 제공합니다.

  • 리소스 그룹 읽기
  • 리소스 그룹 생성
  • 리소스 그룹 업데이트
  • 리소스 그룹 삭제
    (중첩 계층 구조 포함)

Provider 아키텍처, API 추상화 및 패턴의 상당 부분이 이미 확립되었으며, 제품이 발전함에 따라 여기에 문서화될 예정입니다.

기술 참고 사항​

이 프로젝트는 SEW의 GraphQL 및 REST API를 사용하여 구축되었습니다.

  • GraphQL은 SEW의 내부 프런트엔드 ↔ 백엔드 통신에 매우 효율적이지만, Terraform provider에서 구현하기에는 더 복잡합니다.
  • REST는 외부 자동화 도구에 대한 업계 표준으로 남아 있으며, 당사는 고객을 위해 REST 엔드포인트를 계속 지원하고 개선해 나갈 것입니다.

Terraform Provider 사용에 관심이 있으신가요?​

SEW Terraform provider는 현재 private preview 단계입니다.
SEW 환경을 위한 Infrastructure as Code를 살펴보고자 하는 얼리 어답터를 환영합니다.

참여에 관심이 있으신 경우 SEW에 문의해 주십시오.

당사는 다음 사항에 대해 고객과 직접 협력합니다.

  • 사용 사례 평가
  • Private preview 액세스 활성화
  • 온보딩 지원 제공
  • 최종 릴리스를 구체화하기 위한 피드백 수집