ブログ移設しました。

bloggerから記事を移設しました。


HUGOで記事を書いてみると思いのほか書きやすかったので移動。

火曜日, 10月 10, 2017

DB環境を考えてみたい

初めに

AWS環境下でEC2 on MySQL Clusterを使っている案件があるんですけど、どうしても運用的なことが出てくる場合があります。

なので、Amazon RDS - Amazon Auroraで運用意した場合と、MySQL Clusterを考えてみてましょう。

めんどくさくなってしまったので途中書きなぐっています、後述するまとめを見てください。

最小構成で考えてみると、MySQL Cluster / ってこんな構成になると思います。

費用面、運用面からメリットデメリットを考えてみたいと思います。

費用面

AWS見積ツールでDB01,DB02分のみを考えてみると
毎月オンデマンドで$80程高くなる(つまり1台40$増加)と。
http://calculator.s3.amazonaws.com/index.html#s=RDS&r=IAD&key=calc-DB6FE757-ECCD-4D05-8D96-8FDEE7A7B291

この辺をどう見るか次第でしょうな。

運用面

リカバリーもバックアップもコマンドとコンソールの違いはあれどできますね。
EC2上に構築したCluster環境の場合はサーバー管理者が止めない運用を心掛けるのは当然ですが、実際問題人手が足りないよの場合はあって。

運用面でRDSのほうが当然分がありますよね。
RDS(aurora)触っていないから詳細は分かりませんが、RDSのほうが敷居がだいぶ低い感じします。

まとめ

MySQL Cluster

メリット
好きな構成が取れる
準同期構成をとれること

デメリット
RDSとは違いこちらが保守してやる手間暇が発生
コマンド一発で済むエディションもあるけど、年間ライセンス考えたらきっとCluster Managerは使えないことが多いので、運用担当者はClusterのローリングスタートの順番や適用できる範囲を抑えておく必要がある。(マニュアルパイロット!)

RDS

メリット
保守運用の手間がいらない(RDBMS自体のチューニングは当たり前として)

デメリット
準同期に相当するレプリケーションはないっぽい(マスター・スレーブ構成、書き込みはマスターのみ)
 ⇒ ただ、レプリカも障害があったらマスターに昇格するとかあるので、その辺は流石。
しかし、すでにある場合は、リードオンリーのものとライトもある場合とを考えないといけないってことなので、実装状況次第では使えないなぁ。

所感

全然まとめていないけど、適用しようとしていたのは、準同期が前提で書かれているなぁと思った段階でまとめるのがめんどくなったので、もういいやになりました。 ありがとうございます。




全然関係ない話なんですけど、サーバーリソース監視ツールってあまり知らなったのでこういう記事見つけた時には若干心躍りました。
CloudWatchだけでいいじゃん。きっといろいろな理由でこれはダメなんです。
サーバースペックの足りているいないも考えないといけないですし。

キャンペーンとかやった期間のリザルトが残り続けてほしかったり、通知の方法を細かく変えれるとかしないと、夜も寝れない人が増えちゃうからね。

木曜日, 4月 27, 2017

プアなマシンにubuntuいれて、LVMでその後、hibernateも有効化

おはようございます。具志です。

Macbookがベッドから落ちてしばらく経ちます。
E420は知人のおじさんに譲りました。
現在パソコンは、Aspire one 132でクライアントマシンしています。

最近ネット環境が変わったせいでポート開放ができなくなり、AWSやらkagoyaやら外部サービスで開発環境を低価格で作れないか、模索しておりました。

ただ、低価格で作れたとしても、RDPでアクセスする以上通信が大変なことになるのですよ。

なので、私は考えました。

Apire oneで開発すればいいと。
eMMCは残念なことに30Gしかないですけども。

Windowsではできなかった、LVMの仕組み使えばひとつのディスクとして見せられる!とそう思い立って構築しておりました。

その時の記録を書きます。

LVMのセットアップ

これに関しては、インストール時点で有効にしておくほうがいいです。
じゃないと、LVM移行するときに、該当パーティションを削除する必要が出てきます。(新設だったらいいけど、LVMって拡張するための仕組みだからなぁ。。。)

インストール時点でLVMを有効にする や LVMをセットアップするを選んでLVM構成でセットアップしましょう。

PV、VGへの追加、LVM拡張

これから追加するUSBドライブ(HDDでもいいけど)をparted 使ってLVMに追加してもいいディスクとしてパーティションを作成します。

まず、ディスクを確認して
sudo parted -l /dev/mmcblk0
番号  開始    終了    サイズ  ファイルシステム  名前                  フラグ
 1    1049kB  538MB   537MB   fat32             EFI System Partition  boot, esp
 2    538MB   1050MB  512MB   ext2
 3    1050MB  31.3GB  30.2GB                                          lvm

