Slide 1

Slide 1 text

RDB ばっかり使ってきた エンジニアが DynamoDB を使って感じたこと 株式会社オークン 笹川直輝 竹内智哉

Slide 2

Slide 2 text

笹川 経歴 ガス系SIer 名刺管理サービスで常駐 株式会社オークン 受託開発 今後やりたいこと 保育業界を変えて行きたい ※今やろうとしていることはITと全く関係あ りません 使ったことがあるAWSのサービス S3 Lightsail Cognito(コグニート)等

Slide 3

Slide 3 text

竹内 経歴 総合商社 経理部でレシート整理 株式会社オークン 受託開発 今後やりたいこと IoT機器の発明(ハードウェア学習中) 使ったことがあるAWSのサービス CodePipeline CloudWatch Lambda

Slide 4

Slide 4 text

はじめに

Slide 5

Slide 5 text

超超超初心者だからこそ感じたこと

Slide 6

Slide 6 text

きっかけ 社内勉強会でやったことないことをやってみ よう! RDBばっかりだから、NoSQL使ってみよう! ・SQL使わなくて良い。 ・AWSマネージドサービス。 ・低レイテンシー なんか凄そう!

Slide 7

Slide 7 text

まずは AWSのチュートリアルを実施

Slide 8

Slide 8 text

基礎コース

Slide 9

Slide 9 text

ほうほうなんとかついていけそうだ。 こうやってテーブル作成して、こうやって取得するのか。 今はふわっとしているが、中級コースをすると、身につきそうだ。

Slide 10

Slide 10 text

中級コース

Slide 11

Slide 11 text

全くわからん

Slide 12

Slide 12 text

全くわからん点① 難しそう&知らないカタカナが多すぎる スパース フィラー値 スパイキー

Slide 13

Slide 13 text

全くわからん点② それを組み合わせて使ってくる スパイキーなワークロード スパースセカンダリインデックス

Slide 14

Slide 14 text

全くわからん点③ 複数のエンティティを1テーブルに入れる え、正規化ちゃうの。。。

Slide 15

Slide 15 text

DynamoDBを使ってみて感じたこと

Slide 16

Slide 16 text

RDBと似ている ・特定のAttributeを持たない項目があっても良い →特定のカラムに値を持たないレコードがあっても良いように設定可能(=NULL許可)

Slide 17

Slide 17 text

RDBと違う ほぼ全部。

Slide 18

Slide 18 text

RDBと違う ・Attributeには「値を入れるタイミング」で型が指定される →どんな値(=型)でも入ってしまうということでは? 例.[Age]の中身はStringかNumberかそれ以外か、、、不安だ。 ・アクセスパターンを想定してテーブルを設計する →RDBでは静的なデータ構造を考えていたが、DynamoDBではデータにアクセスされる動的な ストーリーを想定する。これは新感覚。 ・DynamoDBはあらゆるスケールで一貫したパフォーマンスを実現する →100TBを越えるテーブルでも、読み取りや書き込みのパフォーマンスはテーブルのサイズが 1GBより小さい場合と同じ。「レコードが増えてクエリが重くなる」とは無縁。

Slide 19

Slide 19 text

まとめ RDBに慣れている為、DynamoDBの仕組みがより難解に感じる。 DynamoDBの恩恵(速度とスケール)を受けるのはサービスが成熟した頃かな。 でもRDBと全く違う仕組みだからこそ、 RDBよりもDynamoDBの活躍どころとなるサービスやプロダクトがきっとある! どちらも知っておけば将来的にリレーショナルと非リレーショナルを 常に比較して選定することができる!

Slide 20

Slide 20 text

終わりに 全くわからない、RDBと何が違うのという段階から始めた。 わからないなりにハンズオンを繰り返すと DynamoDBの輪郭が見えてきた。 ハンズオンでもそれ以外でも実際にサービスを試してみることが大事だなと感じた。