AWS re:Invent 2014 breakout session 2日目
二日目もKeynoteとsessionがありました。メモを残しておきます。
参加したセッション
- SPOT305 -- Event-Driven Computing on Change Logs in AWS
- BDT401 -- Big Data Orchestra - Harmony within Data Analysis Tools
- APP303 -- Lightning Fast Deploys with Docker Containers and AWS
- GAM404 -- Gaming DevOps: Scopely's Continuous Deployment Pipeline
- SDD424 - Simplifying Scalable Distributed Applications Using DynamoDB Streams
新サービス類
気になったものだけ。
ECS: EC2 Container Service
- AWS | Amazon EC2 Container Service
- Expanding The Cloud - Introducing The Amazon EC2 Container Service - All Things Distributed
コンテナのマネジメントの仕組みを提供するもの。EC2インスタンスにあるものと同じように、containerに対してもIAM Roleやsecurity groupを適用したり、EBS volumeをできたりできる。apiではclusterの立ち上げと、taskとしてのcontainerの割り当てを行うことができ、高速にコンテナを扱うことができる。
Amazon Lambda
AWS Lambda - Run Code in the Cloud AWS Lambda
Lambdaはその名の通り、あのLambdaです。EC2インスタンスを自分で用意する必要もありません。手続きを定義して渡すのみ。そうするとそこに渡されたデータをよしなに扱うことができる。
所感
- これが今回の発表の中ではもっともdisruptiveなものだと思います。まだまだ取り組みの種の段階では有りますが、いわゆるworker側を簡単に、しかもfull managedなものとして提供できるようになったのは大きい。
- Kinesisが去年発表されたわけですが、Kinesis Applicationを自分で書いて、かつauto scalingの設定も自分でしないといけない。Kinesis Client Libraryにのっかると簡単にかけるものの、リソース管理をする必要はなくならない。それがこのLambdaだと、いわゆるLambdaを書けば動くわけです。
- また、今回、S3 notificationやDynamoDB Streamが追加されたことによって、いわゆるEventを受け取れるsoruceが増えました。例えばs3の特定のpathにfileがuploadされた際にその内容をparseして一部をDynamoDBにinsertする・・・というようなことが、EC2でworkerを立てなくてもできるわけです。
- fluentdからLambdaに渡してfilterとかexecっぽい処理はそっちに分離したいなぁと思ったり。
breakout session
SPOT305 -- Event-Driven Computing on Change Logs in AWS
it's all about timeliness and agility
最近のもろもろのupdateによってEvent-Drivenなcomputingが可能になってきたね!というセッション
- 写真共有サービスで登録しているユーザが画像をuploadするケースを考える
- event-drivenのanti pattern
- 全量をscanするような作りにはしないこと
- 1つ1つのイベントで大きな処理をしない
- 全量をscanするような作りにはしないこと
所感
- これは良い流れ、S3 notification便利っぽい
- DynamoDB Stream, S3 notification, Kinesis, SQSといったreal-timeな通知をする側と、そのeventを受け取る側(lambda, SQS, SNSなど)が今後拡充されていくんじゃないかと期待
- 例えばCloudTrailでs3に流れてきた
- batchでs3 bucketをscanしてその中にある何かを探して1つの小さなoperationしかやらない、みたいなopsを排除していきたい
BDT401 -- Big Data Orchestra - Harmony within Data Analysis Tools
SQSとかKinesisとかCloudSearchとか連携させて使うにはどういうarchitectureになるか、っていう話
所感
- 知ってる話ばっかりだったので割愛
APP303 -- Lightning Fast Deploys with Docker Containers and AWS
Dockerの中の人の発表
Dockerの基礎的な説明がメイン。今回のカンファレンスではコンテナに対する期待度が高かったようで、大人気のセッションだった。
- haproxy -> flask -> redisな構成をDockerでdeployするデモ
docker hosts
が便利- どんなことをしているのかは awsapp/deploy.sh at master · nathanleclaire/awsapp みればわかる
imageでrollbackできるのは便利
rollback) docker hosts active ${DOCKER_HOST_NAME} run_app_containers_from_image ${REMOTE_IMAGE}:$2 docker hosts active default
remote hostsでも
docker ps
で確認できる
所感
- Docker自体の説明とデプロイ方法の説明だった
- 内容はGitHubに載っているのであれだけど、デモが手際よくてエキサイティングだった
- FlaskからTornadoに切り替えるデモとかなかなかおもしろかったというか、その発想はなかった
GAM404 -- Gaming DevOps: Scopely's Continuous Deployment Pipeline
Scopelyというモバイルのゲーム会社
- ざっくりいうと、Blue/Green Deploymentはごりっとしてるから中間っぽい感じの方法でやってるよという話
- blue/green deployment
- 2つの完全なクラスタ
- 完全な受け入れテストができること
- 問題
- CYAN deployment
- greenとblueを混ぜてみた
- canary releaseみたいなもの
- acceptance testsの知識は完全ではない
- stagingで
- 1つのelbをつかう
- warm upいらない
- dns変更しなくていい
- 多くのものを動かさなくてもいい
- ビルドへのアプローチ
- golden ami approach
- 全てのソフトウェアをamiにいれておく
- 起動時にデプロイ
- base amiを用意するものの、起動後のインスタンスにprovisionする方式
- golden ami approach
所感
- ゲーム企業とかだとユーザ体験に直にかかわるので結構センシティブなんだろうなと思った
SDD424 - Simplifying Scalable Distributed Applications Using DynamoDB Streams
DynamoDB Streamの話がメイン
- 話としては前のセッションにも出てたんで割愛
所感
- cross region replicationしたい要望ってどれくらいあったんだろう
- streamのインタフェースをKinesisに整えたのは素敵