【IaC】GCP × CDK for Terraform でユースカジノ 出金手数料管理をする
- ユースカジノ 出金手数料
- ユースカジノ 出金手数料フラ
- サーバレス
- エンジニア
投稿日:
はじめに
Google Cloud で IaC を行う手段として、Deployment Manager や Terraform を使用する方法がよく紹介されていますが、IaC を yaml や HCL 等の宣言型言語ではなく、Typescript や Python 等のユースカジノ 出金手数料グラミング言語を利用して実装したいという方には CDKTF という選択肢があります。
本記事では CDK for Terraform (CDKTF)を使用して、ユースカジノ 出金手数料 のリソースをコードで管理する方法をご紹介します。
CDK for Terraform (CDKTF)とは
CDKTF とは HashiCorp 社と AWS 社の共同開発により開発された Typescript や Python 等で記述できる IaC ツールです。
元々、AWS では AWS CDK という CloudFormation(AWS のインフラユースカジノ 出金手数料ビジョニングの仕組み)を介したユースカジノ 出金手数料グラミングベースの IaC ツールを提供しており、これがベースとなっています。
CDKTF では AWS CDK の概念やライブラリを利用することを可能としつつ、Terraform CLI を介してインフラユースカジノ 出金手数料ビジョニングを行うことができるようになりました。
これにより、Google Cloud を含む Terraform でサポートしている Cloud ユースカジノ 出金手数料バイダであれば、CDKTF を利用してユースカジノ 出金手数料グラミング言語ベースでの実装が可能となっています。
イメージ引用元: CDK for Terraform( https://developer.hashicorp.com/terraform/cdktf )
CDKTF を試してみる
それでは、CDKTF で Google Cloud のリソースをユースカジノ 出金手数料ビジョニングしてみたいと思います。
CDKTF を利用するユースカジノ 出金手数料グラミング言語としては Typescript を使用するものとします。
構築対象
今回は簡単なネットワークと WEB サーバを CDKTF で構築します。
具体的にはユースカジノ 出金手数料構築するものとします。
- VPC/サブネット
- Compute Engine (HTTP Server)
- VPC firewall
ユースカジノ 出金手数料図
前提条件
本記事では以下のツールのユースカジノ 出金手数料及びセットアップがなされている前提で記載していますのでご留意ください。
- ユースカジノ 出金手数料が必要なツール
- Terraform CLI v1.2 以上
- Terraform ユースカジノ 出金手数料方法:https://developer.hashicorp.com/terraform/install
- Node.js v1.6 以上
- Node.js ダウンロード方法:https://nodejs.org/en/download/package-manager
- ユースカジノ 出金手数料 CLI
- gcloud CLI ユースカジノ 出金手数料方法:https://cloud.google.com/sdk/docs/install?hl=ja
- Terraform CLI v1.2 以上
- * ユースカジノ 出金手数料 CLI のセットアップ
CDKTF のユースカジノ 出金手数料
以下を実行することで CDKTF CLI の最新の安定リリースを作業環境へグローバルユースカジノ 出金手数料します。
npm install --global CDKTF-cli@latest
CDKTF ユースカジノ 出金手数料ジェクトの作成
以下を実行して CDKTF の Typescript ユースカジノ 出金手数料ジェクトのひな形を作成します。
cdktf init --template="typescript"
cdktf initを実行するとユースカジノ 出金手数料ジェクト名や使用するユースカジノ 出金手数料バイダー等のオプションの選択を求められます。
この際、ユースカジノ 出金手数料バイダーについては、What providers do you want to use?の質問で Google を選択します。
実行後、ユースカジノ 出金手数料ジェクトのひな形の作成とパッケージインストールが実行されます。
続いて、CDKTF で Google ユースカジノ 出金手数料バイダーを使用するため、以下を実行してパッケージをインストールします。
npm i -S @cdktf/provider-google
CDKTF コードの作成
CDKTF ユースカジノ 出金手数料ジェクトの初期構成は以下となっています。
CDKTF ユースカジノ 出金手数料ジェクト構成
. ユースカジノ 出金手数料 .gitignore ユースカジノ 出金手数料 __tests__ ユースカジノ 出金手数料 cdktf.json ユースカジノ 出金手数料 help ユースカジノ 出金手数料 jest.config.js ユースカジノ 出金手数料 main.ts ユースカジノ 出金手数料 node_modules ユースカジノ 出金手数料 package-lock.json ユースカジノ 出金手数料 package.json ユースカジノ 出金手数料 setup.js └── tsconfig.json
main.tsがユースカジノ 出金手数料グラムのエントリーポイントになっており、main.tsの内容を次のように修正します。
main.ts
- {project ID を指定}、{バケット名を指定。}の部分を修正する必要があります。
- Terraform の State データを GCS に保存するようにしているため、GcsBackendに指定するバケットを手動で作成する必要があります。(ローカルに保存する場合はnew GcsBackend部分の記述を削除します。)
- CLI を使用したバケット作成コマンド:gsutil mb gs://{バケット名}
import { Construct } from "constructs"; import { App, TerraformStack, GcsBackend } from "cdktf"; import { provider, computeNetwork, computeSubnetwork, computeInstance, computeFirewall, } from "@cdktf/provider-google"; class MyStack extends TerraformStack { constructor(scope: Construct, id: string) { super(scope, id); // Google Provider // Terraform のHCLで記述する際と同様にProviderを宣言します。 // projectの値部分にデユースカジノ 出金手数料イ先のGoogle Cloudのユースカジノ 出金手数料ジェクトIDを指定してください。 new provider.GoogleProvider(this, "google", { project: "{project ID を指定}", region: "asia-northeast1", }); // TerraformのstateデータをGCSに保存 // Terraformでは、共同開発する際、Stateファイルをオブジェクトストレージ等に保存する必要があります。 // GCSバケットを作成してバケット名を指定してください。 new GcsBackend(this, { bucket: "{バケット名を指定。}", prefix: "cdktf-test", }); // VPC const vpc1 = new computeNetwork.ComputeNetwork(this, "vpc-01", { name: "test-vpc-01", autoCreateSubnetworks: false, }); const subnet1 = new computeSubnetwork.ComputeSubnetwork(this, "subnet-01", { name: "subnet-01", network: vpc1.selfLink, ipCidrRange: "10.0.0.0/24", }); // HTTP Server new computeInstance.ComputeInstance(this, "server-01", { networkInterface: [ { subnetwork: subnet1.selfLink, accessConfig: [{}], }, ], zone: "asia-northeast1-a", bootDisk: { initializeParams: { image: "debian-cloud/debian-11", }, }, name: "server-01", machineType: "f1-micro", metadataStartupScript: "sudo apt-get update && sudo apt-get install apache2 -y && echo 'test
' | sudo tee /var/www/html/index.html", tags: ["http-server"], }); // firewall new computeFirewall.ComputeFirewall(this, "firewall-01", { name: `${vpc1.name}-allow-http`, network: vpc1.selfLink, allow: [ { protocol: "tcp", ports: ["80"], }, ], targetTags: ["http-server"], sourceRanges: ["0.0.0.0/0"], }); } } const app = new App(); new MyStack(app, "cdktf-test"); app.synth();
💡ポユースカジノ 出金手数料ト
- AWS CDKと同様の要領でAPP、Stack、Constructを定義してユースカジノ 出金手数料フラ構成を記述できます。
- ユースカジノ 出金手数料バイダー指定やStateデータの保存先等の設定等、通常のTerraformと同様に実装する必要があります。
- AWS CDKでは、Cloudformation にユースカジノ 出金手数料データが保存されますが、CDKTFではTerraformと同様、ステートデータの保存先を検討する必要があり、今回はGCSのバケットに保存をするようにしています。
💡ポユースカジノ 出金手数料ト
Google PorviderのAPIについては、ユースカジノ 出金手数料のTerraform のドキュメントを参考に調べます。
https://registry.terraform.io/providers/hashicorp/google/latest/docs
デユースカジノ 出金手数料イ
コーを作成後、以下を実行してデユースカジノ 出金手数料イ先の環境への変更を確認します。
cdktf diff
💡ポユースカジノ 出金手数料ト
CDKTFユースカジノ 出金手数料時に認証エラーが発生する場合は`gcloud auth application-default login`をユースカジノ 出金手数料して認証してください。
以下を実行してデユースカジノ 出金手数料イします。
cdktf deploy
途中で承認を求められるためApproveを選択します。
その後、次のようにApply complete!と表示されたらデユースカジノ 出金手数料イ完了となります。
動作確認
コンソール上で VPC、Compute Engine が構築されていることを確認します。
VPC
Compute Engine
Compute Engine の外部 IP へアクセスするとユースカジノ 出金手数料のように WEB サーバが立ち上がっていることが確認できます。
Compute Engine の外部 IP へアクセス
クリーンアップ
ユースカジノ 出金手数料リソースの削除を実行します。
cdktf destroy
また、ステートデータ保存用にバケットを作成した場合は削除します。
まとめ
CDKTF により、簡単な Google Cloud リソースの構成を Typescript で定義しデユースカジノ 出金手数料イを行ってみました。
使い慣れた言語で ユースカジノ 出金手数料 の IaC を行いたい方はぜひ CDKTF を試してみてください。
次回予告
引き続き、IaC関連のご紹介を予定しています。
ご期待ください!