TED TALKS

TEDといえば世界一有名なプレゼンテーションの場。

そのプレゼンスキルの解説本は数多く出版されているけど、本書はTED運営陣が書いた公式本。

「人にものを伝える」ことへの強いこだわりがTED本質なのだとしたら、この本が面白くないはずがない。

img_3018

この本は、ただの「プレゼンのテクニック本」ではなく「他人に何かを伝えるために大切なこと」を多く語っている。

本書の中で繰り返し語られるのは、形だけのプレゼンテクニックなんてどうでもよくて、あなたらしく人に考えを伝えられる一番いい方法を見つける努力をするべきだということ。

プレゼン内容を暗記するのがいいのか?

手元の原稿を読むスタイルではダメなのか?

についても最終的には、「あなたが人に伝えるために一番適した方法を選択してよい」としている。

これは楽な方法を選べということではない。

あなたにとって努力して暗記したほうが相手に伝わりやすいプレゼンができるのであれば、何か月も努力して、何度も練習して暗記するべきであるとしている。

 

とにかく全体を通して、「伝えるための努力」に一部の妥協もしないTEDの理念が感じられる。

TEDのプレゼンスタイルをマネすることが目的であってはならない。

誰かに伝えるために最大限の注意と努力を払った結果の集大成が、なんらかのプレゼンテーションテクニックとして切り抜かれてるに過ぎないと感じる。

 

1つ1つは、テクニックとして利用しても使える。

でも、それだけじゃ勿体ないと感じさせてくれる。

心の底から「伝えたい何か」が無ければ、全てのテクニックは無駄に終わる。

聴く人は、「来る途中で何を話そうか考えた」程度のことにはすぐ気が付く。

伝えるほどの価値がないものに聴く人は時間を割かない。

 

「伝えたいこと」があれば、本書は凄く役に立つ。

TEDが大切だと考える「伝えるための努力」が詰まっている。

そのまま使ってもいいし、自分に合わせてアレンジしてもいい(そのほうが伝えることにつながるなら)

 

余談だけど、本書の中で多数のTEDトークが例で出てくる。

トークの冒頭部分だけだったり、どのようなストーリー構成だったかでプレゼンの内容に触れたりするんだけど、自分が見たことのないプレゼンだと、そっちに興味を持っていかれて本の内容が頭に入らなかったので困った。

例えば

なぜ私たちは笑うのか

このプレゼンを聴いた後、もう我々はそれまでと同じように笑うという現象を考えられなくなった。全く違う見方を聴いている人に与えることが出来る。

みたいなことがさらっと書かれると、そもそもプレゼンの内容が気になって仕方がない。

巻末には、本書の中で紹介されたTEDトークが一覧になっていて、webから探せるようになっているので、ご安心を。

本の紹介 ゲームウォーズ

Oculus RiftやマイクロソフトのHolorensのようなVRデバイスが登場するSF小説「ゲームウォーズ(原題:Ready Player One)」は、VRでどんなことが出来るようになるかの可能性を感じさせてくれる。

IMG_2965

 

舞台は近未来のアメリカ。化石燃料が枯渇して貧富の差は激しく、主人公の少年は都市郊外のトレーラーハウスで貧しい生活をしている。

人類の現実世界はどうしようもなく行き詰ってるけど、ゴーグル型のVRデバイスで接続するOASISと呼ばれるコンピュータネットワークによる仮想世界は充実していて、教育、公共サービス、政治などを支えてる。(マトリックスや、サマーウォーズのOZに近いイメージ)

化石燃料の枯渇という世界観が、移動は金持ちの特権で、大多数の人は引きこもりでコンピュータの世界で生きているという。全人類引きこもり世界を作り出してる。

ある日、OASIS開発者死去のニューステロップが流れる。

この開発者は死に際して「OASISのどこかにイースターエッグを隠した。最初に見つけたものに遺産のすべてを譲る」というビデオメッセージを残した。

かくして、宝探しが始まる。

原作者は、「チャーリーとチョコレート工場」から物語のヒントを得たそうだ。

このOASISの開発者は、ジョニーデッブ演じる工場長と同じくらい変わり者。

開発者は、ステレオタイプな人付き合い苦手な重度のオタクで、とりわけ1980年代の映画、音楽、ドラマ、ゲームなどのポップカルチャーが好きだったということで、宝探しの謎解きにも大きくかかわってくる。

スターウォーズ、スタートレック、パックマン、ゴジラ、ガンダム、ダンジョンズ&ドラゴン、ウルトラマン、指輪物語etcetc

