필수 도구 설치하기

실습에 필요한 도구를 설치합니다.

본 강의 실습을 위해서는 다음의 도구가 필요합니다.

🔧 설치해야할 패키지

  • 테라폼

  • SOPS

  • AWS CLI

  • jq


🚀 테라폼(Terraform) = 1.5.7

# MAC OS
$ brew tap hashicorp/tap
$ brew install hashicorp/tap/terraform

# Windows
$ choco install terraform

version 명령어를 통해 테라폼 버전이 v1.5.7임을 확인합니다.

# 버전 확인 
$ terraform version
Terraform v1.5.7
on darwin_arm64

테라폼(Terraform) 라이선스에 관하여

테라폼은 2023년 8월 10일 S/W 라이선스를 MPL2.0에서 BSL1.1로 변경하였습니다.

보통 오픈소스 커뮤니티에서는 이러한 결정을 사전에 공지하고 많은 의견을 받아서 결정하지만, Hashicorp사에서 사전 동의없이 결정하여 논란이 있었습니다.

저는 오랜 시간동안 테라폼을 사용한 사람으로서, 한명의 엔지니어로서 어느쪽이 옳다고 의견을 말씀 드리기가 어렵습니다. Hashicorp의 오픈소스 자체가 너무 훌륭하여 회사로써의 이득이 충분치 않았다는 것도 부정할 수 없기 때문입니다. 그리고 테라폼을 이용하여 다양한 것들을 시도하던 회사나 개인의 입장도 이해하기 때문입니다.

일반 사용자, 회사 입장에서는 큰 변화가 없을 수 도 있기 때문에 아래의 라이선스 정책에 대해서 정확히 이해하는 것이 더 좋을 것 같아 아래에 간략하게 정리했습니다.

참고 부탁드립니다.

MPL v2.0 License ( from ChatGPT4 )

  1. 본질: MPL 2.0은 오픈 소스 라이선스로, 소스 코드의 공유를 요구하지만, 라이선스된 코드와 다른 코드를 결합하여 생성된 작품은 별도의 라이선스로 배포할 수 있게 합니다.

  2. 파일 수준의 Copyleft: MPL 2.0은 파일 수준의 copyleft 특성을 가집니다. 즉, MPL로 라이선스된 파일을 수정하면 해당 파일의 수정된 부분은 MPL 하에 배포되어야 합니다. 그러나, 해당 파일 외의 다른 파일들에는 MPL이 적용되지 않습니다.

  3. 다른 코드와의 결합: MPL 2.0 라이선스 하에 있는 코드는 다른 라이선스를 가진 코드와 자유롭게 결합할 수 있습니다. 결합된 결과물을 배포할 때 MPL로 라이선싱된 파일은 그대로 MPL 하에 배포되어야 하지만, 다른 파일들에 대해서는 그렇지 않습니다.

  4. 특허 권리: MPL 2.0은 코드 기여자들이 해당 코드와 관련된 특허 권리를 부여하는 조항을 포함하고 있습니다.

  5. 소스 코드 배포: MPL 2.0 하에 라이선스된 코드의 이진 버전을 배포할 때, 사용자는 그 코드의 소스 코드 버전에 액세스할 권리가 있습니다.

MPL 2.0에는 더 많은 조항과 세부 사항이 있습니다. 라이선스에 관한 완전한 내용과 조항을 이해하려면 공식 MPL 2.0 텍스트를 참조하는 것이 좋습니다.

BSL v1.1 ( from ChatGPT4 )

  1. 제한 기간: BSL 라이센스 하에 릴리스된 소프트웨어는 "Change Date"로 지정된 날짜까지 특정 사용 조건에 제한됩니다.

  2. 제한: 라이센스에는 소프트웨어를 사용하는 데 몇 가지 제한이 포함될 수 있습니다. 예를 들어, 소프트웨어를 사용하여 특정 규모 이상의 데이터베이스를 운영하거나, SaaS로 제공하는 것을 금지할 수 있습니다.

  3. 오픈소스 전환: "Change Date" 이후, 소프트웨어는 지정된 오픈소스 라이선스, 예를 들어 Apache 2.0, under에 배포됩니다. 이 때부터, 제한 사항 없이 소프트웨어를 사용할 수 있게 됩니다.

  4. 소스 코드 사용: "Change Date" 이전에도 사용자는 소프트웨어의 소스 코드를 검토하거나 수정할 수 있지만, 라이선스의 제한 조건 내에서만 사용할 수 있습니다.

