2019-01-10この記事は約4分で読めます。こんばんわ、hisayukiです。́∀`)さて、Serverlessの仕組みを取り入れていこうと思うと避けて通れないのがNoSQL系DB。AWSではDynamoDBですね。今回のre:Inventでも更に使いやすくなったとのことで、再度勉強することにしました。基礎知識コスト削減まとめスポンサーリンクRDBとの違いで思うこといつも思うのですが、長年RDBでやっていると『RDBのこの方法をNoSQLだとどうやるの?』ってところで僕は結構躓くわけですが、もう全くの別物だと思って勉強したほうがよいですね。DBの機能レベルでどう置き換える?という考え方だと、RDBのやり方をNoSQLでやろうとしちゃうので難しくなりがちな気がします。『アプリケーションの機能をNoSQLでどう実装するか』こっちで考えたほうがとっつきやすいです。RDBでの実装経験は一旦ポイして、一からやり直すくらいの感覚のが楽です。Functionsいやー、非常にわかりやすかったwはじめてAWSのWebnarを見たんですが、DynamoDBまだ使ったこと無い人、またはまだ経験浅い人にはすごいオススメです。個人的には過去のDynamoDB教材の中で一番よかったです。RDSと比較しちゃいがちな人には丁度いいと思います。いうわけで、今日は基礎知識だけおさらいしてみます。基礎知識Table・Itame・AttributeTableはRDBのでのTableと同じで、ItemがRDBでのレコード、AttributeはRDBでのカラムとなります。RDBとの違いはItem内には1つ以上のAttributeが必要だが、Item間でのAttribute数は同一でなくても良い。PartitionKey・SortKeyPartitionKeyは順序指定をしないハッシュキーでItem内に必須。単体でプライマリーキーにも出来る。SortKeyは複数のデータ順序を保証するためのキー。Index(LSI)検索対象TableのSortKey以外のAttributeで検索する際に、PartitionKeyと検索AttributeをSortKeyにした検索用Tableを作成することができる。検索用TableのAttributeには検索対象TableのSortKeyを入れておく。SortKey以外の値も一緒に引けるように入れてしまうことも出来る。IndexではPartitionKeyは固定でSortKeyを変えることで検索する方式でしたが、PartitionKeyを別のAttributeにしちゃうのがこれです。検索用Tableを作成することについてはLSIと一緒です。見てる動画だとLSI使ってる場面あんまりなくて、ほぼGSI使ってたと思いますwそれくらいよく使われるし、制限といえば1Tableにつき20Indexまで。コスト削減DynamoDBはPartitionKey・SortKeyの2つをIndexを使ってシンプルに検索させることで力を発揮します。RDBのWhere区を長々書くような複雑なリクエストをしてしまうと、全件スキャンやフィルター検索など高コストにつながりる。KeyPartitionKey・SortKey以外のAttributeを条件にしたい場合、GSIを作るときのSortKeyにAttribute同士を結合した値をSortKeyにする。Indexes特定のItemだけ抜き出したいときに、そのItemに目印となるAttributeを追加する。その目印のAttributeをPartitionKeyにしたGSIを作れば、低コストで欲しい情報だけを取得する事ができる。まとめこの基礎部分だけでも、今までRDBで実装していたところはほとんど賄えると思いました。なんでもDynamoDBに寄せようとするのもご法度みたいですね。設計段階で必ず使う要素は出来る限り洗い出しておく必要がありそうです。Plans使ってみたよ!!こんばんわ、hisayukiです。今日はクリスマスイブで今年もあと1週間切りました。前回のFargateのSpotに引き続きコスト削減ネタです。今回もす...技術ネタEC2をT2からT3aに変更しようとしたら怒られた話こんにちわ、hisayukiです。弊社の社内システムが乗ってるEC2、既に2年ほど経ってまして・・・未だにt2.microなんですよね。課題もあったので、この際T3にしようとしたらハマった話を書いていきます。経...技術ネタわりと新しいRustをお試しで触ってみるこんばんわ、hisayukiです。最近AWSがRustという言語を支援するという記事がでました。́∀`)ただ、AWSがサービス内で使っているとのことなので未来への...技術ネタTypeScriptでServerlessをやりたくなったAWSのLambdaの話を聞いて、Serverlessに興味を持ってもう3年(もっと?)経った。機械学習の勉強会こんばんわ、hisayukiです。本当は振り返りは毎回書きたいのですが、どう...技術ネタTypeScriptでマイクロサービスを作ってみる1hisayukiです。前回やったこちらの続きをやろうと思ったので、経過を書きます!どこまでやるかわかんないので連載形式にしようと思います。コメントをキャンセルメールアドレスが公開されることはありません。