正直知らないものも多く、作品内に出てくるオタクコンテンツをどれだけ知っているかで、その人のオタク指数が測れそうなくらい。

アメリカの作家が書いたにしては、80年代のオタク文化ということで日本のコンテンツも多く出てくる。

物語終盤には、日本のコンテンツ活躍しまくりで胸熱な展開になります。

アメリカの本家Amazon.comで1万件以上の高評価なレビューがついていて、こんなオタクコンテンツ満載な作品でも、世界の人は大好きなんですねと思った。

2018年にはスピルバーグによって映画化されることも決定している。

 

VRデバイスの可能性という側面で見ても面白い作品。

物理的な学校が運営できないので、VRデバイスによって教育を行う。横を振り向けば仮想世界にクラスメイトが座っているし話しかけられる。仮想空間内なので、巨大な学校建て放題で税金も電気代くらいしか掛からない。

他にもVRの没入感を利用して、「映画の中の主人公になりきって演技をする。うまく演技ができるとポイントが、何回も間違えるとゲームオーバー」みたいな娯楽コンテンツ。さらにそれを他人が別の視点から観ることで、また別の娯楽として成立する。

マトリックスほど未来のSFじゃなくて、今のVRが普及すれば可能なことばかり。

映画が公開されたら「ゲームウォーズみたいな」というメタファーで語られることになるかもしれない。

本の紹介 君の名は。

IMG_2954

新海誠監督の映画「君の名は。」の原作小説

都会に住む少年と、田舎に住む少女が数日おきに入れ替わる体験をするという物語

映画の公開に合わせてTVCMが作られてるので動画みると雰囲気はつかめるはず。

新海誠の過去の作品はどれも、「男女の距離」をメインテーマにしている。

今回はこういう「男女の入れ替わらるが故の直接は会えない」感じかなと思わせておいて、中盤から全然違った。

ただの入れ替わり作品ではなく、中盤から記憶と運命に立ち向かう物語になっていて、予想を裏切られると共に、いい感じのSF(少し不思議)に仕上がっている。

シュタインズ・ゲートが好きな人には、刺さるんじゃないだろうか。

序盤に平穏なパートでキャラクターに生活感を持たせることで現実感を与えたところに、中盤から物語が加速して運命に立ち向かう構図になっているところはそっくりだ。

主人公のうちの男、立花瀧(たちばなたき)は、わりと前向きで行動派。

肝心な時に前に踏み出せず流されるだけだった新海誠の過去の作品の男どもとは違う。

過去の新海誠作品のような、もどかしい切ない世界が好きな人にとっては「コレジャナイ」と感じる人もいるかもしれないけど、キャラクターが行動的であることで物語が主体的に進むわけで、多くの人に見てもらう作品とするからには、やっぱりこっちのほうが好まれるような気がする。

映画はまだ公開されていないけど、きっと高く評価されるのだろう。

アニメーションでは第三者視点で物語を観れるだろうけど、小説版は一人称視点であることで主人公の男女が見ていないものは存在しない代わりに、内面から物語に触れられる。

アニメーションを観て作品を気に入ったら小説版も読んでみることをお勧めする。

本の紹介 ヘルシープログラマ

プログラマだけでなく1日の大半を座って過ごすような職に就いている人は、おおむね不健康。

腰痛、頭痛、手首の痛み、目の疲れなどなど、何かしら心当たりがある人が多いのではないだろうか。

健康を維持しするということは、アウトプットのパフォーマンスに非常に影響があることなので、使える言語が一つや二つ増えることよりも、健康であることを続けられることのほうがトータルのキャリア形成においては重要な意味を持っている。

エンジニアたるもの健康もHackだ。

イケてる開発プロセスのように、健康に対して少しずつ取り組み(インクリメンタル)、振り返りながら学習を繰り返す(イテレーティブ)ことが、きっと僕らなら出来る。

アジャイルなダイエットをして、健康のリファクタリングをしよう。1人で続かないならチームで!
IMG_2953「ヘルシープログラマ」はソフトウェア開発で目にすることの多い用語を使って書かれた「健康」に関する本だ。

ソフトウェア開発をしてる人には日常の用語に近いので読みやすい。書いている人が「こっち側」なので、親しみも感じる。

人体の筋肉や目の構造についても触れられているうえに、人体に対する「テスト」もしっかり記載されている。「テスト」の重要性分かるよね?