BSL은 오픈소스와 상업 라이선스의 특성을 결합하여, 기업들이 초기에는 소프트웨어를 상업적으로 보호하면서, 장기적으로는 커뮤니티와 함께 오픈소스로 사용할 수 있도록 하는 유연성을 제공합니다.

BSL의 구체적인 내용과 조항에 대한 완전한 이해를 위해서는 해당 라이선스 문서의 전문을 직접 참조하는 것이 좋습니다.

MPL 2.0에서 BSL 1.1로 라이선스 변경에 대한 의미 ( from ChatGPT4 )

MPL 2.0에서 BSL 1.1로 라이선스가 변경되면, 해당 소프트웨어의 사용과 배포에 대한 접근 및 권한이 크게 바뀌게 됩니다. 이러한 변경의 의미와 가능한 추측을 아래에 나열해 보겠습니다:

  1. 상업적 가치: 기업이나 개발자는 MPL 2.0에서 BSL 1.1로 라이선스를 변경하는 것으로, 해당 소프트웨어에 상업적 가치가 있다고 판단했을 수 있습니다. BSL은 특정 기간 동안 소프트웨어의 일부 사용을 제한할 수 있기 때문에, 기업은 이 기간 동안 소프트웨어의 상업적 가치를 최대화하려고 시도할 수 있습니다.

  2. 제한된 사용: MPL 2.0은 오픈소스 라이선스로서 소프트웨어의 자유로운 사용, 수정, 배포를 허용합니다. BSL 1.1로의 전환은 특정 사용 사례나 상황에서의 소프트웨어 사용을 제한하려는 의도일 수 있습니다. 예를 들어, 대규모의 상업적 환경에서의 사용이나 SaaS로서의 제공을 제한하고자 할 수 있습니다.

  3. 오픈소스로의 장기적 전환: BSL 1.1은 "Change Date" 이후에 다시 오픈소스 라이선스로 전환됩니다. 따라서, 기업은 장기적으로 커뮤니티와 함께 해당 소프트웨어를 발전시키길 원하지만, 단기적으로는 상업적 이익을 추구하려는 전략을 선택했을 수 있습니다.

  4. 커뮤니티 반응: 이러한 라이선스 변경은 오픈소스 커뮤니티 내에서 다양한 반응을 일으킬 수 있습니다. 일부 사용자나 기여자는 제한적인 BSL에 반대할 수 있으며, 이로 인해 프로젝트의 포크나 대체 프로젝트의 시작을 볼 수도 있습니다.

  5. 경쟁과 시장 동향: 해당 소프트웨어의 시장 내 경쟁 상황, 동향, 그리고 사용자의 수요에 따라 라이선스 변경 결정이 내려졌을 수도 있습니다. 기업은 라이선스를 변경하여 특정 시장 세그먼트에서 경쟁력을 강화하려고 할 수 있습니다.

결론적으로, MPL 2.0에서 BSL 1.1로의 라이선스 변경은 소프트웨어의 상업적 활용, 사용 제한, 그리고 장기적인 오픈소스 전략 등 여러 요인을 반영하는 것으로 해석될 수 있습니다.

ChatGPT 의견에 대한 개인적 의견

거의 모두 동의하며 처음 의견드린 것처럼 어느쪽에 편들기 어렵습니다. S/W엔지니어로서도, 비즈니스를 하는 하는 사람으로서도, 특히 Hashicorp는 이제 상장을 한 회사이기 때문에 투자자의 의견들도 무시할 수 없었을 것입니다.

ChatGPT가 설명해준 것처럼, 라이선스 정책에 관해서 정확한 검토는 필요합니다. 특히, 테라폼을 이용하여 어떠한 도구를 만들고 플랫폼을 만들때는 정확하게 사용해야합니다.

그리고, 이러한 정책은 테라폼의 버전에 따라서 적용되는 부분이 달라 그 부분도 찾아보고 공부 해보는 것을 권해드립니다.

하지만, 너무 라이선스 정책에 갇혀서 개인의 사용이나 회사에서의 도구 그대로에 대한 사용에 대해서는 주저할 필요는 없습니다. 설령 테라폼을 못쓰는 환경이 되더라도 그 사용에 의미와 선언적 의미에 대해서만 이해하더라도 개인에게 충분한 성장에 도움이 될 것 입니다.

Last updated