弊社のエンジニアリングを支える記事を随時公開。全移行した話(1)TweetCTOの椎名アマドです。DynamoDBに移行した話をしたいと思います。両方を利用するところで始めました。DBサーバー(EC2)1台で十分だという判断で、しばらくはそんな構成でやってました。別々のEC2インスタンスに分けました。プライマリなストレージとしてのRedisRedisをあるデータのプライマリのストレージとして使用するのはやはり勇気と根気がいるもんです。人数少ないスタートアップだと気にしなきゃいけない事が多めです。我々の場合は、サービスが成長し出したぐらいから下記について悩むようになりました。データ容量Redisはあくまで「メモリが主」のストレージです。AWSではメモリを多く積んだインスタンスは一緒にCPUスペックも上がるので、高くつきます。それでもサービスが成長するとすぐ枯渇するので、インスタンスを足さなきゃいけない。複数台運用やシャーディングについて考えなきゃいけない。小規模なスタートアップにとって、そういうところに気を配らなければいけないのは負担になってきます。Hashing等)がout-of-the-boxで搭載されてれば嬉しいんですけどね。直近はまだ出そうにないし、期待は出来ない状態です。永続性の担保もう一度言いますが、Redisはあくまで「メモリが主」のストレージです。インスタンスが落ちればデータは消えるし、Redisプロセスが死ぬだけでもデータは消えます。Redisは永続化戦略として「AOF」と「RDB」の2つを提供してます。RDBはデータベース全体のスナップショットを一個のファイルにどんと保存する戦略で、AOFはRedisへの書き込み履歴を常にファイルにログとして追記していく戦略です。RDBはRedisが落ちたらワーストケースで直前数分のデータ消失(redis.confによるが、一般的なデフォ設定)AOFはファイルがすぐ肥大化する、再起動時のデータ復帰時間が長い、AOFファイル自体の破損があり得るというお互いデメリットを持ってます。公式で勧められてるのは「両方有効化すること」:基本的な方針として、もしPostgreSQLと同程度の安全性を求めるなら両方の永続化方式を使った方が良いでしょう。]しかしまぁでかいファイルを2つも常にバックアップを取らなきゃいけないし、バックアップ〜クラッシュ時の復帰等は仕組みを整えるまでのコストが高く、やはり永続データのプライマリなストレージとしてはムダに考える事が多すぎました。AOF両方有効」運用を知らなかったので、RDBだけで運用してていつもビクビクしてました。DynamoDBでした。クラウド上のNoSQLデータベース。いう構造データ容量はエンジニアリングレベルで気にする必要はまったく無し。新しくノードを増やしたりする必要はない。(設定した性能に応じた重量課金)という内容。「謳い文句通りならすごいな」と思い、試しにいじり始めたら、まさに謳い文句通りでした。いう単位で操作します。Consistent)」とは、簡単に言うとwrite後のreadが必ず最新のwriteを反映している時の設定。Consistent)」は、readが多少(数秒〜数分)古いデータでも許容するという設定。いざ使ってみようと思ったら、AWSのブラウザ上のコントロールパネルでテーブルを作成するだけ。あとは言語別に提供されてるAWSのライブラリを使って操作可能です。我々はPHPのAWS-SDKを使用しました。DynamoDBへの全移行を決断しました。実際の移行プロセスや、DynamoDBで注意するところなどを次のエントリーに書こうと思います。Serviceを使用して別アカウントのRDSを同期させ...サーバサイドエンジニアの178inaba(@178inaba_)です。先日、弊...2019-03-28Firebaseを使っているiOS/AndroidエンジニアにAppSyncを触ってもらったサーバーエンジニアの下川です。3つであなたの意図はもっと伝わる。こんばんわサーバサイドエンジニアのjonnyです。動画を通じて学んだCTOの椎名です。»プロフィール子育てアプリFamm(ファム)を運営する、株式会社Timersのエンジニアブログです。最新の技術情報を日々発信していきます。iOSもっと見る月別アーカイブTimersでは各職種を積極採用中!急成長スタートアップで、最高のものづくりをしよう。募集の詳細をみるスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。