そして、「アジャイル」などの用語にピンとこない人にとっても、健康という題材を通じてソフトウェアだけに限らない取り組みのプロセスとして「ベストプラクティス」を学ぶいい機会になると思う。

最後の章には「イングレス」が紹介されている。今だったらポケモンGOになるのだろうか。

 

最後に、読むだけでは意味がない。実践してこそだ。

だれか一緒に健康に取り組もうよ!

 

 

本の紹介 シンギュラリティは近い[エッセンス版]

社内の興味が薄れないうちにもう一冊

今日のコンピュータサイエンスの世界で、もっとも未来が見通せている人を上げるとしたらレイ・カーツワイル以外には考えられない。

カーツワイルは、人工知能の権威で、近年はGoogleで人工知能チームを率いている人。

技術に基づく未来予測をする「フューチャリスト」として有名だけど、その考えは基本的には楽観主義。

技術的特異点<シンギュラリティ>の提唱者で、その到来を2045年を予想した。

技術的特異点とは、それまでの経験から予測できる技術的進化のスピードが、ある時点を超えると予測不可能なほど加速し、その先に起こることが予測不可能になるときの「ある時点」のこと。

人間と同等の知性を持つコンピューターがひとたび作られると、疲れも睡眠も不要なそのコンピューターは、自分よりも少し高度な知性を持ったコンピューターを人類よりもはやい速度で作成可能になる。

そして少し高度な知性を持ったコンピュータが、さらに高度な知性を作る。これらが加速度的に繰り返されることで人類を置いてけぼりにした未来が訪れるとしたらイメージできるだろうか?

 

こういった例えだと、「コンピュータによる人類の支配」という発想になりがちなんだけど、技術的特異点は、あくまで現在の感覚での未来予測が不可能になる時点での話なので、コンピュータによる支配とはちょっと違う。(結果的に同じだろうという「考えの人」もいる)

2007年にレイ・カーツワイルが書いた「ポスト・ヒューマン誕生」では、コンピュータのよる認知や知性の向上から、人類を超越した人類とは別の存在である<ポストヒューマン>について語られている。

今回紹介する「シンギュラリティは近い」は、このポストヒューマンから抜粋・再編集されたエッセンス版。

IMG_2919

元々が700ページ近い本だったのを1/3くらいにしてくれている。

エッセンス版とは言っても、本書を読むと「人類を超越した人類とは別な存在」ってのが、単純なコンピュータではないと理解できるかと思う。

現在のテクノロジーの正確な進歩の速度にふれつつ、人間の脳とコンピュータの関係を解き明かしながらカーツワイルの考える未来予想に触れていただきたい。

近い将来、脳の記憶や人格を電子的にコピーできたとして、「そのコピーはいったい誰なのか?」という論議が社会問題になる日は、そう遠くないんじゃないかな

本の紹介 火星の人

火星の人

個人的な2016年のベストSF小説。

 

有人火星探索で、とある事故により1人火星に取り残される物語。

ともかくリアルというか現実的。非現実的な超技術や宇宙人は出てきません。

物語は現代よりも未来の設定だけど、科学技術的には今できることの延長。というか今すぐにでも可能なんじゃと思わせるくらい。

中学生レベルの知識があれば作中の説明は十分理解できて楽しめる。

物語は火星に1人取り残される主人公がミッションを記録した日誌形式で進む一人称視点のパートと、主人公を救出しようとする地球NASAの複数の職員たちの様子を三人称視点で描くパートが交互に進む。

主人公の様子は、「今日はこんなことがあった」、「数日この問題に取り組んでた」といったような書き方がされる。

このためリアルタイムではないのだけれど、何か大きな物事に取り組む前には必ず「これから何をするのか」が記録される。

これって物語を読んでると親切だなぁと思う反面、なかなか学びがある。

水も空気も食料も限られた宇宙に1人。自分の命の危機が迫っていて解決しなければならない問題がいくらでもある状況の中で、とりあえず作業に着手する前に考えを整理しながらミッションログに記録するなんて、なかなか出来そうにない。

対して、地球NASA側は、まぁ政治的な判断というか組織って大変だなぁというのを教えてくれます。

職務や立場が違うので、何が正しいのかが対立することもしばしば。でも、それぞれの立場で正しいと思えることを進めて物語が進みます。

基本的に登場人物は善人でマジメ。

むしろ不真面目なのが、火星に取り残された主人公。

ミッションログなのに、それはそれはユーモアに溢れた表現で自分の身に降りかかった状態を説明してくれます。

