VRRP on AWS VPC-EC2

本エントリでは, VPC-EC2 で MASTER 側のヘルスが確認できなくなったときに, VRRP を用いてフェールオーバし, 一定度の可用性担保を実現する場合について1取り上げる. VRRP の実装としては keepalived を用いることとする.

前提

次のシチュエーションを前提としている.

  • インスタンスが 2 つ以上作成済みで, 24, 80 番ポートを SG の設定で開けてあり, どちらにおいても apache2 と keepalived が稼働している.
  • keepalived.conf にそれぞれ MASTER と BACKUP が設定済みで, VPC-EC2 のルートテーブルにて, いまの設定にあわせて 1 つに VIP (192.168.1.1/32) が設定してある.

このシチュエーションがオンプレミス環境上の話であれば, 何の問題もなく, これでフェールオーバが実現できるのだが, AWS EC2 でこれを実現するためには, AWS のルートテーブル側の VIP ターゲットをも貼り直す操作が必要となり, この操作については, ある程度自分で実装しなければならない. いくらか調べて見ると, awscli で同様の環境を作っている事例を多く見るのだが, 本エントリでは諸事情より AWS SDK for go を使って, 操作することとした.


Connector/C++ で MySQL を操作

  • 2018/07/20 09:31
  • C++

学校の関係で MySQL を触る機会が増えてきたので, MySQL の C++ 向けライブラリを一度触っておこうという忘備録.

これを実行すると, 次のように, 実在しそうでしなさそうな, 妙に怪しい雰囲気1の一覧が出力される.


エルガマル暗号

エルガマル暗号が離散対数問題の応用であることは認知していたものの, きっちりと自分でまとめたことが無かったと思うので, それに関連する諸々の前提についてもふまえて, 一度書くことにした. また, その処理系を実装した. 本エントリでは, 同暗号プロトコルの話の前にまず前提を示し, その後, 実装の観点から見た要点を示す.

目次

  1. ユークリッドの互除法
  2. ガロア体
  3. オイラーの ϕ\phi 関数
  4. フェルマーの小定理
  5. 原始元
  6. 離散対数問題
  7. 実装
    1. フェルマーテスト, Miller-Rabin 素数判定法
    2. 原始根の生成
    3. 鍵と暗号文の生成
    4. 暗号文の復号
    5. 実行
  8. 参考文献

数論的関数の用語と例

  • 2018/07/10 07:50

数論的関数の用語やその関連について整理したかったので書くことにした.

目次

  1. 数論的関数
    1. 加法的関数
    2. 乗法的関数
  2. 参考文献

EC2 のタグを SDK で操作

ついこの間に golang を初めて触り1, 大学の授業過程で AWS EC2 を使っていて, そのタグ機能を色々機械的に操作できれば便利だななどと思い, golang でなにか作る良い機会であるような気がしたので, 取り敢えず AWS EC2 のタグ機能に関する操作一式をそれなりに揃えたコマンドラインツールを作ってみた. 実装部分にかかった時間は 30 分程度であった. golang に慣れない身でも, API, 標準ライブラリ, ドキュメントが整備されているおかげでサクサクと動くところまで持っていくことができた.

以下は Usage である (ほぼリポジトリにおいてある README のままであるが).