kenju's blog

About Programming and Mathematics

Cloud Architecture

社内勉強会で "Dynamo: Amazon’s Highly Available Key-value Store" について発表した

Background 以前も書いたが、論文『Dynamo: Amazon's Highly Available Key-value Store』を読んだときに、Dynamo を手がかりに分散コンピューティングにおける Consistent Hashing や Quorum Model などのアルゴリズムについて知ることができた。 itiskj.ha…

Server-less Architecture with AWS API Gateway x Lambda

AWS API Gateway x Lambda を、 private endpoint つまり、internal な application からのみアクセスを許す microservices Python runtime を Lambda で。adhoc な機械学習コンピューティングサーバーとして。 Lambda は stateless DynamoDB や S3 などの外…

Reading Notes of "Designing Data-Intensive Applications"

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems作者: Martin Kleppmann出版社/メーカー: O'Reilly Media発売日: 2017/04/02メディア: ペーパーバックこの商品を含むブログを見る Finally, I fi…

Reading Notes of "Designing Data-Intensive Applications" Chapter 12: The Future of Data Systems

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems作者: Martin Kleppmann出版社/メーカー: O'Reilly Media発売日: 2017/04/02メディア: ペーパーバックこの商品を含むブログを見る Reading Notes…

AWS Dev Day Tokyo 2018 Day 3 に参加してきました

https://aws.amazon.com/jp/aws-devday-tokyo-2018/ 現在広告チームでの Microservices 化に取り組んでいるため、他社の事例や導入時の工夫や苦労を学びたかったので、Day 3 だけ参加してきた。 現在の業務でまさに悩んでいる・取り組んでいる課題について、…

Reading Notes of "Designing Data-Intensive Applications" Chapter 11: Stream Processing

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems作者: Martin Kleppmann出版社/メーカー: O'Reilly Media発売日: 2017/04/02メディア: ペーパーバックこの商品を含むブログを見る Reading Notes…

Reading Notes of "Designing Data-Intensive Applications" Chapter 10: Batch Processing

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems作者: Martin Kleppmann出版社/メーカー: O'Reilly Media発売日: 2017/04/02メディア: ペーパーバックこの商品を含むブログを見る Reading Notes…

『クラウドゲームをつくる技術ーマルチプレイゲーム開発の新戦力』を読んだ

読んだ感想。 クラウドゲームをつくる技術 ──マルチプレイゲーム開発の新戦力 (WEB+DB PRESS plusシリーズ)作者: 中嶋謙互出版社/メーカー: 技術評論社発売日: 2018/09/20メディア: 単行本(ソフトカバー)この商品を含むブログを見る 実際に現場で使われて…

Reading Notes of "Designing Data-Intensive Applications" Chapter 6: Partitioning

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems作者: Martin Kleppmann出版社/メーカー: O'Reilly Media発売日: 2017/04/02メディア: ペーパーバックこの商品を含むブログを見る 「Reading Not…

Reading Notes of "Designing Data-Intensive Applications" Chapter 5: Replication

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems作者: Martin Kleppmann出版社/メーカー: O'Reilly Media発売日: 2017/04/02メディア: ペーパーバックこの商品を含むブログを見る 社内の輪読会…

論文『Dynamo: Amazon's Highly Available Key-value Store』を読んだ

AWS DynamoDB がサービスとしてローンチする前、Amazon 社内でショッピングカート機能などに利用されていた "Dynamo" の設計について書かれた論文。DynamoDB を普段使う身として、そもそもどういう課題を解決しようとしていたのか、そのためにどういった解決…

論文『Orleans: Distributed Virtual Actors for Programmability and Scalability』を読んで

https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Orleans-MSR-TR-2014-41.pdf "Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems" の Chapter 4 を読んでいて、章末の文献…

"Serverless Streaming Log Architecture ~ Theory & Practice ~" Presentation Slides

I had a talk at "adtech研究会", where we learn, discuss, and hands-on advertisement technology with other programmers from adtech companies in Tokyo. https://speakerdeck.com/kenju/serverless-streaming-log-architecture-theory-and-practice

Write Kinesis Firehose Lambda Translation Layer in Golang

You can use Lambda to convert data of Kinesis Data Firehose. This is the transformation process of ETL, and called "Data Transformation Flow" officially. https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html Data Structu…

Resources To Read Before Developing Streaming Engine Architecture

I am developing a realtime log architecture for advertising delivery system. While researching about best practices or common solution, I found a bunch of useful resources to read through. Here is a memo to myself about those resources. St…

AWS Lambda の Versioning と Alias 機能についてメモ

資料:AWS Black Belt Techシリーズ AWS Lambda Updates https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-aws-lambda-updates tl;dr Lambda は明示的にバージョン管理ができる エイリアス機能を使うことで、「本番用」かどうかなど…

動画配信におけるHTTP Live Streamingの概要について

動画配信プラットフォームを設計している。 Streaming/Download2種類の配信方法がある 配信方法には大きく分けるとStreaming/Downloadの2種類 + 他の動画プラットフォームを利用する手法が考えられる。 Streaming Download Pre Download Progressive Downloa…

TerraformでModulesを用いてResourcesの保守性UP

Terraformでは、Modulesを使うと、リソースを分割管理することができる。 保守性・メンテナンス性が向上するので、Terraformで複数リソースを管理している場合にはおすすめ。 www.terraform.io メリット main.tfの肥大化を避けられる git submodulesに切り出…

CloudFrontを経由してS3のPrivate Objectsを配信する実装方法まとめ

tl;dr CloudFrontを経由してS3のPrivate Objectsを配信する実装方法には「署名付きURLを用いた認証」と「署名付きCookieを用いた認証」の2パターンが存在 サービスの要件として「絶対にURLの漏洩によるデータ流出のリスク」を避けなければならない場合、「署…