たぶん動く...

多分GIS系の人。あくまで個人的見解であり、所属団体を代表するものではありません。

AdGuard HomeをEC2で稼働させる (IPv6)

前回の記事ではAdGuard HomeをAzure VM上で稼働させました。稼働開始から約3か月が過ぎ、Certbotで導入したSSL証明書の期限近づいてきたのでこの際より安い価格のコンピューティングサービスを提供しているAWSに乗り換えます。さらなるコスト削減を目的としてIPv4を使用しない、IPv6のみで稼働させます。

月額費用の比較

2024年2月 1月でAdGuard Homeの維持費がいくらだったか見てみます。

サービス 料金(円/月)
VM (Standard B1ls) 698.9
VMディスク (Standard SSD LRS) 427.66
パブリックIPv4アドレス Static Public IP 513.98
合計 1737.56

VMディスクが30GBあるのでそこでかかってしまってますね... あとグローバルIPアドレスの維持費も高い...

AWSで稼働させる際には、以下の設定で組みたいと思います。ひとまずネットワーク転送量は無視します。またIPv4は使用しません。

サービス 想定料金(円/月)
EC2インスタンス (t3a.nano) 667.5
EBS (gp3) 8 GB 115.5
合計 783

※ 1$ = 150円換算

t4g.nanoでもいいのですが、CloudWatchとかログ収集ツールも動かしたいので余裕をもたせるためにt3a.nanoを選択しました。 現在の半額くらいの値段で稼働できる??? これなら費用対効果が期待できそうです。

VPCの設定

IPv6での送信/受信ができるようにVPCの設定を追加します。 こちら を参考にして、IPv6専用のサブネットを作成しました。筆者の場合は、ルートテーブルに Egress Only インターネットゲートウェイを使用しているため、これに追加してIPv6で送受信できるように専用のルートテーブルを作成しました。

VPC内の通信フローは以下のようなイメージです。

IPv6の割り当てについて

IPv4の場合、動的割り当てだと、EC2インスタンスを停止、開始するたびに新しいIPv4アドレスが割り当てられます。 IPv6の場合はどうでしょうか? インスタンスを終了しない限り、同じアドレスを使用することができるようです。

IPv6 アドレスは、インスタンスの停止して起動、または休止して起動する際には保持され、インスタンスの終了時にリリースされます。IPv6 アドレスは、別のネットワークインターフェイスに割り当てられている間は再割り当てできません。最初に割り当てを解除する必要があります。

Amazon EC2 インスタンスの IP アドレス指定 - Amazon Elastic Compute Cloud

AdGuard Homeの導入

前回と同様の手順でAdGuard Homeを導入します。 AdGuard HomeをAzure VMで稼働させる - たぶん動く...

1か月後くらいに見積もりと実績を比較してみたいと思います。

参考文献

VPC に IPv6 サポートを追加する - Amazon Virtual Private Cloud

Amazon EC2 インスタンスの IP アドレス指定 - Amazon Elastic Compute Cloud

AWS EC2をIPv6のみ(パブリックIPv4アドレスなし)で作ってssh接続する #AWS - Qiita

AdGuard HomeをAzure VMで稼働させる

筆者のスマホソフトバンクのミニフィットプランを契約しています。外出中はスマホでゲームをしたり、動画をみたりしないので、3GBあればデータ通信量は十分なはずですでした。しかし最近出社する頻度が増えたことで通勤の電車の中でスマホでXをみたり、2chまとめを見ていたせいか、3GB以上を使い通信制限に遭うようになりました。(契約変えろよって話ですが...)
そこで今回は、AdGuard Homeを使用して、自前のDNSサーバを作成しネット広告を減らすことでスマホのデータ通信料を削減したいと思います。

続きを読む

NSGフローログを確認する

AzureでVMの通信ログを取得しようとしたとき、Azure FirewallNSGフローログ、ネットワーク診断ツールなどが挙げられると思います。さらにAzureではTraffic Analyticsなど可視化ツールも用意されています。 今回は AdGuard HomeでDNSサーバをVMで作成し、しばらくスマホDNSサーバとして運用しました。NSGフローログで取得したトラフィックを見てみたいとおもいます。

  • 構成図
  • NSGフローログを設定
  • NSGフローログのファイルを確認する
  • Traffic Analysisでログを可視化する
  • 参考文献
続きを読む

オンプレ環境からAzure Database フレキシブルサーバへ接続する方法 3パターン

Azureのデータベースサービスである Azure Database for MySQLフレキシブルサーバーを触る機会があり、その際にローカル環境から接続する方法について調べる(悩む)ことがありました。いくつかパターンが考えられるので挙げていきます。
仕事でAzure Database for MySQL フレキシブルサーバーやAzure Database for PostgreSQL フレキシブルサーバーへオンプレ(ローカル)環境から接続したいときの参考にしてください。

続きを読む

データベースサービスを停止し忘れていたら止めるAzure Functions

以前、AWSのRDSを起動していて停止し忘れていたらスケジュールで止めるLambdaを作成しました。

RDS停止を忘れていたら止めるLambda - たぶん動く...

Azureを最近使用しており、Azure Database for MySQLを使用後、停止するのを忘れて不用意に課金されてしまう事態が度々発生しました。
AWSだとLambdaをスケジュールでRDSを起動、停止するPythonスクリプトがネットで探すとよく出て来ますが、Azure Functionsで同じような試みをしている記事が出てこないので作ってみました。
今回は、StopDBというAzure Functionsを作成し、その中でStopMySQLという関数を作成します。Azure Functionsを毎日22時に起動する設定とします。

  • サクッと作りたい人へ
  • 諸注意
  • ローカル環境を整備する
  • ローカルで関数プロジェクト作成
  • ローカル関数コーディング
  • 関数アプリ作成
  • 関数アプリのデプロイ
  • カスタムロール作成
  • ロール付与
  • PostgreSQLはどうする?
  • データベースを起動したい
  • 今回作成したリソース
  • 参考文献
続きを読む

EC2 Auto Scalingとプレイスメントグループを組み合わせる

プレイスメントグループを勉強したところ、Auto Scalingグループの可用性について気になったので勉強しなおしました。
Auto Scalingグループとプレイスメントグループを組み合わせて使用することを考えてみます。

  • EC2 Auto Scaling について
  • EC2 Auto Scalingの可用性について
  • プレイスメントグループ作成
  • 起動テンプレート作成
  • Auto Scaling グループ作成 EC2起動
  • 結果確認
  • 所感
  • 参考文献
続きを読む

プレイスメントグループにEC2インスタンスを追加する/脱退させる

プレイスメントグループを触る機会があったのでいろいろ試してみます。

続きを読む