おそらく本書が、インターネット上で発表され瞬く間に書籍化が決まり、その数か月後には映画化が決定するというシンデレラストーリーに至ったのも、この主人公の独特な語り口が主要因だったんじゃないかな。

この世界中に愛された軽快でユーモラスな表現は、引用するのが勿体ないので本書を手に取って読んでほしい。

 

本の紹介 人工知能は私たちを滅ぼすのか

社内で人工知能というキーワードに興味ある人が多かったようなので本を紹介してみたい。

IMG_2404

↑は、ここ数か月で買った人工知能関連の本

昔から人工知能については独学で調べていて、確率モデルや強化学習について遊び程度にプログラム組んだりしてた。

自分である程度プログラム書いて人工知能に挑戦した人はよくわかると思うんだけど、人間と自然に会話するようなSFに登場する人工知能って絶望的に遠い存在。

そんな体験からすると近年の人工知能の伸び率はすごい。

ペッパー君やIBMのワトソンなんか、もうSFの世界から出てきたんじゃないかと思える。

ディープラーニングがブレイクスルーとなりそれまでの限界を押し上げ、将棋や囲碁の世界では人間を打ち破るようになってきた。

先日、囲碁の世界チャンピョンを破ったGoogleの人工知能が人間には理解できない手を打ち続けて勝つ姿を見て、誰かが「ものすごくカンがいいのかもしれない」と評したように、今の最新の人工知能は膨大なデータを人間でいうところの経験に置き換えて、想像力が非常に高いレベルに達してきている。

今や人間の知性を超えるのは時間の問題だと考える人々も多い。

そんな人工知能分野も長い開発の歴史がありました。

なので興味あるといっても2045年問題をよく知らなかったり、レイ・カーツワイルの名前知らなかったりするんだったら、いきなりディープラーニングを勉強しようなどと無謀なことは考えずに、そもそも人工知能とは何かを学ぶ意味でも歴史を振り返るのがおすすめ。

ということで、最初に読むんだったらこの本。

大きく2部構成になっていて、第1部は「コンピュータの創成期」

人工知能開発の歴史はコンピュータ開発の歴史といっても過言ではなく、ジョン・フォン・ノイマン、アラン・チューリングという20世紀の天才が人類にもたらしたコンピュータ誕生から始まる100年の物語。

第2部は「人工知能の黙示録」

人工知能がこれから世界をどのように変えていくのか、そして人工知能が現実味を帯びる中で、そもそも知性や心とは何なのかを探求する物語。

 

人は心を作れるだろうか?

人工知能は、コンピュータだけでなく哲学的な探求なしには語れない。

本書は聖書からの引用がちょくちょく登場する。

人工知能が獲得する人を超えた知性を禁断の果実になぞらえるなど、正直、ちょっと宗教色強くないか?とも思える部分が無きにしも非ず。

ただ、逆に数式は全く出てこない。

「人工知能の勉強をする!」というよりは物語を読む感覚で人工知能分野のキーワードや問題をサクサク読んで理解できるんじゃないかな。

LINE BotでMiitomoもどきを作ってみた

LINE Bot流行ってますね
ビジネスアカウントの機能制限版なのに、みなさん嬉しそうでなによりです

ということで流行に便乗してLINE Bot作ってみた

Miitomoもどき
line_bot

Botに話しかけた内容を保存しておいて、他人の発言内容をランダムにチラ見せ

ほぼ拾ったコードのツギハギ
発言の保存するのにDB使ったけど、SSL証明書用意する手間に比べたら楽だよね

ソース

<?php

$json_string = file_get_contents('php://input');
$jsonObj = json_decode($json_string);
$to = $jsonObj->{"result"}[0]->{"content"}->{"from"};
$text = $jsonObj->{"result"}[0]->{"content"}->{"text"};

$url = "https://trialbot-api.line.me/v1/profiles?mids={$to}";
$headers = array(
	'X-Line-ChannelID: xxxx',
    'X-Line-ChannelSecret: xxxx',
    'X-Line-Trusted-User-With-ACL: xxxx'
);

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$profileJson = curl_exec($curl);

