Recommended
スタートアップカフェコザ - 最新 AI / Machine Learning 事情
CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い
Gmo media.inc 第9回西日本ossの普及を考える会
【Jpug勉強会】10大ニュースで振り返るpg con2013
ioMemoryとAtomic Writeによるデータベース高速化
[db tech showcase Tokyo 2016] C32: 世界一速いPostgreSQLを目指せ!インメモリカラムナの実現 by 富士通株式会...
perfを使ったPostgreSQLの解析(前編)
zozotown real time linkage infrastructure
本当にあったHadoopの恐い話Blockはどこへきえた? (Hadoop / Spark Conference Japan 2016 ライトニングトー...
使ってみた!ioMemoryで実現する噂のAtomic write!
Aerospike xdr (Cross Datacenter Replication)
Yahoo! JAPANにおけるApache Cassandraへの取り組み
AutoScale×ゲーム ~運用効率化への取り組み~
【Hinemos World 2013】B-4:Hinemosに新機能ストレージバックアップオプションが登場!(株式会社アトミテック/デル・ソフトウェア株...
Amazon RDS for PostgreSQL ( JPUG 2014夏セミナー) #jpug
[C13] フラッシュドライブで挑むOracle超高速化と信頼性の両立 by Masashi Fukui
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AZAREA-Clusterセミナー(クラウドEXPO2013春)
More Related Content
スタートアップカフェコザ - 最新 AI / Machine Learning 事情
CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い
Gmo media.inc 第9回西日本ossの普及を考える会
【Jpug勉強会】10大ニュースで振り返るpg con2013
ioMemoryとAtomic Writeによるデータベース高速化
What's hot (20) [db tech showcase Tokyo 2016] C32: 世界一速いPostgreSQLを目指せ!インメモリカラムナの実現 by 富士通株式会...
perfを使ったPostgreSQLの解析(前編)
zozotown real time linkage infrastructure
本当にあったHadoopの恐い話Blockはどこへきえた? (Hadoop / Spark Conference Japan 2016 ライトニングトー...
使ってみた!ioMemoryで実現する噂のAtomic write!
Aerospike xdr (Cross Datacenter Replication)
Yahoo! JAPANにおけるApache Cassandraへの取り組み
AutoScale×ゲーム ~運用効率化への取り組み~
【Hinemos World 2013】B-4:Hinemosに新機能ストレージバックアップオプションが登場!(株式会社アトミテック/デル・ソフトウェア株...
Amazon RDS for PostgreSQL ( JPUG 2014夏セミナー) #jpug
[C13] フラッシュドライブで挑むOracle超高速化と信頼性の両立 by Masashi Fukui
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
Similar to Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語 (20) AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AZAREA-Clusterセミナー(クラウドEXPO2013春)
S3 を単純ストレージとして 利用する手段の比較
IoTのビジネスをデバイス・ゲートウェイから見てみる / Develpers.IO 2016
(Fix)Azure Network Security Group(NSG)のおさらい
【15-B-1】AmazonのDevOpsを支えるAWSクラウド
CloudStack Collaboration Conference 2013 レポート
NTT DATA と PostgreSQL が挑んだ総力戦
de:code 2019 Cloud トラック 総まとめ!
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
[AWS re:invent 2013 Report] AWS New EC2 Instance Types
Anchors Aweigh!! - re:Invent報告@re:Port 2016
More from Takashi Someda (13)
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏
Nulab's DevOps tool stack based on AWS
「どうすれば価値を生み出すか」を知るために ヌーラボで行っていること 〜 落ち穂拾い 〜
大企業、未踏ソフトウェア、起業 様々な働き方から学んだ「モノ作り」のエッセンス
Service Configuration Management for Rapid Growth - demo 10 steps to build pi...
Service Configuration Management for Rapid Growth
How we spread out our service globally by utilizing AWS and open source soft...
Basic architecuture and operation concept of Backlog and Cacoo
MessagePack RPC によるドキドキ非同期通信 @関ジャバ 2012年度8月
AWS ではじめる Programmable Cloud
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語2. Five Worlds by Joel Spolsky
受託
パッケージ 組み込み
使い捨て ゲーム
Posted at May 6, 2002 on http://www.joelonsoftware.com/articles/FiveWorlds.html
3. About me
染田貴志 (SOMEDA Takashi)
http://d.hatena.ne.jp/tksmd
株式会社ヌーラボ所属
Backlog の開発・インフラ・サポート
Cacoo のインフラ
JAWS UG 京都支部長
関西 Java エンジニアの会 常連
jaws-ug santo 2013
4. Job history
2010年
Nulab Inc.
エンジニア 2008年
チョイスタジオ
CTO
2006年
四次元データ
(現シナジーマーケティング)
技術研究部員 2005年
未踏ソフトウェア
フリーランス
2002年
Sun Microsystems
(現Oracle)
ベンチマークエンジニア
jaws-ug santo 2013
9. Team
jaws-ug santo 2013
10. Background
小さく、役割にとらわれないチーム
俊敏さ > 慎重さ
jaws-ug santo 2013
11. Agenda
インスタンス構成の設計
内部ホスト名の解決
データストア
静的リソースの配信
まとめ
jaws-ug santo 2013
12. インスタンス構成の設計
http://www.flickr.com/photos/83633410@N07/7658268052/in/photostream/
14. Multiple AZ
ネットワーク遅延が問題になったことはない
AZ間での通信障害に対する監視はしておく
まだゾーン障害を経験してない..
jaws-ug santo 2013
16. Multi tenant
ビジネス向き or 一個人向き
影響範囲が限定される安心感は(かなり)大きい
外部サービスとの連携に工夫が要る場合も
jaws-ug santo 2013
19. fabric
@task http://fabfile.org/
@roles(„app‟)
def all_release():
sudo(“service tomcat stop”)
put(“new.war”,”/tmp/new.war”)
run(“cp –p /tmp/new.war /webapps/ROOT.war”)
sudo(“service tomcat start”)
@task
@hosts(„web01‟,‟web02‟,‟mail01‟,‟mail02‟)
def fluent_agent_reload():
sudo("/etc/init.d/fluent-agent-lite reload")
# pip でインストール
$ pip install Fabric
# 実行
$ fab app.all_release
jaws-ug santo 2013
20. fabric
シンプル!シンプル!シンプル!
boto と組み合わせて使うことで多様な操作が可能
Perl の cinnamon も近いイメージ
https://github.com/kentaro/cinnamon
jaws-ug santo 2013
22. Cloudwatch BK?!
mon-put-metric-alarm
--alarm-name ”${InstanceName}"
--metric-name CPUUtilization
--namespace AWS/EC2
--statistic Average
--period 300
--evaluation-periods 2
--threshold 100
--unit Percent
--comparison-operator GreaterThanThreshold
--dimensions InstanceId=“${InstanceId}”
--insufficient-data-actions arn:aws:sns:${SNS_TOPIC}
--ok-actions arn:aws:sns:${SNS_TOPIC}
InsufficientData で障害の予兆を検知
jaws-ug santo 2013
23. 内部ホスト名の解決
http://www.flickr.com/photos/nicmcphee/2558167768/
24. What‟s the problem?
内部IPはDHCPで配布
(VPCは固定も可能)
起動時だけでなく、stop/start でも変わる
役割分割するとインスタンスは必然的に増えがち
jaws-ug santo 2013
25. Approach
EIP + Public DNS 名
/etc/hosts ファイル自動更新
内部 DNS
jaws-ug santo 2013
27. /etc/hosts
$ ec2din --filter "tag:Name=*" --filter "instance-state-name=running" | awk '
BEGIN{
fmt = "%-14s %sn" ;
printf fmt, "127.0.0.1","localhost localhost.localdomain";
}
{
if($1 == "INSTANCE"){ ip = (index($15,"10") == 1) ? $15 : $16 }
else if($1 == "TAG" && $4 == "Name" ){ printf fmt, ip, $5 }
}'
jaws-ug santo 2013
28. /etc/hosts
台数少ないうちはアリ
dnsmasq と併用する運用も
自動更新するかどうか検討要
jaws-ug santo 2013
29. Internal DNS (bind)
外部への問い合わせ
はAWS提供の内部
DNSサーバへ
起動時にnsupdateで
自身のホスト名と
IPアドレスを登録
jaws-ug santo 2013
30. Internal DNS (bind)
bind でやる場合は Dynamic DNS
PowerDNS 使うとアプリ的には楽かも
再帰を許可するかしないかは悩みどころ
jaws-ug santo 2013
31. Internal DNS (bind)
amazonaws.com は外部に再帰問い合わせしてはダメ
zone "amazonaws.com" {
type forward;
forward only;
forwarders {172.16.0.23;};
};
jaws-ug santo 2013
32. Internal DNS (bind)
アプリ側で名前解決のキャッシュは短めに
java -Dsun.net.inetaddr.ttl=10 -Dsun.net.inetaddr.negative.ttl=10
jaws-ug santo 2013
39. We love RDBMS, again
RDS使えれば使おう
自前管理でも打てる手は結構ある
クラウドだから NoSQL 、その前に
jaws-ug santo 2013
44. Cost
2010年9月実績 $16.88
(55.628GB転送)
2013年1月実績 $79.6
(327.88GB転送)
jaws-ug santo 2013
47. Dynamic content delivery
<script
src="${contextPath}/.shared.js/v1:js/jquery.js,js/underscore.js,js/bootstrap.js">
</script>
jaws-ug santo 2013
51. まとめ
jaws-ug santo 2013 http://www.flickr.com/photos/nauright/2662160957/
52. Design Basics
障害の発生をなくすことより、
障害発生時に
迅速に元に戻せる仕組み
を意識して設計、運用する
jaws-ug santo 2013
53. What AWS brings us ?!
サービスを運用しはじめてから、
次にとる舵を選ぶことが出来る柔軟さ
jaws-ug santo 2013
54. What AWS brings us ?!
小さなチームでも
世界で戦えるサービスを提供できる
力を与えたということ
jaws-ug santo 2013
56. Thanks!!
ありがとうございました
ご質問あればどうぞ!
jaws-ug santo 2013
57. JAWS-UG 京都支部のこれまで
発足 : 2011年4月
2011/04/15 第一回勉強会
2011/11/10 第二回勉強会
2012/06/20 第三回勉強会
次回は 2012/11 2013/05月頃 ?!
http://jawsug-kyoto.g.hatena.ne.jp/
58. コアメンバ
@tksmd
@yehara
@hrsm1979
@tan_go238
@shimokawa
京都リージョン1 東 京都リージョン2