投稿

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

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とGCP編)

イメージ
 マルチクラウドでネットワーク構成してみて強固なバックエンドを作れないかとゆうのを5年くらい前から夢見てて、ようやく手出しができそうになってきたのでお勉強しようとしてみた。最初に AWSのVPC と GCPのVPC をつないでEC2とGCEで通信できるようにしてみた。 ホントは クラウド間通信のサービス で組むんだろうけど個人の勉強なので Site to SiteVPN と ClassicVPN という構成からスタートする。 貧乏なのでどっちも最小構成的な感じからスタートしてみて構成に慣れて短時間で構築できる様になったら Google推奨のHA構成 で組んでみようかなと思ってます。 まぁいろんなとこで出尽くしている感じがあるので、いまさらですがヨワヨワなのでご容赦ください。構成はこんな感じです。 マネジメントコンソールでやるのも面白くないのでどちらもCloudShell使ってやってみることにした。(単に環境準備するのが面倒なだけ) ◆シリーズ 1.AWSとGCP接続 2.AWSとAzure接続 3.GCPとAzure接続 4.AWSとGCPとAzure接続 5.CDK for terrformで再構成 ◆大まかな流れ 1.AWSでVPCとサブネット作成 2.GCPでVPCとサブネット作成 3.GCPでVPNGateway作成 4.AWSで仮想プライベートゲートウェイ作成 5.AWSでGCPとのVPN接続作成 6.GCPでVPNトンネル作成 7.AWSでプライベートサブネットにEC2作成 8.GCPでGCEをサブネットに作成 9.GCP側の後始末 10.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 ${VP...

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 ...

ObserviumのインストールをShellスクリプトで半自動化する

昔の職場で MRTG とかいうのを サーバ監視 に使ってて、サーバの可視化とかグラフ化とかありました。正直、 サーバ運用は人が不幸になる だけであまり好きではないのでこういう 監視系のツール にはあまりそそられないのですが、否応なく勉強せざるをえなくなったので仕方なしにツール入れてみることにしました。 選んだの Observium ですね。(他にもあるのに 正直なところ Grafana とか Prometheus とか mackerel とか Datadog とかキラキラで行けてる上の世界の方が使っているようなところをお勉強したかったのですが、行けてないのでなんか EC2 の上に Zabbix とかObserviumを乗っけるところからのお勉強です。 ※筆者が行けていないだけなのでツールは悪くないです。 そして次に同じ作業できる自信がないので、相変わらずの芸のないShellスクリプトで一括インストールです。公式にも インストールスクリプト あるのでそっち使えばいいんですが RDS とか CloudSQL 使うケースとかhttps化したかったのであえての自前で準備です。ラクできるときはラクする方がはるかにいいです。 ちなみにObserviumではPHP8.2以降で非推奨のMySQLライブラリ使ってるのでPHP8.1まででしか動かぬようです。早めの8.2以降対応に期待しましょう。 ◆Shellスクリプト本体 #!/bin/bash HOST_NAME=observium-srv DATABASE=observium DB_INITIAL_PASSWORD=dbpassword DB_ROOT_PASSWORD=dbpassword DB_USER=observium DB_PASSWORD=observium DB_HOST=localhost PHP_VERSION=8.1 WEB_USER=www-data HTPASSWORD_PATH=/etc/nginx/basic SERVER_NAME=yourdomain.com SITE_URL=https://yourdomain.com/ DOCUMENT_ROOT=/opt/observium/html ADMIN_MAIL=mail@yourmail.com OBS_ADMIN=admin OBS_PASSW...