//スタンプとか無視するためにtextに値があることをチェック
if($text != ""){

	$profile = json_decode($profileJson);
	$name = $profile->{"contacts"}[0]->{"displayName"};
	$mid = $profile->{"contacts"}[0]->{"mid"};


	$pdo = new PDO();// DB接続的な何か

	$sql = 'select * from log_line_bot order by id desc limit 50';
	$stmt = $pdo->prepare($sql);
	$stmt->execute();

	$arr_res = array();
	while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {
		if($row['mid'] != $mid){//自分以外 SQLで絞り込まないのはインデックス面倒だから
			$arr_res[] = $row;
		}
	}

	$sql = 'insert into log_line_bot (mid,name,msg) values (?, ?, ?)';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($mid,$name, $text));

	if(count($arr_res) > 0){
		$res = $arr_res[array_rand($arr_res,1)];
		$res_text = "{$res['name']}がさっき「{$res['msg']}」って言ってましたよ";

		$response_format_text = array('contentType'=>1,"toType"=>1,"text"=>$res_text);
		$post_data = array("to"=>array($to),"toChannel"=>"1383378250","eventType"=>"138311608800106203","content"=>$response_format_text);

		$ch = curl_init("https://trialbot-api.line.me/v1/events");
		curl_setopt($ch, CURLOPT_POST, true);
		curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data));
		curl_setopt($ch, CURLOPT_HTTPHEADER, array(
		    'Content-Type: application/json; charser=UTF-8',
		    'X-Line-ChannelID: xxx',
		    'X-Line-ChannelSecret: xxx',
		    'X-Line-Trusted-User-With-ACL: xxx'
		    ));
		$result = curl_exec($ch);
		curl_close($ch);
	}
}

テーブル定義

