EC2

Hash Table Sizeの変更

2013年の話題としては今更感がありますが、LVSのHash Table Sizeを変更するために、EC2上のCentOS 6.3でカーネルを再構築したのでメモしておきます。 ちなみにAmazon Linux AMIだとカーネルのバージョンが新しいので、/etc/modprobe.d/ipvs.conf とかに opti…

スポットインスタンスの強制終了前に割り込み処理を入れる

EC2

EC2のスポットインスタンスは安くて大変お買い得ですが、価格が上がると強制ターミネートされるのがにんともかんとも。きちんとサービスアウトできる余裕が必要なので以下のようなスクリプトを書いて終了時にsleepするようにしてみたのですが、二通目のメー…

Ruby版ec2-describe-spot-price-history

#!/usr/bin/env ruby require 'cgi' require 'base64' require 'net/https' require 'openssl' require 'optparse' require 'rexml/parsers/pullparser' require 'time' require 'yaml' Net::HTTP.version_1_2 class EC2Client API_VERSION = '2012-12-01' S…

Amazon LinuxにHeartbeatをインストールする

EC2

詳細はリンク先を参照のこと。 http://www.thatsgeeky.com/2011/07/installing-heartbeat-on-amazon%E2%80%99s-ec2/ rpmを作ったので添付しておく。 cluster-glue-1.0.9-1.amzn1.x86_64.rpm cluster-glue-debuginfo-1.0.9-1.amzn1.x86_64.rpm cluster-glue-l…

attach-eniコマンドを使ったフェイルオーバー

EC2

https://bitbucket.org/winebarrel/attach-eni サーバ cthulhu(クライアント): 10.0.0.172 hastur: 10.0.0.171 nyar: 10.0.0.170 ENI: 10.0.0.150 事前準備 haster/nyarにattach-eniをインストールしておく 新規に作成したENIとhuster/nyarのeth0で『Source/…

Security GroupをGraphvizで可視化する

EC2

とりあえず非VPCだけ。 ec2-describe-group | awk -F'\t' 'BEGIN{print "digraph G {"} /^GROUP/{vpc = $6 ? 1 : 0} $9~/CIDR/{src=$10} $9~/USER/{gsub(/NAME /,"",$11); src=$11} !vpc && /^PERMISSION/{dst=$3; pair=sprintf("\"%s\" -> \"%s\"",src,dst)…

CapistranoとJGitを使ったS3からEC2へのデプロイ

EC2

デプロイ時の負荷対策の一解決策になる、、、かも。 JGitのインストール http://eclipse.org/jgit/ 『org.eclipse.jgit.pgm-1.3.0.201202151440-r.sh』はus-east-1しか操作できないバグあり https://git.eclipse.org/r/#/c/5255/ jgitに名前を変えて、ローカ…

EC2でOpenFlowを動かしてみる on VPC

EC2

基本情報 同じサブネット上に構築 Amazon Linux AMI 2012.03 (64bit / m1.small) × 3台 サーバ構成 source-01 (10.0.10.1) switch-01 (10.0.10.2) 『net.ipv4.ip_forward = 1』 『net.ipv4.conf.default.rp_filter = 0』 Source Dest. Checkはdisabled dest-…

日本語でタグをつける

EC2

どうもいろいろとよくわかんなかったので、少し追ってみた。 ポイントは POSTで投げる Content-Typeに「; charset=utf-8」をつける SignatureVersionは「2」 right_awsではURLエンコードに独自メソッドと実装してたけど、CGI.escapeで大丈夫、、だと思う。 …

ec2-api-tools.spec作成スクリプト

EC2

#!/bin/sh SOURCE=ec2-api-tools.zip SPEC=ec2-api-tools.spec DESTDIR=/usr wget -q http://s3.amazonaws.com/ec2-downloads/$SOURCE -O $SOURCE VERSION=`unzip -l ec2-api-tools.zip | awk '/ec2-api-tools-/{print $4; exit}' | sed -r 's|ec2-api-tools…

Scheduled Eventチェック用Nagiosプラグイン

#!/usr/bin/env ruby require 'cgi' require 'base64' require 'net/https' require 'openssl' require 'rexml/document' Net::HTTP.version_1_2 class EC2Client API_VERSION = '2011-12-15' SIGNATURE_VERSION = 2 def initialize(accessKeyId, secretAcce…

例のアレ

EC2

画面はできましたがテストができません…

例のアレ その2

EC2

テストできちゃったよ…

簡易EC2クライアント

ちょっとしたメタ情報を取るのにec2-api-toolsだと遅いし(JAVA_HOMEとかの設定も必要だし)、gemでライブラリをインストールするのもいやなので、rubyの標準ライブラリだけで簡易的なクライアントを作ってみた。*1 #!/usr/bin/env ruby require 'cgi' requi…

Murakumo - 分散型負荷分散での振り分けの平均化について

EC2

分散型内部DNSサーバ - Murakumo 0.3.8をひっそりとリリースしました。 画期的だと思うんですが、話題のわの字にも上りません。悲しいなぁ… 分散型負荷分散での振り分けの平均化について Murakumo 0.3.8では振り分けの新しいアルゴリズムとして、fix_by_src…

