by shigemk2

当面は技術的なことしか書かない

MySQL Sharding memo

  • データを複数のサーバに分散させること
    • 水平分割
    • データを水平に分割するので、ホストAにはid 1-1000のレコードが、ホストBにはid 1001-2000のレコードが振り分けられている
  • レプリケーションはデータの完全コピーなのでslaveはmasterと同等レベルのスペックが必要
    • 更新系はmasterでしか担保できない
  • シャーディングは更新系の負荷分散もできるけど設計がクソめんどい あとシャーディングされたデータ同士でのJOINが難しい

techblog.kayac.com

techlife.cookpad.com

MySQL :: MySQL Cluster: スケーラビリティ

アカウント共有したAMIからEC2を作成するときにハマったこと

結論

オリジナルのAMIのネットワークインターフェースファイルに PEERDNS="no" が書かれていると、 AMI共有で作成したEC2インスタンスのDHCPオプションが引き継がれない

手順

手順自体はふつう。いずれの作業もマネジメントコンソールで行っている。

  1. AMIを作成し、別アカウントと共有する
  2. 共有したAMIを利用してEC2インスタンスを作成

ここで、DHCPオプションセットが正しく設定されていれば、DHCPオプションセットの設定が/etc/resolv.confに反映されるはずだが、/etc/resolv.confは移行前のままであった(DHCPオプションセットはDHCPの設定で、VPCに紐付けることでレゾルバ設定をAWS側で設定できる)

理由は、PEERDNSがnoだから。 PEERDNS="no" の設定をネットワークインターフェースファイル (/etc/sysconfig/network-scripts/ifcfg-eth0とか)に書くと、/etc/resolv.confの設定が書き換わらなくなる。

つらい。

memo Essential Copying and Pasting From Stack Overflow

雑に読む。

  • SOに記載されているすべてのコードはライセンス的にはCC-BY-SA 3.0で、商用には向いていない。ので、そのSOを見た後に自力で再実装することをおすすめする
  • ちゃんとアンサーしてくれた人を称えるために、あとで確認する時のために、コピペするときはリンクを貼っておいたほうがいい
  • 書かれているコードは正確じゃないし、古いし、ちゃんと動くかどうかも保証されていないことに留意する

Code Selection · Essential Copying and Pasting From Stack Overflow

ss

ss

antとかanuとかのアレ

$ ss -V
ss utility, iproute2-ss161212
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=17.10
DISTRIB_CODENAME=artful
DISTRIB_DESCRIPTION="Ubuntu 17.10"
       -n, --numeric
              Do not try to resolve service names.

       -r, --resolve
              Try to resolve numeric address/ports.

       -a, --all
              Display both listening and non-listening (for TCP this means established connections) sockets.

       -l, --listening
              Display only listening sockets (these are omitted by default).
()
       -t, --tcp
              Display TCP sockets.

       -u, --udp
              Display UDP sockets.

ssの例のアレのその後がまだよく分かっていないが、今日現在でss -antuってやったらudpも出てきたから直っているのではなかろうか Moving on from net-tools [LWN.net]