create table log_line_bot(
id INT NOT NULL AUTO_INCREMENT,
mid CHAR(64) NOT NULL,
name VARCHAR(255) NOT NULL,
msg VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB;

新入社員の皆さんへ

今日から社会人となった新入社員の皆さん、おめでとう

私も15年前、入社式を経験し社会の一員となりました

皆さんよりもほんの少し(15年だけ)先輩の私から、入社式での挨拶代わりに
伝えたいことをここに残します

これから皆さんは、会社の先輩や上司からいろいろ学び成長をしていくでしょうが
どうか目指す先を目の前の先輩や上司にしないでください

皆さんの目指す先は、もっとはるか遠くにあります

今はまだ自分に実力がなかったとしても、隣の先輩がいかに優秀に見えたとしても
自分自身の可能性を信じてください
先輩を目標にしてしまったら、きっとその先輩を超えることは一生できません

自分には世界を変える力があると本気で信じてください

皆さんが新入社員研修を終えて私たちのチームの一員として最初に行う仕事は
「先輩から与えられた課題」でも、「誰にでもできる仕事」でもなく、いつか
皆さん自身が世界を変えるための「最初の1歩」なのです

そして、始めのうちは先輩や上司が先導してくれるであろう歩みを、なるべく早く
自分のものとしてください

そうでなければ、皆さんに待っているのは「先輩の劣化コピー」です

先輩や上司の意見を真正面から否定し、恐れることなく自論を展開できる
ようになってください
ダイバーシティ(多様性)は歓迎すべきもので、私たちのチームは
先輩や上司の意見を否定することを好ましいことであるとの価値観を
もっています。安心してください

そしていつの日か私たちを老害と呼び、自分たちこそが世界を変えることが
できるんだということを示してください

私は皆さんなら、それができると信じています

入社おめでとう

1日の中のトラフィックの変動に合わせてEC2の起動台数を増減させる方法

JAWS-UG Advent Calendar 2013 4日目の投稿です
昨日は@j3tm0t0さんのg2インスタンスを使って宇宙へ行こう!です

11/2の第9回JAWS-UG大阪で発表したときにはManualScalingとして紹介した方法の解説

ゲームに限らず、アクセス数の多いブログやニュースサイトなんかでは、例えばお昼の12時からの1時間のほうが、その前後の1時間に比べて数倍のトラフィックがくることがよくありますよね

1日のピーク値にあわせてサーバを用意しておくというのはイマイチ「クラウド」っぽくありません
そこで、毎日のトラフィックの増減の予想から、指定時間でサーバを起動させる仕組みを作ってみました

なお、指定時刻でサーバを増減させる仕組みを、AWSのドキュメントではScheduled Scalingっていうらしいです。AutoScalingのコマンドで実現可能です。
詳しくはこちら

この公式のScheduled Scalingは、既に運用面も含めてAutoScaling構成になっている環境では簡単に使えるのですが、今回はあえてAutoScalingを使わない方法をご紹介します

今回ご紹介する方法には、コチラのようなメリットがあります

・サーバ減少時にTerminateではなくStop状態でサーバを保存しておける。ログ消えない
・サーバ増加時にはStop状態のサーバをStartさせる。インスタンスの作成時間を短縮
・最新プログラムをサーバへダウンロードするときは前回Stop時からの差分のみなのでわりと高速
・最新プログラムの反映を待ってからELBにサーバを組み込む

ということで、まずは全サーバに次のような起動スクリプトを仕掛けます

#!/bin/bash
#
# Auto associate Elastic IP , rsync and register ELB
#
# chkconfig: 345 98 6
# description: rsync and register ELB
# processname: rsync-elb
#
export JAVA_HOME=/usr/lib/jvm/jre
export EC2_HOME=/opt/aws/apitools/ec2
export AWS_ELB_HOME=/opt/aws/apitools/elb

# 初期化
RSYNC_SERVER=""
ELB_SERVER=""

# 自分のインスタンスIDを取得
INSTANCE_ID=$(/usr/bin/curl http://169.254.169.254/latest/meta-data/instance-id)

# インスタンスIDを元にtagを取得
TAGS=`/opt/aws/apitools/ec2/bin/ec2-describe-tags -O アクセスキー -W シークレットキー --filter "resource-id=${INSTANCE_ID}"  --region ap-northeast-1|/usr/bin/awk '{print $4,$5}'`

# スペース区切りでtagが返ってくるので配列へ
ARR_TAGS=(`echo $TAGS`)

# tagのキーとバリューが交互に入っているのでループ
for i in `seq 1 ${#ARR_TAGS[@]}`
do
  if [[ 'rsync' == ${ARR_TAGS[$i-1]} ]];then
    RSYNC_SERVER=${ARR_TAGS[$i]}
  fi
  if [[ 'elb' == ${ARR_TAGS[$i-1]} ]];then
    ELB_SERVER=${ARR_TAGS[$i]}
  fi
#  キーとバリューが交互なので1つ飛ばす
  i=`expr $i + 1`
done

if [[ $RSYNC_SERVER != "" && $ELB_SERVER != "" ]]; then
#   rsync実行
  /usr/bin/sudo -u ユーザー /usr/bin/rsync -av --update -e "/usr/bin/ssh -i /home/ユーザー/.ssh/秘密鍵 -o \"StrictHostKeyChecking no\"" --include="いろいろ" --exclude="*"  "${RSYNC_SERVER}:/コピー元ディレクトリ"  /コピー先ディレクトリ
  if [ $? -eq 0 ]; then
#   rsync成功 ELB登録
    /opt/aws/apitools/elb/bin/elb-register-instances-with-lb  ${ELB_SERVER} --instances ${INSTANCE_ID} -O アクセスキー -W シークレットキー  --region ap-northeast-1
    if [ $? -eq 0 ]; then
#      ELB登録成功 Apache起動
      /etc/init.d/httpd start
    fi
  else
#   失敗はシャットダウン
    /sbin/shutdown -h now
  fi
else
# 失敗はシャットダウン
  /sbin/shutdown -h now
fi

ttyがない状態でもsudoが使えるように下記の修正


# visudo
コメントアウト
#Defaults    requiretty

そして、次のようなマネージメントコンソールからタグを仕掛けます
scaling

rsync:rsync先のサーバのPublicDNS
elb:elbのLoad Balancer Name

次に指定時間に増減させたいインスタンスIDを指定した起動・停止用スクリプトを作成します

起動用スクリプト

vi /home/ec2-user/EC2-server-start.sh 
------------------------------------------------------------------------------
#!/bin/sh
/opt/aws/bin/ec2-start-instances  -O アクセスキー -W シークレットキー  --region ap-northeast-1 i-XXXXXXXX i-YYYYYYYY
------------------------------------------------------------------------------
chmod +x  EC2-server-start.sh

停止用スクリプト

vi /home/ec2-user/EC2-server-stop.sh
------------------------------------------------------------------------------
#!/bin/sh
# ELB切り離し
elb-deregister-instances-from-lb ELBの名前 --instances  i-XXXXXXXX,i-YYYYYYYY  -O アクセスキー -W シークレットキー   --region ap-northeast-1

# ELB切り離し後、30秒ほど時間を空ける
sleep 30

# インスタンス停止
/opt/aws/bin/ec2-stop-instances -O アクセスキー -W シークレットキー  --region ap-northeast-1 i-XXXXXXXX i-YYYYYYYY
------------------------------------------------------------------------------
chmod +x  EC2-server-stop.sh

最後にお好みの起動・停止時間をcronで設定して終わり

明日は@ar1さんです。