CDKTF(Python 사용)를 사용해 봅시다
왜 CDKTF인가?
TypeScript, JavaScript, Python, Java 또는 C#과 같이 개발자가 이미 알고 있는 일반적인 프로그래밍 언어로 인프라를 구축할 수 있는 AWS CDK 위에 있는 추상화 계층인 CloudFormation 에 대해 들은 것은 몇 년 전입니다.
CDKTF은 Hashicorp의 답변으로 동일한 개념을 제공하지만 약간의 차이점이 있습니다.
그리고 왜 파이썬?
가장 적합한 언어는 TypeScript인 것 같습니다. 더 많은 가능성을 제공하고 설치가 덜 필요합니다.
하지만 저는 파이썬이 더 편하고 그것이 어떻게 통합되는지 보는 것이 흥미롭습니다.
또한 이 언어는 CDK와 CDKTF 모두에서 사용할 수 있으므로 두 문서 모두에서 이점을 얻을 수 있습니다.
설치
이 예에서는 다음 도구를 설정해야 합니다.
npm install --global cdktf-cli@latest
# to see the available commands
cdktf help
용법
먼저 로컬에서 프로젝트를 초기화합니다.
cdktf init --template="python"
# Then, there is a prompt, I specify "cdktf_example"
# for the name of my workspace
그런 다음 API Reference에 따라 간단한 S3 버킷을 생성합니다.
#!/usr/bin/env python
BUCKET_NAME = "<< THE UNIQUE NAME FOR MY S3 BUCKET >>"
TFCLOUD_ORGA = "<< THE NAME OF MY ORGANIZATION >>"
from constructs import Construct
from cdktf import App, NamedRemoteWorkspace, TerraformStack, TerraformOutput, RemoteBackend
from cdktf_cdktf_provider_aws import AwsProvider, s3
class MyStack(TerraformStack):
def __init__(self, scope: Construct, ns: str):
super().__init__(scope, ns)
AwsProvider(self, "AWS", region="eu-west-1")
bucket = s3.S3Bucket(self, "cdktf-example",
bucket=BUCKET_NAME)
TerraformOutput(self, "s3_arn",
value=bucket.arn,
)
app = App()
stack = MyStack(app, "cdktf_example")
RemoteBackend(stack,
hostname='app.terraform.io',
organization=TFCLOUD_ORGA,
workspaces=NamedRemoteWorkspace('cdktf_example')
)
app.synth()
마지막으로 다음 명령을 사용하여 인프라를 조작할 수 있습니다.
# to install dependencies
pipenv install cdktf-cdktf-provider-aws
cdktf get
cdktf diff
# which is the same than `terraform plan`
cdktf deploy
# which is the same than `terraform apply`
cdktf destroy
# which is the same than `terraform destroy`
코드를 사용할 수 있습니다here.
내 피드백
저처럼 공동 작업을 위해 S3 버킷에 tfstates를 저장하는 데 익숙하다면 사용 가능한
DataTerraformRemoteStateS3
객체를 찾았으므로 원하는 경우 Terraform Cloud를 사용하지 않아도 됩니다.이 기사를 작성할 당시에는 S3 버킷을 인스턴스화하기 위한 올바른 구문과 같은 간단한 정보를 찾기 위해 흑마술을 사용해야 했지만(특히 구문이 CDK와 CDKTF 간에 약간 다르기 때문에) 곧 개선될 것이라고 추측할 수 있습니다. .
정말 좋은 점은 실제로 꽤 잘 작동하고 구조화, 단위 테스트 등과 같은 Python 및 모든 이점을 사용하여 인프라 코드를 작성할 수 있다는 것입니다.
CDK에 비해 CDKTF의 또 다른 큰 장점은 모든 Terraform 공급자와 함께 작동할 수 있으므로 더 이상 AWS에 국한되지 않는다는 것입니다.
CDKTF를 사용하면 좋아하는 언어로 인프라 코드를 직접 작성할 수 있으므로 부담 없이 사용해 보세요!
Reference
이 문제에 관하여(CDKTF(Python 사용)를 사용해 봅시다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jdxlabs/lets-try-cdktf-with-python-48a9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)