マルチクラウドでVPC同士接続してみるその⑤(AWS,Azure,GoogleCloudをcdktfで構築)【最終回】
前回で一応マルチクラウドVPNをterraformで構築するところまではできました。
そこまででいいかと思っていましたが、少し前に興味をもったCDK for Terraformの入門がてら、マルチクラウドVPNでVPC接続を試してみました。生成AIを駆使して何とか完成させてます。
最初はChatGPT、Claudeのfree版、んでClineにやらせてたんですがClineが結構な頻度でソースコード壊してくれるので後半はGeminiとかDeepSeek、ChatGPTとかと併用でやってく感じになってました。
Clineは調子いい時は調子いいんですけどね。勝手に修正かけないようにPlanで止めといて、質問しつつ、GeminiとかChatGPTで補完しながらって感じで進めました。まぁほとんど何もしてないんですけどね。かなり時間かかってしまいました。それでもイケてないものしか作れていないので生成AIの力を借りてもイケてない人間はイケてないということが分かりました。あと嘘をつくので結局、ここのサイトを頼ってパラメータ確認したりしてました。
後はAzureのVPNgatewayが構築まで1時間弱かかるので、テストが全然進まず時間ばかり溶けます。AWSとGoogleCloudだけだと10分かからないんですけどね、Azure入ると一気に1時間コース、そしてAzureがトラブルばかりしか起こらないのでかなりAzureが嫌いになりました。CDKTF完成させるまでにAWS以外はコストもかなりかかりました。
◆シリーズ
1.AWSとGCP接続
2.AWSとAzure接続
3.GCPとAzure接続
4.AWSとGCPとAzure接続
5.CDK for terrformで再構成
◆作成したCDKTF
https://github.com/Otazoman/cdktf_multicloud_backend/tree/main/multicloudvpn
◆参考サイト
・CDKTF
https://developer.hashicorp.com/terraform/cdktf
https://zenn.dev/yutaro1985/articles/cdktf-for-usual-terraform-users
https://dev.classmethod.jp/articles/cdk-for-terraform-practice-1-introduction/
https://blog.serverworks.co.jp/2023/03/09/165617
https://speakerdeck.com/watany/cdkshi-igaaws-adapter-for-cdktfdeterraformniru-men-sitahua?slide=26
https://t-yng.jp/post/cdk-for-terraform-tutorial
https://developer.hashicorp.com/terraform/tutorials/cdktf/cdktf-install
https://zenn.dev/yohane/scraps/cbfae65780da5c
https://zenn.dev/ryoh/articles/9179864e84561f
https://www.utakata.work/entry/2022/08/09/162319
https://nabeop.hatenablog.com/entry/2020/first-step-of-cdktf
https://qiita.com/JHashimoto/items/81c938d1a0574f1fa34c
https://dev.classmethod.jp/articles/ckd_for_terraform_first_touch/
https://qiita.com/JHashimoto/items/b91990dd02e7a9a32c2e
・GoogleCloud
https://sreake.com/blog/cdk-for-terraform/
https://tech.revcomm.co.jp/cdk-for-terraform-typescript-gcp
https://blog.ojisan.io/terraform-cdk-gcp/
https://zenn.dev/cloud_ace/articles/cdk-for-terraform-startup
・Azure
https://learn.microsoft.com/ja-jp/azure/databricks/dev-tools/terraform/cdktf
https://zenn.dev/nekojoker/articles/bf6f79ecf165fc
https://www.hashicorp.com/blog/building-azure-resources-with-typescript-using-the-cdk-for-terraform
・ディレクトリ構成
https://zenn.dev/cureapp/articles/087324d8a28875
terraformで作成したものから細かく構成を変更できるようにしました。
- GoogleのCloudRouterについてAzure用とAWS用に分けていたものを統合した
- AWSはプライベートサブネット以外も作成するようにした
- NATを設けてインターネット経由でaptできるようにした
- それぞれブラウザでssh接続できるようにした
- フラグを設けて制御可能とした(HAでもシングルでも構成可能)
- 3すくみだけでなく2クラウド間のみといった構成も取れるようにした
- 設定用のtsを準備してパラメータを渡せるようにした
AzureをHUBにする構成だとGoogleにうまくルート伝播しないため、awsToAzureとgoogleToAzureのみ有効でもawsToGoogleが有効になるのと同等動作となるようになっています。この辺、解決させたいのですが能力がなくて解決できていません。
コメント