マルチクラウドでVPC同士接続してみるその⑤(AWS,Azure,GoogleCloudをcdktfで構築)【最終回】

 前回で一応マルチクラウドVPNをterraformで構築するところまではできました。

そこまででいいかと思っていましたが、少し前に興味をもったCDK for Terraformの入門がてら、マルチクラウドVPNでVPC接続を試してみました。生成AIを駆使して何とか完成させてます。

最初はChatGPTClaudeのfree版、んでClineにやらせてたんですがClineが結構な頻度でソースコード壊してくれるので後半はGeminiとかDeepSeek、ChatGPTとかと併用でやってく感じになってました。

Clineは調子いい時は調子いいんですけどね。勝手に修正かけないようにPlanで止めといて、質問しつつ、GeminiとかChatGPTで補完しながらって感じで進めました。まぁほとんど何もしてないんですけどね。かなり時間かかってしまいました。それでもイケてないものしか作れていないので生成AIの力を借りてもイケてない人間はイケてないということが分かりました。あと嘘をつくので結局、ここのサイトを頼ってパラメータ確認したりしてました。

後はAzureのVPNgatewayが構築まで1時間弱かかるので、テストが全然進まず時間ばかり溶けます。AWSGoogleCloudだけだと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://techcommunity.microsoft.com/blog/educatordeveloperblog/object-oriented-your-azure-infrastructure-with-cloud-development-kit-for-terrafo/3474715

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が有効になるのと同等動作となるようになっています。この辺、解決させたいのですが能力がなくて解決できていません。

長いことシステムやってる割に、プログラムが素人以下のレベルなので組み上げるまでにかなり長い期間かかりました。何の役にも立たないですけど、ひとまず備忘録としておいておこうかと思いましてメモしておきました。コード汚いのでもし指摘して書き直し方アドバイスしてくれる人がいたらありがたいです。
そのうち、以前に組んだフロントエンドのマルチクラウドサーバレス構成のterraformもCDK for Terraformで書き直しておこうかなと考えてたりします。
その前にRDSCloudSQLAzureSQLDatabaseを使ったマルチクラウドバックエンドを先に試してみたいなぁと思っていたりします。できるのかな。
昨年からずっとやっていたVPNについてはこれでひとまず一区切りとできました。

コメント

このブログの人気の投稿

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)

IEのセキュリティ設定をいじくるバッチ