雑多なインフラエンジニア日記

技術ブログでっす~

DatadogとMackerel

Datadogとmackerelはそもそも立ち位置が違うので、比較してどうすんだって話もありますが、 今のところ、DataDogのほうが圧倒的に勝っています。まず、Integrationが豊富&楽すぎる。 ざっとした特徴 Datadog 課金対象はEC2のみ。(またはDatadogAgent) その…

CloudWatchとオートスケール

2014/10/29のAWS webinarを聞きながら取った雑なメモです。。。 オートスケールは初めて知った話がいくつかありました。■CloudWatch・CloudWatch Logsがリリースされた。EC2上のログを監視できる。・CloudFrontの監視ができるようになった。(見るときはN.Vi…

publicIP、publicDNS、EIPの挙動

今更ながら、VPC内におけるpublicIP、publicDNS、EIPの挙動をメモ。 なんでこのテーマかと言うと、 http://www.slideshare.net/AmazonWebServicesJapan/vp-cby-default20130404public の8ページ目の「動的割当されるPublic IPアドレスが利用できる唯一のSubn…

リザーブドインスタンスの所感

完全に個人的見解なメモ。 まぁ、なんでリザーブドがお得なるのかって言うと、 AWS側がキャパシティプランニング立てやすい = 適切な投資が出来る からでしょう。 1. そもそも、リザーブドインスタンスとは? http://www.slideshare.net/AmazonWebServicesJa…

AZとDCのマッピング

意外と大事な話。 以前、AZ名と物理的なロケーション(データセンター)のマッピングは、 アカウント毎に異なると書きましたが、追記。 ・過去記事 http://xoxo-infra.hatenablog.com/entry/2013/02/20/155515 例えば、物理的なロケーション名は、東京リージョ…

静的WebサイトをS3で公開する場合のCNAMEは・・・

S3

ホスト名部分は、何でも大丈夫です。 (xxx.s3-website-ap-northeast-1.amazonaws.com の xxxの部分のこと) 存在しないEndPointをCNAMEに設定しても接続できます。 試しに、適当に nslookup をしてみてください。 (nslookup abcdefghijk.s3-website-ap-northe…

ElastiCacheについてメモ

メモ。 redisのほうが高機能ですね。 ■全般 EC2上にmemcachedを構築するより、セットアップが楽、高可用性、 CloudWacth使用可なので便利。 RDSと同様、OSにログインは出来ない。 最近M3のインスタンスタイプが提供された。現在はmemcachedしか対応していな…

IAMポリシーで特定のEC2インスタンスへの操作権限付与

表題の通り、IAMポリシーで特定のEC2インスタンスのみに操作権限を付ける ことが可能になったみたいです。(2013/07時点) http://aws.typepad.com/aws_japan/2013/07/resource-permissions-for-ec2-and-rds-resources.html 以下のIAMポリシーは、全EC2インス…

df portability オプション (出力結果を見やすくする)

中々便利なオプションを発見したのでメモ。 dfコマンドで各サーバのマウントデバイス名、ポイント、容量などを取得してExcel で表にするときに、NFSサーバをマウントしていると以下の様な表示になってしまい、 貼り付けにくいです。 そんな時は df --portabi…

ソリューションアーキテクトアソシエイトレベルについて

etc

http://aws.amazon.com/jp/certification/ ソリューションアーキテクトアソシエイトレベルを受けてみました。 結果はギリギリセーフ。。 試験範囲だけ確認して勉強しなかった割には受かったので結果オーライw 自分のスペックは、インフラエンジニア10年(要件…

ELBのリクエスト数をmuninに取り込む (CloudWatch to munin)

CloudWatchで、ELBのステータスコードの数、リクエスト数、レイテンシが見れますが、 2週間しか保存されないので必要なものをmuninに取り込んでます。 現状はリクエスト数しか取り込んで無いですが、本来はキャパプラとか過去の振り返り のために、全部2週間…

Solr on EC2

etc

なんか、革命的なサービスが出ましたね。http://solr.jp/まだベータ版のようですが、正式版にしてマーケットプレイスで売れそう。

S3 IAMでアクセス制御 (特定のフォルダにのみ権限付与)

IAMを使ってみたのでメモ。1. AWS Management Console から IAM の画面を開き、ユーザを作成する。 2. アクセス制御したいユーザを選択し、Permissions → Attach User Policy を選択する。 3. Custom Policy を選択する。 4. Policy Document に JSON形式で…

EC2 User Data について (色々自動設定してみるの巻)

今までEC2を何気なく作成していましたが、そろそろ「User Data」なるものを 使ってみようと思ったのでメモ。 これのことです。 インスタンス起動時にやりたい処理(ホスト名設定など)をUser Dataに記述 しておけば、起動時に色々設定してくれる優れものです!…

psshとかpslurpとか

大量のサーバを管理していて、共通設定のファイルを配布したり、ディレクトリの 権限変更したり、ちょっとした一斉作業に便利なコマンドpsshについてメモ。 だいぶ、今更な話ですいませんw 同時に一斉実行ですので、sshをforなどでループするより遥かに早い…

EC2(EBS) PIOPS有りのEBSをPIOPS無しにする

とあるEC2インスタンスでPIOPSを無効にするのにハマったのでメモ。 ・背景 ディスクI/Oバウンドになる濃厚なインスタンスにPIOPSを有効にして 運用してたらコストがそこそこ跳ねたので、そもそも、PIOPS要るん? → 無効にしようぜ と言った流れです。 ・EBS…

EC2のswap領域

EC2

初めて知った・・・https://forums.aws.amazon.com/thread.jspa?messageID=459068&tstart=0#459068一時的に作る方法もありみたいですね。 http://cloudstory.in/2012/02/adding-swap-space-to-amazon-ec2-linux-micro-instance-to-increase-the-performance/

EC2 AZ間のスループット計測 (netperf)

ここ(http://aws.amazon.com/jp/ec2/instance-types/instance-details/)に明確な数値が 書いてないので、インスタンスタイプ毎のAZ間のスループットを計測してみました。 東京リージョンの 1a から 1b、1c に対してnetperfで負荷を掛けています。 (AZはAWSア…

AmazonLinuxのmailコマンド

超小ネタ。 今まではサーバからメールが送信されるかの確認を行う場合、以下の コマンドで実施していたのですが、AmazonLinuxはmailコマンドが mailx なので、ちょっとハマりました。 てか、mailxとか初めて知った・・・orz 今まで ・送信 (送信先アドレス、…

S3でログ収集(パージ編)

前回の記事で各種ログをS3へ転送するところまで書きましたが、永久にS3に 溜め続けるのはスマートではないので、適切に削除するスクリプトを作成し ました。 ・前回の記事 (S3にログ転送) http://xoxo-infra.hatenablog.com/entry/2013/05/13/183114 前提 ・…

S3でログ収集(logrotate)

セキュリティ要件等で、各サーバのログを長期保存しなければいけない場合、 サーバ上(EBS)に全ログを保存するとエライことになるので、S3に退避する 方法をメモ。 Linux標準の logrotate + s3cmd を駆使して実現できます。 # 巷で話題のfluentdやfluent-agen…

EC2自動バックアップスクリプト

RDSには自動バックアップ機能がありますが、EC2には無いので、 EC2(正確にはEBS)のバックアップスクリプトをbashで作ってみ ました。 コードが少々汚い気がしますが・・・ 前提 1. backupタグを作成済みであること。 2. /home/xxxx/.bash_profile に、AWSコ…

EBS IOPSのベンチマークスクリプト

最近流行っている(?)EBSのベンチマーク用スクリプトを作ってみました。 そもそものきっかけは、OS起動直後&初回の読み書き用のファイル 作成時は、極端にIOPSが悪いように見受けられたので、ベンチマーク を簡素化するために作成しました。 何度も試行する…

AZ間のレイテンシについて

EC2

Multi AZ を使う時に気になるのが、AZ間のレイテンシ。 気にならないレベルだと皆さん言いますが、地理的に数十km離れたDC間 の通信なので、どうしてもレイテンシは発生します。 裏で専用線を引いているのは確かでしょうけど。 そこで、簡易的では有りますが…

weighttpでwebサーバの負荷テスト

Apache Bench飽きたし他に何か無いのかな~と探したら、weighttp にたどり着きました。 (SSL未対応ですが・・・) ほんとは、ApacheJmeterで小難しいシナリオ作ってWebサーバの負荷試験を 行うのがベストだと思いますけどね。 ・参考にしたサイト http://www.…

Ruby unicorn 起動スクリプト

unicorn 起動スクリプトを作成してみました。 というか、OS標準のrubyがインストールされている状態で、別Verのrubyを ソースインストールしたら、OSリブート時にunicornが自動起動されなかったので メモ。 ちなみに、手動で起動スクリプトをキックした場合…

RDSのフェイルオーバーについて

RDS

RDSのインスタンスタイプをsmallからmediumに変更した際に、 フェイルオーバーが走って、RDSがセカンダリAZに行ってしまった 件についてメモります。 再起動が発生する認識はありましたが、フェイルオーバーするという 認識は無く、なんでやねーんと調べてた…

mon-get-stats でRDS/ELBのリソース情報を取得

mon-get-stats(CloudWatch API)を使って、RDSやELBのリソース情報を 取得する方法をメモ。Nagios、muninなどのプラグインに組み込みました。 ・過去記事 http://xoxo-infra.hatenablog.com/entry/2013/04/04/024554 ・CloudWatch API http://aws.amazon.com/…

mon-get-statsで請求額を取得

CloudWatchのAPIを使えば、AWSからの請求額を取得出来ますYOという話。 全体の請求額だけではなく、EC2、RDSなど各サービス毎の請求額も取得 可能です。 初期セットアップ ・Billing alarm を設定 この設定をしてからAWS側で請求額モニタリング開始&設定金…

Linux cron実行時のエラーをmessagesに出力

簡単です。 ・エラーになるcron設定を登録。(/tmp/aaa が存在しない前提) */01 * * * * ls /tmp/aaa || logger "cron failed. ret=$? `/bin/awk '{print $1}' /proc/$$/cmdline`" ・1分後に/var/log/messages を確認。 Apr 4 01:33:01 node01 root: cron fai…

Linux vmstatで時刻を表示

トラブル時や性能試験時に、リアルタイムでサーバリソースを見るときに、 vmstat を使うことが多いのですが、リソース情報と一緒に時刻も表示させ る方法をメモ。 ・コマンド vmstat -a 1 | perl -MPOSIX -pe 'BEGIN{$|=1} print strftime q{%Y/%m/%d %H:%M:…

munin AmazonLinuxにインストール

munin2.0.1をAmazonLinuxにインストールしたのでメモ。 (Apacheインストール&muninユーザ、グループは事前に作成している前提) munin本体 1. muninのtarballをゲット ・配布元 http://sourceforge.net/projects/munin/files/stable/ 2. yum で muninに必要…

munin インストール後にエラー

システム移行に伴い、新サーバにmunin を久々にソースからインストール したんですが、謎のエラーが出て、データ取得もhtml更新もされずに、鬼 はまったのでメモ。 ・muninインストール http://xoxo-infra.hatenablog.com/entry/2013/03/29/022728 muninイン…

RDSをNagiosで監視する

RDS

RDSへの通信は、3306ポートしか開いておらず、一般的なリソース監視がそのまま 持ち込めません。 プラグイン作っている暇はないので、以下を配置し完了! https://github.com/j3tm0t0/check_cloudwatch CPU使用率(Max/Min/Avg)、メモリ使用量、ディスク容量…

RDSの general_log を truncateする方法

RDS

general_log を truncate (正確にはrename&drop)するのに困ったのでメモ。 slow_log、general_log をAPIから参照でき、自動ローテートまでされる(ただし24h 分しか保持されない)ようになりましたが、途中でこれらのログ出力を無効にすると、 ローテートも止…

AWS RDSログ監視

RDS

2013/03/04に発表があった通り、RDSのログがAPI経由で見れるようになりました。 http://aws.typepad.com/aws_japan/2013/03/amazon-rds-access-to-logs.html 従来では、エラーログ、スロークエリログ、ジェネラルログは一旦テーブルに 吐き出し、テーブルに…

ELB オートスケール設定

ELB

ELBには、サーバ負荷やELB負荷をトリガーとして、ELB配下にぶら下がるEC2 インスタンスを増減できます。 これを AutoScaling と呼びます。 通常はCloudWatch+SNSで、AutoScalingさせるのがカッコいいやり方ですが、 本稿ではAutoScalingの基本動作を理解する…

Squidの疎通確認

今までは、telnet SquidサーバのIP 3128 で接続出来ればOKとしてましたが、 もっとカッコいい確認方法があったので、メモ。 ・変数設定 $ export http_proxy=http://SquidサーバのIP:3128/ $ export use_proxy=on ・wgetでSquidを通っているか確認 $ wget -S…

RDSのパラメーター変更

RDS

一般的にRDS(MySQL5.1系)起動後に設定変更をしたほうが良いパラメーターは 以下になるかと思います。(あくまで一般論) character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem utf8 character_set_…

RDSのパラメーター初期値

RDS

RDSのパラメーターを丸っとコピペしておきます。 MySQL5.1.63 の show variables の結果となります。 auto_increment_increment 1 auto_increment_offset 1 autocommit ON automatic_sp_privileges ON back_log 50 basedir /rdsdbbin/mysql-5.1.63.R1/ big_t…

s3cmdで5GB以上のファイルをS3にアップロードする方法

S3

以前に、s3cmdについて記事を投稿しましたが、どうやら 1.1.0-beta2 以上が 良さげです。 http://xoxo-infra.hatenablog.com/entry/2013/02/06/020930 ・リリース情報 http://s3tools.org/s3cmd-110b2-released 以前のバージョンだと、アップロード可能なフ…

AWS 構成図用アイコン

etc

オンプレ脳な状態で、いきなりAWSの設計をやるときに悶絶するのが、 構成図を書くこと。。 頭や手書きでは上手く纏まっていても、概念が普通のインフラと違い 過ぎて、ドキュメントに落とすのにかなり戸惑いました。 全体構成、EC2のサブネットやルーティン…

route53コマンドの結果をIPアドレスでsort

route53コマンドから、EC2インスタンスのIPアドレス一覧を取得して、 IPアドレスでsortするのに困ったので、メモ。 (AWSというか、Linuxの話ですね。。) sort -n でいけると思ったのですが、10.0.0.10 が先頭に表示されてしまいます。 (以下、ドメインIDは r…

PIOPSについて

EC2または、RDSのPIOPSに指定できる値について。 PIOPSは、あくまで高速化というより、一定のIOPS値を保証する と言った意味合いになります。 ベンチマークを取ると解るのですが、使わないほうがIOPS値が 高い場合があります。 ※RDSとEC2では上限値が異なり…

EC2料金比較表

EC2

EC2の料金一覧 パッと見れる料金一覧ってAWSは提示していない&ドル/時間で書いて あるから、結局、月にいくら掛かるのかわかりづらいですよね。。 料金改定あるし。 すんごいざっくりした覚え方は、 m1.small は 6000円/月 1つずつタイプを上げるごとに倍に…

EBSのPIOPSは使えるAZが決まっている件

EBS

PIOPS(プロビジョンIOPS)は、1アカウントにつき、2ゾーンまでしか使用 できないので要注意です! 東京リージョンは、3つのゾーン(1a/1b/1c)が存在しますが、そのうちどれか2つ のゾーンでしか、PIOPSを使用することが出来ません。 どのゾーンが使えるのかは…

MySQL innotop (リアルタイムにMySQLを確認)

MySQL使うなら必須!超絶便利な「innotop」 innotopとは、、、、 簡単に言うと、MySQL用 topコマンドです。(innodbのみ対応) クエリ実行状況、スレーブ状況、buufer pool・・・諸々リアルタイムに確認 出来ちゃいます。 show processlist とか打つのめんどい…

Route53 プライベートIPアドレスを登録

表題の件ですが、さっくりできます。 ただし、Route53に登録するということは、全世界から参照できてしまう ということを忘れずに! # というものの、プライベートIPなので外部から接続は出来ないはずです。 # 内部でDNS立てるか、hostsで運用するか、Route5…

EC2へpoderosaからログイン

EC2

概要 EC2は鍵認証でのSSHログインが必須となります。 AWS Magement Consoleから作成/ダウンロードした key pairs(秘密鍵。xxxx.pem) は、変換しないとpoderosaでは使えませんよというお話です。 OpenSSHの鍵ファイルは変換しないと使えません。 知らないと人…

AWSの環境変数について(CLI)

AWSをコマンドで操作する上で、設定したほうが良いと思われる環境変数 をご紹介します。 とりあえず、AWSのコマンドは全般的にオプションが長い! です。 結構な割合で、認証系オプションは必須だと思っています。 毎回打つのはちょっと辛いし、見難いし、hi…