投稿

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

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

【最終回】(続)静的Webサイトホスティング二重化してみる(その5)

 静的サイトWebホスティングシリーズもこれで最後です。 最後の難関 Terrform です。GCPの時に AWSの部分 は作っていて、そのまま動くか不安でしたが、ほぼそのまま動いてくれたのでAWSはほぼ流用です。 Azureでこちらの作成がメインです。自分が弱いだけに方々からコピペして作成しています。日本語の情報があまりない(自分の探し方が下手)ので英語のサイトばっか漁りましたが 英語が絶望的なのでほとんど情報が見つけられませんでした。 もっと気が利いた表現が英語でできればかなり早く調べられるのになぁ。 50近いおっさんがそんなすぐにツヨツヨにはなれないので地道に調べるしかないです。 まぁ、今回の構成は世間で既に誰かがやっているかもしれませんが・・・残念ながら見つけられませんでした。 ◆シリーズ その1:AWSでCloudFront+S3構成を作る その2:AzureでApplicationGateway+Blob構成を作る その3:DNSでフェイルオーバー設定 その4:S3とBlobにGitHubActions使ってコンテンツ同期 その5:TerraformでIaC化 ◆Version関連 Ubuntu20.04LTS Client: Docker Engine - Community Version: 19.03.13 docker-compose version 1.24.0, build 0aa59064 Terraform v1.2.2 ◆事前準備 #Azureコンテナ起動 $ docker container run --name azure-terraform-dev -h \ terraform-dev -it -d \ --mount type=bind,src=$(pwd)/aws_azure,dst=/aws_azure \ --restart=always \ -e TZ=Asia/Tokyo multicloud-ubuntu /bin/bash $ docker exec -it azure-terraform-dev /bin/bash #1.AWS認証情報設定 # aws configure AWS Access Key ID [None]: YOURACCESSKEY AWS Secr...

【最終回】静的Webサイトホスティング二重化してみる(その4)

静的Webサイトホスティングパターンの二重化、 前回 から半年近くが経過しました。色々と試行錯誤していてようやく CloudFormation とか DeploymentManager とか Terraform もなれてきたので宿題だった IaC 化にチャレンジしました。 前提条件としてDockerで AWS-CLI とか GoogleCloud-SDK 丸ごと込々の環境を作成できていることが必要になります。とりあえず そちらはDockerでサクッと作りました 。 ほんとはGitHubのところまでできたらよかったんですが、そこはスキルがなくてヨワヨワなのでここまでが限界でした。ひとまず静的Webサイトホスティングパターンはここまでで最後です。ようやく昨年からの懸案事項解決できました。 ◆シリーズ その1:AWSでCloudFront+S3構成を作る その2:GoocleCloudでLoadBaranser+GCS構成を作りDNSでフェイルオーバ その3:S3とGCSにGitHubActions使ってコンテンツ同期 その4:TerraformでIaC化 ◆設定作業編 1.Docker内初期設定 (1)AWS初期設定 #コンテナログイン $ docker exec -it terraform-dev /bin/bash #AWS認証情報 # aws configure AWS Access Key ID [None]: INPUTACCESSKEY AWS Secret Access Key [None]: INPUTSECRETACCESSKEY Default region name [None]: ap-northeast-1 Default output format [None]: json #環境変数設定 # cd ~/terraform/ # export TF_VAR_access_key="ACCESSKEY" # export TF_VAR_secret_key="SECRETACCESSKEY" # export TF_VAR_role_arn="ROLE/ARN" (2)GCP認証情報 #初期設定 # gcloud init Welcome! This command will ta...

マルチクラウド用のIaC用Docker環境構築してみた

次にやろうとしていることが AWS と GoogleCloud を Terraform で構築するというところもあるのと、そのうち Azure もいじくる可能性もあるなぁということで3つのクラウドいじくれる環境を準備しようと思いたった。最初はいつも通り Hyper-Vの仮想イメージ にちまちま入れ込んで作業しようとしていたけど。よく考えたらバージョンアップのこととかよそで作業するとか考えたときに、 Docker の方が都合いいのではないかと思って今回はDockerやってみました。 今さらのDockerです。まぁ能力が低いので仕方ないです。相変わらずのつぎはぎコピペです。実際はコンテナに入り込んで作業するのはTerraformを実行するときくらいでそこまでの間はホストの方の所定ディレクトリで VSCode でゴリゴリとtfファイル書くことになるんですけどね。 ・構築環境 Ubuntu 20.04.2 LTS Docker version 19.03.13, build 4484c46d9d ◆ディレクトリの構成 |-- Dockerfile `-- terraform `-- hoge.txt ◆作業コマンド #ディレクトリ作成 $ mkdir docker $ cd docker $ mkdir terraform #Dockerfile作成 $ vi Dockerfile #コンテナイメージ作成 $ docker build . -t multicloud-ubuntu \ --build-arg ruby_ver=3.0.0 \ --build-arg python_ver=3.9.2 \ --build-arg python_old_ver=3.8.8 #コンテナ起動 $ docker container run --name terraform-dev -h terraform-dev -it -d \ --mount type=bind,src=$(pwd)/terraform,dst=/root/terraform \ --restart=always \ -e TZ=Asia/Tokyo multicloud-ubuntu /bin/bash #コンテナにログイン $ docker exec -it terraform-de...

TerraformでGoogleAPPEngineを構築してみた

イメージ
Terraform シリーズもいよいよ今回で最後かなぁと思っています。 前回 に引き続いて PaaS の構築です。既に Alibaba に追い抜かれてはいますが、三大クラウドの一角の GCP です。 GoogleAppEngine と DataStore を使用するアプリを作成し、そいつを展開するところをTerraformでやってみようというわけです。 まぁ↓こんな感じの構成です。 サンプルアプリは こちら に保存しています。 Azureの時 と同様にまずは CloudSDK で試してみてからTerraformにてやってみます。またしてもtfファイルは GitHub には上げていないという、、、。いい加減にGitに上げる様にした方がいいんだろうなぁと思うんですが後で見返す際にやりやすいのでこうしています。 カスタムドメイン に関してはどうしても手動の部分があるので切り分けて共通項目としてくくりだしているのでTerraform化はしていません。カスタムドメインと無償SSLの箇所については他に いいサイト があるのでそちらを参照いただいた方がいいかもしれないです。 ◆設定作業編 1.CloudSDK版 # ソースコードのコピーとライブラリインストール $ cd workdir $ git clone https://github.com/Otazoman/GAEWebAppSample.git $ cd GAEWebAppSample $ mkdir lib $ pip install --upgrade pip $ pip install -t lib -r requirements.txt #GCPプロジェクト作成 $ gcloud projects create ${project_name} --folder=${folder_id} #GAE作成 $ gcloud app create --project=${project_name} Please choose the region where you want your App Engine application located: [1] asia-east2 (supports standard and flexible) [2] asia-northeast1 (supports st...