投稿

最新の投稿

マルチクラウドで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接続 ◆作成した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/@nitinkrsharma/site-to-site-ipsec

AWSでservelessでSTNSのバックエンドを作ってみる

 Linuxで認証統合をしたいなぁってことで stns を調べて、 サーバを構築して確認して ましたがなんかEC2を立てるのが嫌なので Serveless構成 で行けないかなということで色々と試行錯誤やAIの力を借りまくってやっと思った通りのやつができたのでさらしときます。 ほんとは APIGateway のみで完結したかったんですが、stnsのクライアントが APIキー に対応していなかったらしく仕方なくT oken認証の箇所はLambda を使用せざるを得ませんでした。まぁ、先人が色々とされているのでいまさらですが、バックエンドは長く使えるように CloudFormation で構築するようにしました。 ◆作ったもの https://github.com/Otazoman/stns-backend-api ◆参考サイト ・stnsのserveless https://zenn.dev/sogaoh/articles/21-12-25-af3793dc2fcd0a https://iret.media/23633 https://www.m3tech.blog/entry/aws-private-stns-api https://qiita.com/miyaz/items/a0cf2f8f8acfe740ebf6 ・パラメータストア https://qiita.com/okubot55/items/e5d81216d730eb2619cc https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/dynamic-references-ssm-secure-strings.html https://www.yokoyan.net/entry/2021/10/26/131000 https://qiita.com/tnagashima0310/items/988042ad75a77fa3ca18 https://dev.classmethod.jp/articles/aws-systems-manager-parameter-store-use-cloudformation/ https://dev.classmethod.jp/articles/aws-cloudformation-su

マルチクラウドで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接続 ◆大まかな流れ 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} \ --network=${VPC_NETWORK} \

STNSでLinuxのユーザ管理を統合してみる

 とある事情で複数台のLinuxで同一のユーザを扱うとかいう話で出てきて、都度ユーザを追加とかいう面倒なことをしなければならず、何台にも及び、かなりイラっとしたので調べてみて STNS なるものに行き着いた。 なんかLinuxのユーザ情報を一元管理できて複数台で認証情報を統合できるとかいうことらしい。最近は REST みたいなフォーマットになっているとのことで早速、実験してみる。 ・構築環境 Ubuntu24.04LTS(AmazonEC2 AMI) ◆構築方法 1.サーバ側 $ curl -fsSL https://repo.stns.jp/scripts/apt-repo.sh | sh $ sudo apt install -y stns-v2 libnss-stns-v2 cache-stnsd $ cd /etc/stns/ $ sudo mkdir conf.d $ sudo tee -a /etc/stns/server/stns.conf <<_EOS_ port = 1104 include = "/etc/stns/conf.d/*.conf" _EOS_ $ sudo groupadd -g 2000 test-example $ sudo tee /etc/stns/conf.d/sample.conf <<_EOS_ [users.example1] id = 1001 group_id = 2000 shell="/bin/bash" directory = "/home/example1" keys = ["ssh-rsa AAAAhogefuga・・・"] [users.example2] id = 1002 group_id = 1001 shell="/bin/bash" directory = "/home/example2" keys = ["ssh-rsa AAAAhogefuga・・・"] [users.example3] id = 1003 group_id = 1001 shell="/bin/sh" directory =

マルチクラウドで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接続 ◆大まかな流れ 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_CIDR=172.20.10.0/24 $ AZ_N

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

 少しだけ時間ができたので、全然今の仕事と関係ないけどIT資産管理とかでいいやつないかなと探してたら出てきたのがこの Snipe-IT とかいうやつ。 なんかいろいろできそうで、挙句に PC構成情報まで無料で集められる とかいうなかなかの優れものらしい。とりあえず環境作るのに色々とあれらしいのでひとまず、簡単に試せるようにしとこうとインストールについてスクリプトで動かせるようにしておいた。 ◆Shellスクリプト #!/bin/bash HOST_NAME=snipeit-srv DATABASE=snipeit DB_INITIAL_PASSWORD=password DB_ROOT_PASSWORD=password DB_USER=snipeit DB_PASSWORD=snipeit DB_HOST=localhost MAIL_HOST=YOURSMTP_SERVER MAIL_USERNAME=YOUR_USER MAIL_PASSWORD=YOUR_PASSWORD MAIL_FROM_ADDR=snipe-it@example.com MAIL_FROM_NAME=system-admin MAIL_REPLYTO_ADDR=snipe-it@example.com MAIL_REPLYTO_NAME=system-admin PHP_VERSION=8.3 WEB_USER=www-data SERVER_NAME=snipeit.example.com SITE_URL=https://snipeit.example.com WEB_DIR=/var/www/ DOCUMENT_ROOT=${WEB_DIR}/snipe-it ADMIN_MAIL=yourmail@example.com sudo hostnamectl set-hostname ${HOST_NAME} # --------------------------------------------- # 1.PHPとComposerインストール # --------------------------------------------- read -p "## Do you want to install php? (y/n) [y]: " -e

マルチクラウドで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接続 ◆大まかな流れ 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 ${VPC_CIDR} \ --tag-speci