投稿

ラベル(Azure)が付いた投稿を表示しています

CDKTFがサービス終了になるのでCDKTNに移行した話

 CDKTFがサービス終了 するとかいう話、今頃になって知った。昨年から マルチクラウドバックエンド作るので 格闘していたけど、いきなりサービス終了というのは正直なところかなり困る。 選択肢としては 1.cdktf synth --hclでHCLにしてterraformで管理 2.1で変換後に Pulumi に移行する となるけど、結構設定ファイルに外だししてたりするので正直、移行するのが非常につらい。それにPlumiいろいろとややこしいみたいで安定性に難ありみたい。 どうしようかと考えていたら、 CDK Terrainとかいうのが爆誕 しているらしい まぁリリースされるまで待とうかと思っていたら、 もう使えるらしい 。しかも4日前でバージョンも0.22となっている。 移行は ガイド に従ってやればスムーズにいった。 立ち上がっていたコンテナを破棄して、node_modules削除してから Dockerfile を書き直して コンテナを立ち上げ。 コンテナにログインしてnpm入れなおして スナップショットテスト 走らせて必要なコード修正かけて(importとか修正)1時間ほどでなんとか[cdktn plan]まで成功しました。 Opentofu とか全然追っかけてなかったけど、今回のcdktnでopentofuの方がよいかなと思ったりしてます。まぁ terraform 完全に捨てれないので併用にはなると思いますけど スナップショットテスト書いてたので、移行も素早くできた。インフラでもテストコード大事なんだと実感しました。 まぁバックエンドの方はまだ先は長そうですけどね。なんとかcdktfで培った資産は無駄にならなさそうです。よかったよかった ◆参考サイト https://khuonglab.dev/ja/posts/cdktf-deprecation-migration-guide/ https://cdktn.io/docs ◆発表資料 https://www.docswell.com/s/Otazoman/KJWL6N-2026-03-24-124301

マルチクラウドで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://...

マルチクラウドでVPC同士接続してみるその④(AWS,Azure、GoogleCloud3すくみ接続)

イメージ
 前回までは2クラウド間の接続でしたが、今度は3クラウドをつないでみます。さすがにここまですることはないでしょうが、ここまで来たらやるしかないでしょう。 コマンドラインではいちいちやってられないので、 terraform を使って一撃で構築できるようにしておきます。これでいつでもお手軽に VPN接続 を作れちゃいます。 生成AI を駆使して作りました。もはや自分はいらんだろうという位の勢いです。システム系のこういう作業は生成AIの方が格段に上ですね。 構成はこんな感じです 前回までのでおおよそ作れるかなと思いましたが、複数拠点からVPNを接続する考え方がきちんと理解できてなくてAzureとAWSのVPNGatewayで2つ作ろうとしてエラーになって悩んだりと結構嵌ってました。 前回までのコマンドラインについてVPN作成部分だけは terraformにしています。 ◆シリーズ 1.AWSとGCP接続 2.AWSとAzure接続 3.GCPとAzure接続 4.AWSとGCPとAzure接続 5.CDK for terrformで再構成 ◆作成したterraform https://github.com/Otazoman/terraform_multicloud_vpn/tree/main/three_cloud_connect ◆参考サイト ・AWS-GCP-Azure https://thelarklife1021.hatenablog.com/entry/2021/05/01/001835 https://www.silect.is/blog/multi-cloud-vpn-terraform/ https://medium.com/@bijit211987/mastering-multi-cloud-management-with-terraform-0615675415d9 ・AWS(VPN) https://docs.aws.amazon.com/ja_jp/vpn/latest/s2svpn/VPNRoutingTypes.html https://blog.serverworks.co.jp/aws/static/vpn https://iret.media/98450 ・GCP(VPN) https://medium.com/@nitinkrs...

マルチクラウドでVPC同士接続してみるその③(GCPとAzure編)

イメージ
 VPNシリーズも3回目に突入、次はGCPとAzureの接続をやってみます。今回はお勉強がてらなので、とりあえず低コストでスタートしたいことからシングル構成ですが、本来は HAで構成 すべきなんですよね。それはまたの機会にでもやろうかと思います。そしてコマンドラインでやってますが、やってることは ここのパクリ です。過去2回でAWSとAzureとAWSとGCPをやっているので、今回はそれの応用編といったところです。 構成は以下の様な感じです。(まぁ分かるか・・・) 作業はGCPとAzureともCloudShellからコマンドラインで実行です。 ◆シリーズ 1.AWSとGCP接続 2.AWSとAzure接続 3.GCPとAzure接続 4.AWSとGCPとAzure接続 5.CDK for terrformで再構成 ◆大まかな流れ 1.GCPでVPCとサブネット作成 2.GCPでVPNgateway作成 3.AzureのVNETとサブネット作成 4.Azureでローカルネットワークゲートウェイ作成 5.AzureでVPN接続作成 6.GCPでVPNトンネル構成 7.GCPでGCEをサブネットに作成 8.AzureでサブネットにVMを作成 9.Azure側の後始末 10.GCP側後始末 ◆コマンドライン(先頭にプロンプト付きなので注意) 1.GCPでVPCとサブネット作成 1.1.VPC作成 $ VPC_NETWORK=multi-cloud-vpn-gcp $ PROJECT=multicloud-sitevpn-project $ REGION=asia-northeast1 $ gcloud compute networks create ${VPC_NETWORK} \ --project=${PROJECT} \ --subnet-mode=custom 1.2.サブネット作成 $ SUBNET_NAME=${VPC_NETWORK}"-subnet" \ && echo ${SUBNET_NAME} $ PRIMARY_RANGE=172.30.0.0/16 $ gcloud compute networks subnets create ${SUBNET_NAME} \ --netw...

