前書き
Terraform や Ansible を使って、さくらのクラウド上でさまざまな構成を手軽に作成するためのデザインパターンをご紹介します。
前回デザインパターン①の記事を書いたのですが、その続きとなります。
実行環境の準備などは、上記をまずご確認ください。
デザインパターン 5
デザインパターン 1 をモデルに、自動バックアップとシンプル監視を設定するパターンです。
詳細については、README で解説していますので、こちらをご確認ください。
https://github.com/shztki/sakura_design_pattern/blob/main/05_autobackup_simplemonitor/README.md
自動バックアップを使うと、 AWS でいえば EBS スナップショット(を DLM を使って自動化した場合)のように、ディスクに対して複数世代のバックアップ設定のスケジューリングができます。
できあがったものはアーカイブとして管理されるので、利用したいときはディスクに変換して、サーバを停止して付け替えるなどの作業が必要です。
また、毎回フルバックアップとなるようで、容量が大きいと時間もお金もかかります。
ご利用は計画的にどうぞです。
シンプル監視については、グローバルIP(または FQDN)に対する外形監視ができるだけ(内部監視はできません)ですが、なんと無料です!!!
FQDN利用/SSLの有効期限監視/外部グローバルIP アドレスへの監視、だと有料のようですが、さくらインターネットのサービスで利用しているグローバルIP に対する監視であれば、無料で利用できるようです。
これは太っ腹ですね。
ちなみに通知先に Webhook を利用可能なのですが、コントロールパネルで設定するときには Webhook通知に含めるテキスト
という項目があったものの、 Terraform の変数には該当のパラメータが無いようでした。
ここを設定したい場合、コントロールパネル上で手動で実施する必要があるので、ご注意ください。
デザインパターン 6
さくらのクラウドで、エンハンスドロードバランサを使って、WEBサーバ 2台にアクセスを分散するための構成を作成するコードです。
詳細については、README で解説していますので、こちらをご確認ください。
https://github.com/shztki/sakura_design_pattern/blob/main/06_enhanced_load_balancer/README.md
こちらは、「ルータ+スイッチ」は必須ではありませんので、不要な場合は共有セグメントを使ってサーバを作成してもらって問題ありません。
パケットフィルタを使って HTTP へのアクセスをエンハンスドロードバランサに限定することを、循環参照にさせずに一回で実現するために、あえて利用してみただけとなります。
Terraform での実行後は、Ansible での Apache構築の自動化も可能ですので、あわせて実施してみてください。
エンハンスドロードバランサはプロキシ型ロードバランサのため、何もしないとアクセスログに記録されるリモートIPアドレスはすべてエンハンスドロードバランサ自身の IPアドレスになってしまいます。
きちんと正しいリクエスト元の IPアドレスが記録されるようにすることと、ヘルスチェックアクセスはログから除外する設定を、自動化しています。
なお設定していて思いましたが、 AWS の ELB の場合、ヘルスチェック時には User-Agent に ELB-HealthChecker/2.0
が入るので、さくらもこういう仕様にしてほしいですねー。
(さくらの場合、 User-Agent は空でした)
エンハンスドロードバランサのプロキシ元ネットワークを確認して、該当ネットワークからのヘルスチェックアクセスはログから除外する、という設定をするのは、毎回内容が変わって面倒ですし、User-Agent だと一律に設定できるので、管理も楽になるんですけどねー。
後書き
ということで、追加のデザインパターンをお届けしました。
またいずれ、DB や NFS のアプライアンスを利用した構成や、オートスケール、セキュアモバイルコネクトなど、あまりふだん使わないようなサービスを使ったデザインパターンなども公開してみたいなと思っています。
それでは、どうぞ楽しい IaC ライフを!!