この3番目のパーティションが30Gしかないのでこれに追加する手順を。

追加するディスクをpartedでlvmのパーティションとして作成

ディスクをLVMにしてしまう

sudo parted /dev/sda
rm xx
mklabel gpt
mkpart primary 0 100%
set 1 lvm on

VGを確認

sudo vgdisplay

VGは「ubuntu-vg」ってことがわかりました。

PV作成

pvcreate /dev/vdb1

VGへ追加

vgextend ubuntu-vg /dev/vdb1
pvdisplay

論理ボリュームroot拡張

lvextend -l +100%FREE /dev/ubuntu-vg/root

ファイルシステム拡張

resize2fs /dev/ubuntu-vg/root

パーティションサイズ確認

resize2fs /dev/ubuntu-vg/root

hibernate有効化

5/10 追記 Aspire one A01-132ではhybernateは実行できますが、また起動した時にデータを復元できていませんでした。。。
xubuntuで軽くしてあきらめるとします。

sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes

これでクライアントマシンとして割と使いやすい感じになったと思う。

このあと再起動したらもうハイバーネートが有効な状態です。

参考資料:

android studioもそこそこ動いているっぽいし、これでしばらくはいいかな。
VirtualBoxとか動かす感じではないし。


寝るか。。。

火曜日, 1月 24, 2017

macを開発環境として整えたい part II(Virtualboxをwebから触る)

表題に書いたことをやるよりこっちの方が良さそうだ。




つきましては、改め、上記の通り、vagrantで環境を整えて、docker + 作業用VMを構築していきたいと思います。(やりたいことはvagrantでできたはず。)

金曜日, 1月 06, 2017

macを開発環境として整えたい part I(OpenVPN)

OpenVPN環境を整えるときに、以下の3つの選択肢がありました。


  • sierra上にOpenVPN環境を構築する。
  • VM上に普通にOpenVPN環境を構築する。
  • docker上にOpenVPN環境を構築する。

ネットワーク周りのロスを少なくしたかったので、sierra上にOpenVPNを構築したかったのですが、残念ながらtuntapがmacos sierraをサポートしていない?みたいです。

なぜかインストールしたら画面が暗転してずっと元に戻らなかったのでやめました。

次に、VM上にOpenVPN環境を構築ですが、
これもこれで後生大事にOpenVPNのVMを作成してやるのもやだなーとかめんどくさがってました。(おそらくこれが一番いいと思う選択肢)

最後にdockerでcontainer化できたらほかのOSに移動したとしてもすぐに移動できて便利だと思って探しておりました。


最終的にとったのは、
  • docker上にOpenVPN環境を構築する。
の方法なんですが

以下のコンテイメージからこんな風に設定・スクリプトを書いて運用するようにしました。


こんな感じでdocker-composeとそれをたたくスクリプトを作成し、それで運用するように。
 これならあまり手間暇かけなくてもOpenVPNを始められますね。(VM上で直配置のほうが早そうだけど。)
ファイルの内訳は、
initialze.sh 初期設定用スクリプト
generate-client.sh クライアントファイル指定で、設定ファイルを吐き出したり、DBアップデートしたり
start-server.sh OpenVPNサーバーの停止・起動

これでお手軽OpenVPNですね。


おやすみなさい。

木曜日, 1月 05, 2017

macを開発環境として整えたい

もうMacでいいやってなったのだけど、以下のものが必要と考える。

  • VPN
  • サービス起動方法
  • virtualboxをwebから触る

OpenVPN

他のVPN方式でもいいのだけど、かって知ったる証明書付きで認証を行ってくれるOpenVPN。
なぜこれが必要なのかというと
開発環境の使い方として、
  • リモートからRDPしたい。
  • リモートからVirtualBoxに触りたい。
この時に、各々のサービスで認証をかけるの面倒ですし、何よりできたかな?できなかったかな?とかするのが大変。 なんで一括自分のネットワークに入ってできるようにOpenVPN

サービス起動方法

launchctlで自分のユーザでログインせずとも(SSH除く)サービスを起動する方法がほしい。
それができればマシン立ち上がったら
Virtualbox上に配置されたVMを起動して
dockerのこのコンテナを起動させて
みたいなことができて、普通のLinuxのSysV initやsystemdみたいなことがしたいのです。

きっと、launchctlでもできるんでしょうけどその記述方法がまだ分かっておりません。

Virtualboxをwebから触る

これは何を言ってるのかというと、
phpVirtualBoxをOSX上に配置してブラウザから触ればらくできるのかな?という思いからです。

まずはいったんこの環境を整えていきたいと思います。
面倒なので、vagrantでいいや!ってことになりました。(環境の構成についてもスクリプト化できるのでこっちのほうがいい)