マルチクラウドでVPC同士接続してみるその②(AWSとAzure編)

イメージ
  前回 から時間が空きましたが、今度はAzureとAWSを Site to SiteVPN で接続してみました。ひとまずは EC2 とA zureVM も立てて通信できているかも確認しました。Azureの方で VPNGateway 作成するときに20分とか結構な時間がかかるので要注意かな。 構成は以下の図みたいな感じです。 ◆シリーズ 1.AWSとGCP接続 2.AWSとAzure接続 3.GCPとAzure接続 4.AWSとGCPとAzure接続 5.CDK for terrformで再構成 ◆大まかな流れ 1.AWSでVPCとサブネット作成 2.AzureでVNETとサブネット作成 3.AzureでVPNGateway作成 4.AWSで仮想プライベートゲートウェイ作成 5.Azureでローカルネットワークゲートウェイ作成とトンネル設定 6.AWSでプライベートサブネットにEC2作成 7.AZureでサブネットにVMを作成 8.Azure側の後始末 9.AWS側の後始末 ◆コマンドライン(先頭にプロンプト付きなので注意) 1.AWSでVPCとサブネット作成 1.1.VPC作成 $ REGION=ap-northeast-1 $ VPC_NAME=multi-cloud-vpn-aws $ VPC_CIDR=172.20.0.0/16 $ STRING_EC2_VPC_TAG="ResourceType=vpc,Tags=[{Key=Name,Value=${VPC_NAME}}]" \ && echo ${STRING_EC2_VPC_TAG} $ aws ec2 create-vpc \ --cidr-block ${VPC_CIDR} \ --tag-specifications ${STRING_EC2_VPC_TAG} 1.2.サブネット作成 $ AZ_CODE="a" $ SUBNET_TYPE="private" $ SUBNET_NAME=${VPC_NAME}"-"${SUBNET_TYPE}"-subnet-"${AZ_CODE} \ && echo ${SUBNET_NAME} $ SUBNET_CID...

3大クラウドのストレージ使ってsyslogのログローテーションしてみる

Samba使ってマウントしたファイルサーバ ってのを以前に準備しました。 その応用で業務にてsyslogサーバ立ててマウントしてそこにログを逃がす形式で構築する機会がありました。しかしながら、よく考えると マウント したディレクトリに移動させるより ローテート の際にコマンドで直でストレージに送ればいいかなと思って試してみました。AWSだけだと面白くないので GC Sと AzureBlob にも対応してみました。次回やるときに苦労するの嫌なので現時点で一撃でやれるようにShellにしてます。 ◆Shellスクリプト実行環境の前提 ・AWS:IAMロールでS3フルアクセス可能なものが存在しEC2に付与されている。AWS-CLIインストール済でクレデンシャル発行済 ・GCP:GCEのアクセススコープで[ストレージ]がフル設定となっている ・Azure:V-NETとストレージアカウントとBlobコンテナーが設定されていること ・Ubuntu22.04LTSにて確認(ロケールと言語は日本語に変換済) ◆Shell本体 #!/bin/bash LOGDIR=/var/log/remote CONFIG=10-remoete.conf LOGNAME=syslog S3BUCKET=s3://202402-syslog-srv-test GCSBUCKET=gs://202402-syslog RESOURCENAME=syslogexam AZ_ACCOUNTNAME=202402storageaccount AZ_CONTAINERNAME=202402-syslog-test EXPIRY=$(date -d "+10 years" +%Y-%m-%dT00:00:00Z) CMD="logrotatecommand" # AWS read -p "## Do you want to setting AWS ? (y/n) [y]: " -e -i "y" awsResponse if [ "$awsResponse" == "y" ] || [ "$awsResponse" == "Y" ]; then ...

3大クラウドでVMとストレージを組み合わせた構成を一撃で構築する

  EC2+S3でSambaサーバ組み合わせて ファイルサーバ的なものを前回やってみましたが、 GCP とか Azure でも同じことやってみました。 GCPの場合は GCE + GCS に gcsfuse を組み合わせて構成、Azureの場合は AzureVM に Blob の機能でNFSv3を指定してやるやり方です。 Azureは 以前にredmineでAzureFiles使ってマウントしたこと がありましたが今回はBlobのコンテナ使って NFSマウント してみました。 AWSの場合はgoofysがパフォーマンスいいみたいです。GCPとAzureも書込みとか変更は我慢できないほどではないけどファイル削除に若干、時間がかかる。 頻繁な削除が発生しないなら、まぁどれでもいいんじゃなかろうかという感じです。コストはあまり見ていないですけどVMのコスト+ストレージのコスト+読み書き発生するみたいですね。 ◆Shellスクリプト実行環境の前提 ・AWS:IAMロールでS3フルアクセス可能なものが存在しEC2に付与されている。AWS-CLI用のクレデンシャルが発行済 ・GCP:GCEのアクセススコープで[ストレージ]がフル設定となっている ・Azure:V-NETとストレージアカウントが設定されていること ・Ubuntu22.04LTSにて確認(ロケールと言語は日本語に変換済) ◆Shell本体 #!/bin/bash ACCESS_KEY_ID=AKXXXXX ACCOUNT_ACCESS_KEY_ID=XXXXX ACCOUNT_REGION_ID=ap-northeast-1 ACCOUNT_OUTPUT=json S3_BUCKET_MP_PUBLIC=s3test-mountpoint-samba S3_BUCKET_S3FS=s3test-s3fs-samba S3_BUCKET_GFYS=s3test-goofys-samba GCS_BUCKET=gcstest-samba AZURE_STORAGE_ACOUNT=azuresambatest AZURE_CONTAINER=azure-samba-test MOUNT_DIR_MPS3=/mnt/test-mountpoint-s3 MOUNT_DIR_S3FS=/mnt/test-s3fs M...