クックパッドの勉強会でMurakumoの話をしました

ゴシッププロトコルによる冗長化と負荷分散の検証 View more presentations from winebarrel 謝辞 懇親会で話しかけてくださった方々ありがとうございます。全力で懇親会を避けていた自分としては、あの手の懇親会での立ち位置が未だによくわかりません。マ…

2.6.18-xenU-ec2-v1.5でnscdを動かす

EC2

2.6.18-xenU-ec2-v1.5でnscdを起動しようとすると、以下のエラーが発生。 shell> nscd -d 2011年11月24日 21時52分03秒 - 3629: Failed to drop capabilities nscd: cap_set_proc failed「modprobe capability」で直るようだが、うまく動作しない。 以下のフ…

インスタンスタイプごとの帯域を調べてみた

EC2

注意 window sizeによって左右されるようです。 コメントをいただきました。 https://twitter.com/#!/ar1/status/107798786344108032 Iperfを使って同じタイプのインスタンス間の帯域を調べてみた。 結果 (資料) 所感 帯域が気になるならm1.large以上を使っ…

ec2-api-toolsのspecファイル

EC2

Summary: Amazon EC2 API Tools Name: ec2-api-tools Version: 1.4.3.0 Release: 1 License: Amazon Software License Group: Development/Tools Source: ec2-api-tools.zip BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildArch: noarch %…

ec2-ami-toolsのspecファイル

EC2

Summary: Amazon EC2 AMI Tools Name: ec2-ami-tools Version: 1.3 Release: 66634 License: Amazon Software License Group: Development/Tools Source: ec2-ami-tools.zip BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildArch: noarch %…

elasticfox-ec2tag 0.2.8

https://bitbucket.org/winebarrel/elasticfox-ec2tag/downloads リリースしました。 しかし、今後はFirefoxのメジャーバージョンアップにあわせてちまちまリリースする必要があるのな?

elasticfox-ec2tag 0.1.4

EC2

https://bitbucket.org/winebarrel/elasticfox-ec2tag/downloads AWS Management Consoleの終了防止がなかなか便利そうだったので、実装してみました。 一覧にステータスを表示できないのが不便なんですが、AWS Management Consoleにはない「まとめて終了防…

elasticfox-ec2tag 0.2.3

EC2

https://bitbucket.org/winebarrel/elasticfox-ec2tag/downloads EIP一覧にアサインされているインスタンスのNameタグを表示するようにした SnapshotがひもづいているAMI ID/Nameを表示するようにした VolumeがアタッチされているインスタンスのNameタグを表…

Elasticfox.app

https://bitbucket.org/winebarrel/elasticfox-ec2tag/downloads/ XULRunnerを使って単体アプリ化してみました。

elasticfox-ec2tag

EC2

https://bitbucket.org/winebarrel/elasticfox-ec2tag/downloads ElasticfoxにEC2のタグが表示されないので*1、表示されるように改造してみた。 更新はできないが、多少はましかも。 追記 いまのとこ、インスタンスのみ 追記2 インスタンス・AMI・EBS・スナ…

AMIのリージョン間コピー機能

EC2

http://www.cloudworks.jp/blog/2010-12-14-update 試さねば。

CentOS 5.5 (i386) AMI作成スクリプト

EC2

#!/bin/bash IMG_DEV=/dev/sdf MNT_DIR=fs-centos-5.5-i386-core AMI_NAME=centos-5.5-i386-core cd /mnt mke2fs -F -j ${IMG_DEV} mkdir ${MNT_DIR} mount ${IMG_DEV} ${MNT_DIR} mkdir ${MNT_DIR}/dev mkdir ${MNT_DIR}/etc for i in console null zero do…

EC2内部用DNS: PowerDNSのPipeBackendを使って、タグ`Name'から内部IPを引けるようにする

EC2

4/6 追記 ツイッターから流れてくるかたのために補足しておくと、↓の方法は負荷が高すぎて、あまり実用的ではなかったです。某社では使ってないっす。規模にもよりますがゾーンファイルを更新するようにした方がいいとおもいます。たぶん backendスクリプト…

CentOS 5.5(x86_64)のEBSベースAMIをスクラッチからサクっと作る

EC2

ap-southeast-1でAMIを作成。S3へのイメージのアップロードは不要。 インストールするパッケージは4.のスクリプトのyumコマンドで調整(curlは必須) 1. RightScaleのCentOS AMI(ami-21f38c73)のインスタンスを立ち上げる2. EBS Volumeを作成してインスタン…

CentOS 5.5 AMI作成スクリプト

EC2

RightScaleのAMI(ami-21f38c73)上で、CentOS 5.5のAMI(Coreのみインストール)をスクラッチから作成・登録するスクリプトを書いてみた。 #!/bin/bash AMI_IMG=centos-5.5-x86_84-core.img MNT_DIR=fs-centos-5.5-x86_84-core AMI_NAME=centos-5.5-x86_84-core…