BINDからRoute53に乗換えた後の運用費用を見積もってみた
- BIND使ってるけどRoute53安いらしいし使いやすそう、なによりbind脆弱性対応から開放されたい、、、
- ただ従量課金て聞くし実際いくらかかるのか怖い、、、
- という事で費用見積の仕方をまとめてみた。
Route53とは
Route53の特徴
- 高可用性
- 高い。全世界に分散配置されたネームサーバ4台に登録。
- SLA100%(停止した場合に使用量を払い戻し。違約金等は無し?)
- 高速
- 分散配置されたDNSサーバの内、ユーザーから最も論理的に近いサーバを自動選択
- コスト
- 従量課金
- 操作性
- 保守運用
課金体系
- ホストゾーン数課金+クエリ数課金で計算。クエリ数が金額の大部分を占める。
- ホストゾーン課金
- 0.50 USD/月,1ホストゾーン (ホストゾーン数<=25の場合)
- 0.10 USD/月,1ホストゾーン (25<ホストゾーン数の場合)
- クエリ数課金
- 0.40 USD/100万クエリ (月の総クエリ数<=10億クエリの場合)
- 0.20 USD/100万クエリ (10億クエリ<月の総クエリ数の場合)
- ホストゾーン課金
費用の求め方
ホストゾーン数の求め方
- bindのzoneファイル数をカウント
クエリ数の求め方
- named.confのloggingタグに以下を追記(以下設定だと10Mずつ30世代保管)
logging{ ・・・ channel query_log { file "/var/log/named/nsquery.log" versions 30 size 10m; severity info; print-category yes; print-severity yes; print-time yes; }; category queries { query_log; }; ・・・ }
- BIND再起動
- /var/log/named/nsquery.log.xxxという形でクエリログファイルが作成される。
- 指定したログディレクトリの開始、終了時間、リクエストログの行数を元に単位時間あたりのクエリ数を求める。
- 収集時間
- nsquery.logの最も新しいもの、古いもののクエリログの時間を確認
- 収集時間帯のクエリ数
- cat /var/log/named/nsquery.log* | wc -l
- 収集時間
参考
- 5分でわかる Route53
- Amazon Route53 使ってみた
Javascript入門⑤
ドットインストールの「Javascript入門」の学習メモです。 http://dotinstall.com/lessons/basic_javascript_v2
- 本日は以下を学習しました。
- #13 ローカル変数を使おう
- #14 即時関数を使ってみよう
ローカル変数を使おう
以下のように関数の中で定義した変数は、関数の外では使えない。
例だと、結果は、greetはコンソールに正常出力されるが、msgはundefinedでエラーとなる。function hello(name){
var msg="hello "+ name; //ローカル変数
return msg;
}
var greet=hello("Tom");
console.log(greet);
console.log(msg);関数もデータ型であるので、変数に入れることが可能。
この時、関数名を以下のように省略する事が可能(無名関数と言う。)var hello = function hello(name){
var msg="hello "+ name; //ローカル変数
return msg;
}var hello = function(name){
var msg="hello "+ name; //ローカル変数
return msg;
}
即時関数を使ってみよう
関数定義後に即呼び出したい場合の記法。 例)通常ならこう書く所・・・
短縮する事が可能。function hello(name){ console.log("hello"); } hello("Tom");
(function hello(name){ console.log("hello"); })("Tom");
ローカル変数として外からのアクセス拒否し、安全性を保つ意味でも使われる。
このままだとx,yは好きにアクセス出来てしまうので、以下のように変更(x,yへのアクセス不可)。var x=10;
y=20; console.log(x+y);(function (){
var x=10;
y=20;
console.log(x+y);
})();
Javascript入門④
ドットインストールの「Javascript入門」の学習メモです。 http://dotinstall.com/lessons/basic_javascript_v2
- 本日は以下を学習しました。
- #10 for文を使ってみよう
- #11 alert、confirm、promptを使おう
- #12 関数を使ってみよう
for文を使ってみよう
ループ処理(for文)
- 以下のように記述する。(下記は0から9までをconsole出力するプログラム)
for (var i =0; i<10;i++){
console.log(i);
}
ループ処理の特別処理(while,forで使用可能)
- ループ処理を抜ける(break)
- 以下記述だと、0,1,2,3,4はコンソール出力されるが、5でループが終了する。
for (var i=0;i<10;i++){
if(i===5){
break;
}
console.log(i);
}
- 以下記述だと、0,1,2,3,4はコンソール出力されるが、5でループが終了する。
- ループ処理を1回スキップ(continue)
- 以下記述だと、0,1,2,3,4のコンソール出力の後、5がスキップ。
さらに6,7,8,9がコンソール出力される。for (var i=0;i<10;i++){
if(i===5){
break;
}
console.log(i);
}
- 以下記述だと、0,1,2,3,4のコンソール出力の後、5がスキップ。
alert、confirm、promptを使おう
ポップアップメッセージ表示(alert文)
- 以下のように記述する。メッセージ出力のみ。
alert("hello");
ポップアップ確認メッセージ表示(confirm文)
- 以下のように記述する。確認項目への返答が求められる。
- 以下のように変数としてif文に組み込むことも可能。
if (confirm("本当に削除しますか?")){
//削除処理
}
ポップアップ応答メッセージ表示(confirm文)
- 以下のように記述する。応答が求められる。
var name= prompt("お名前は?");
console.log(name); - 以下のように初期設定も可能。
var name= prompt("お名前は?","名無しさん");
関数を使ってみよう
- 関数(function)
- 複数の処理をまとめて名前をつけたもの。
- 繰り返し行うような処理をまとめておき、1つの処理群を使いまわしすることが出来る。
基本的な記述方法は以下。
function 関数名(引数){
処理
}以下記入例
function hello(name){
return "hello"+name;
}
var greet=hello("Tom");
alert(greet);
Javascript入門③
ドットインストールの「Javascript入門」の学習メモです。 http://dotinstall.com/lessons/basic_javascript_v2
- 本日は以下を学習しました。
- #07 真偽値と三項演算子を使おう
- #08 switch文を使ってみよう
- #09 while、do ... whileを使ってみよう
真偽値と三項演算子を使おう
真偽値
- 文字列の場合
- 空文字はfalse、それ以外はtrue
- 数値の場合
- 0、NaNのみfalse、それ以外はtrue
- オブジェクトの場合
- nullはfalse、それ以外はtrue
- null、undefinedの場合
- false
真偽値で判定する条件文
if(x){
真の場合の処理
}
三項演算子
以下は同じ意味。後者の記述を三項演算子と呼ぶ
var a,b,c
if(条件){
a=b;
} else{
a=c;
}
a=(条件)? b:c;
switch文を使ってみよう
switch文
- 以下のように記述する。各case以外の場合はdefaultケースの内容が実行される。
var signal="red";
switch (signal){
case "red":
console.log.("stop");
break;
case "green":
console.log.("go");
break;
case "green":
console.log.("slow down");
break;
default:
console.log.("wrong signal");
break;
}
while、do ... whileを使ってみよう
- ループ処理(while文)
- 以下のように記述する。(下記は0から9までをconsole出力するプログラム)
vai i=0;
while(i<10){
console.log(i);
i++;
}
- 以下のように記述する。(下記は0から9までをconsole出力するプログラム)
- ループ処理(do...while文)
- 以下のように記述する。(下記は0から9までをconsole出力するプログラム)
vai i=0;
do{
console.log(i);
i++;
} while(i<10)
- 以下のように記述する。(下記は0から9までをconsole出力するプログラム)
- whileとdo...whileの違いはループ文の処理を1度回すか回さないか。
- while
- ループ判定が最初に来る。条件に合わなければループ文はスルー。
- do...while
- ループ判定が後に来る。条件にあわなくてもとりあえず一度ループ文を回してから考える。
- while
Javascript入門②
ドットインストールの「Javascript入門」の学習メモです。 http://dotinstall.com/lessons/basic_javascript_v2
本日は以下を学習しました。 ・#04 数値を使ってみよう ・#05 文字列を使ってみよう ・#06 if文を使ってみよう
数値を使ってみよう
数値
- 以下のような実数が使える。
- 10 / 2.5 / -1.5
演算子
- 算術演算子
- 「+」「 -」「 *」「 / 」「%(余り)」
- 代入を伴う演算子
- +=
以下は同じ意味。x = x + 5
x += 5;
- +=
- 単項演算子
- 「++」「--」
x = 6;
x ++; (この時 x = 7)
- 「++」「--」
文字列を使ってみよう
文字列
表現方法
- 「"」か「'」で囲む
msg=" 文字列は以下のように記述です。"
- 文字列連結の時は以下のように表現
msg = "hello," + "world"; console.log(msg)の出力結果は「hello,world」となる。
- 文字列+数値の連結は、文字列
msg= "今年は" + 2014 console.log(msg)の出力結果は、「今年は2014」という文字列となる。
- 「"」か「'」で囲む
特殊表現
- 以下は例外として「\」を頭に付けて表記する。
http://msdn.microsoft.com/ja-jp/library/2yfce773(v=vs.94).aspx- \n 改行
- \t タブ
- \' シングルクオーテーション
- \" ダブルクォーテーション etc...
- 以下は例外として「\」を頭に付けて表記する。
if文を使ってみよう
Bloggerからはてなブログへブログデータを楽に移行する方法
ブログデータの移行が10分で出来てしまった
Bloggerのエクスポートデータを、はてなブログでMovebleType形式で行うとうまくいくらしい。。 とりあえずやってみました。
1. Bloggerダッシュボードの左メニューにて「設定」>「その他」を選択
2. 「ブログツール」欄にて「ブログからエクスポート」を選択
3. エクスポートデータの変換①(Blogger形式→Wordpress形式)
http://blogger2wordpress.appspot.com/
4. エクスポートデータの変換②(Wordpress形式→MovebleType形式)
http://komono.jp/contents/software/web/wxrtomt/
5. はてなブログダッシュボードの左メニューにて「インポート」を選択
6. 「MovebleType」タブを選択の上、エクスポートデータを選択して「文字コード選択へ進む」
7. 「utf-8」で正しく文字が表示されている事を確認して「インポートする」
以上で無事データの移行は完了です!!
しかし課題がまだ残っていて、、、
- エクスポートしたデータはHTML形式で認識されており、Markdown形式に編集できない。。。
作り直し以外に良い方法がないものか検討中です。 - バックアップのために、はてなブログからのデータエクスポート方法も探さないと。
Bloggerからはてなブログに引っ越してみた
引越ししました
3ヶ月程Bloggerでブログを書いていましたが、この度はてなブログへ引っ越ししました。
とりあえずテスト投稿です!
まずは乗り換えの理由を少しだけ。
Blogger環境だとMarkdown対応に難あり?
遅まきながらMarkdownの使いやすさに目覚め、
ブログに導入しようとした所、Bloggerではなんと未対応とのこと。
そこで、以下をトライしてみました。
- Markdown→HTML変換プログラム(showdown.js)の記述をHTMLテンプレートに追加
- → 各投稿毎に毎回HTML文の編集を行う必要があり使いづらい。投稿までの負担大。
- Markdown対応ブログエディタ(Stackedit)で直接投稿する
- → 自分の環境だと、Markdown形式の投稿だとテンプレートのデザインが変わってしまう。
(多分選択しているテンプレートデザインのせい?)
HTML形式の投稿だとMarkdownの再現が不十分。
- → 自分の環境だと、Markdown形式の投稿だとテンプレートのデザインが変わってしまう。
結果、僕の環境だと上手くいかず、思い切って引越しすることに決めました。
いくつかのブログを見た結果、選んだのは
綾鷹、、ではなく、はてなブログでした。
はてなブログのここが良かった
- Markdownが使える
- インターフェースがわかりやすい
- 管理メニューで各サービスへのリンクが簡単(管理画面のサイドバーで各サービスが選べるのが嬉しい!)
- 始めるまでのハードルが低い。(ブログ開設ボタンを押して2、3ステップですぐ開設。)
- アクセス解析画面が見やすい
- デザインがシンプル、カスタマイズ出来る ※ Tumblr、Wordpressも候補に上がりましたが、 思い切り主観ですがTumblrより管理が簡単そうだし、Wordpressは始めるまでの敷居が高そうなので。。。
ここがあるとさらに嬉しい
- モバイル、タブレットの専用アプリがあると嬉しい
いざ引っ越ししてみると、
まだ始めたばかりですが、ダッシュボードの使いやすさ、 Markdownのブログ投稿のシンプルさ、みやすさに感動です!
過去ブログについても、ただいま移行を進めてますので、しばらくお待ち下さい。。。