【入門】DynamoDBの概要と使い方

DynamoDB(NoSQLデータベースサービス)の特長について取り上げます。また、マネジメントコンソールから実際にテーブルを作成してみます。

DynamoDBの概要

特長

  • Key-Value型のNoSQLデータベースサービス
  • 事実上無制限のスループットとストレージ
  • 管理作業をまかせられる
    • レプリケーション
    • ソフトウェアのパッチ適用
    • クラスタースケーリング
    • バックアップ & リカバリ
      • オンデマンドバックアップ
      • ポイントインタイムリカバリ
  • DynamoDBストリーム をトリガーとしたLambadaの実行
    • 項目の追加、変更、削除をイベントとして検出
  • キャパシティーユニット による利用量の事前に設定が可能
    • 1秒あたりの 読み込み 書き込み の回数上限を決めて料金が決定される

構成要素( Table, Item, Attribute )

RDSと比較すると以下のようになります。

DynamoDB RDS
テーブル(Table) テーブル
項目(Item) レコード
属性(Attribute) カラム

プライマリキー

  • テーブルの各項目を一意に識別
  • 2種類をサポート
    • 1つの属性( パーティションキー )で構成
    • 2つの属性で構成( パーティションソートキー )

セカンダリインデックス

  • プライマリキー以外の属性で、データに効率的にアクセスできるようにする
  • 2種類をサポート
    • グローバルセカンダリインデックス(GSI)
    • ローカルセカンダリインデックス(LSI)

下記例で GSILSI の違いを確認します。

639-aws-dynamodb-introduction_secondary.png
  • GSI
    • 全データの中から PostId を指定して抽出
  • LSI
    • ある UserId の中から PostId を指定して抽出

データの読み込み
( GetItem, Query, Scan )

  • テーブルから単一の項目取得
    • GetItem
  • テーブルから複数項目取得
    • Query
      • キーを条件に特定範囲内の検索
    • Scan
      • テーブル全体を検索
      • 負荷が大きい

参考

各種上限

1項目あたりの上限

1つの項目サイズは 400KB を上限としています。容量上限を越えると下記エラーが出ます。

Item size has exceeded the maximum allowed size

Query, Scanで取得可能な容量上限

Query Scan の結果セットにはデータ制限( 1MB )があります。 データ制限を越えると、クエリ応答LastEvaluatedKey がセットされます。

参考

マネジメントコンソールからテーブル作成

639-aws-dynamodb-introduction_console_create1.png

プライマリキーを設定しています。

639-aws-dynamodb-introduction_console_create2.png

グローバルセカンダリインデックスを設定しています。

639-aws-dynamodb-introduction_console_create3.png

ローカルセカンダリインデックスを設定しています

639-aws-dynamodb-introduction_console_create4.png

キャパシティモードを設定できます。

639-aws-dynamodb-introduction_console_create5.png

キャパシティ計算ツールでコストの計算をすることができます。

作成したテーブルです。

639-aws-dynamodb-introduction_console_create6.png
639-aws-dynamodb-introduction_console_create7.png

プライマリキー GSI LSIを利用した抽出ができます。

参考

【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。