初心者向けNoSQLおぼえがき

RDBとの違いとかあんまりわかっていなかったのでメモ RDBの限界 スキーマの限界 多種仕様なデータや、ネストが深いデータのテーブルを設計するの大変 最近の高ベロシティの要望で、それを高頻度に変更していくのはもっと大変 そもそもJSONやXMLでもらったデ…

Amazon S3 ストレージクラスおぼえがき

概要 以下の4つのストレージクラスがある (下に行くほど制限があるが安くなる) 標準 標準 – 低頻度アクセス 1 ゾーン – 低頻度アクセス Amazon Glacier 向いているデータ一覧 標準 以下のいずれかのデータ アクセス頻度高 SLAやデータの耐久性が重要 超細か…

Amazon CloudFront おぼえがき

AWS 認定ソリューションアーキテクト – プロフェッショナル 対策 Amazon CloudFront って何? Amazon CloudFront は、データ、動画、アプリケーション、および API を、低レイテンシーの高速転送により視聴者に安全に配信する、グローバルコンテンツ配信ネッ…

EBSスナップショットおぼえがき

EBSスナップショットの料金について 0.05USD 1 か月に格納されたデータ 1 GB あたり 差分が保存されるため、複数回スナップショットを取った場合、2回目以降は差分のサイズだけの料金になる Amazon EBS では空のブロックが保存されないため、スナップショッ…

マイクロサービスおぼえがき

マイクロサービスについて知っておいたほうが Kubernetes 登場の背景を知れそうな気がしてきたのでメモ 成長したシステムを大きなチームで運用するのは大変 いろんな課題がある チームが大きいと... コミュニケーションコストが高い 意思決定コストが高い シ…

CircleCIのimage circleci/ruby:*-node-browsers が PhantomJS をサポートしなくなった

Docker Public Convenience Images Update: Firefox - Announcements - CircleCI Community Discussion 応急処置 circleci/ruby:*-node-browsers-legacy を使う やるべきこと PhantomJSはサポートが終了しているので、Headless Chrome とかにさっさと移行し…

古いCentOSのcurlで、githubにアクセスしたい時に見るページ

curl --tlsv1.2 https://github.com/hoge.keys --tlsv* オプションで、通信に使用するTSL/SSLのバージョンを指定できる TLS 1.0 は脆弱性があるため、無効になっているサイトが多い(githubとか) しかし、古いバージョンのcurlにはバグがあり、TLS 1.0 でしか…

ハードリンクしたファイルはinode番号が同一値になる

inode とは UNIX系ファイルシステムで使われているデータ構造 UNIXのファイルは、inodeと、実際のデータの組み合わせ inodeには、inode番号と、ファイルのサイズなどの属性情報が格納されている inode番号 とは 各nodeに与えられる任意の値 各ディレクトリは…

EC2のリザーブドインスタンス。同一 Region 単位で取得できる最大数は20まで

Region 単位, Availability Zone 単位 それぞれでリザーブドインスタンスは最大20台まで リザーブドインスタンスは Region 単位 と、availability zone単位 がある Region 単位 : どの AZ で動かしてもよいが、AZ にインスタンスの空きがない場合、起動でき…

EC2のvCPUは、物理コアをハイパースレッディングでCPUリソースを分割して仮想CPUとして提供している

オプションでハイパースレッディングをOFFにしたり、物理コア数を減らしたりできる(料金は変わらない CPU オプションの最適化 - Amazon Elastic Compute Cloud ハイパースレッディングって何 ハイパースレッディングとは、従来CPUのコア一つに一つしか搭載…

AWS 認定ソリューションアーキテクト アソシエイト(2018) に合格したので勉強方法について語る

社内勉強会のおかげで無事合格できました! 内訳 合格前の自分のステータス 以下について、実務経験あり EC2, ECS, S3, RDS(MySQL), Elastic Beanstalk, CloudWatch, IAM, Lambda, DynamoDB, VPC どんなふうに勉強したの? 以下のルートで勉強しました 合格対…

社内LT大会(FFLT)で、元号の文字コードについて話してきました

FFLTとは 弊社フィードフォースが不定期に行っているLT大会です くわしくはこちら developer.feedforce.jp かせいさんもひさびさに参加して、unicodeに元号 ( ㍾, ㍽, ㍼, ㍻ ) ってあるけど、来年の次の元号はどうなるの? というお話をしました 発表資料 Un…

Dependency Injection 依存オブジェクトの注入 についてのおぼえがき

Dependency Injectionって「依存性の注入」じゃないの? やっていることは、 依存しているオブジェクトを注入するようにする なので、「依存オブジェクトの注入」の方が訳としてただしいのでは? という議論がある little-hands.hatenablog.com あと、自分が読…

DynamoDB の capacity unit おぼえがき

概要 read/write capacity unit という単位でユーザがテーブル毎にcapacityを設定する 実際の使用量とは関係なく 設定した、read/write capacity unit に比例した金額が請求される capacity unit とは 1 capacity unitは、以下の通り write 1秒に1回 1KBの書…

Firefox で「サーバが適正な中間証明書を送信しない可能性があります」という表示が出た時に見るページ

あるいは中間証明書の解説 原因 中間証明書 がサーバにupされていない 中間証明書ってなあに? 証明書3階層の中間にある証明書 ルート証明書 → **中間証明書** → サーバ証明書 サーバ証明書を証明するのが中間証明書で、中間証明書を証明するのがルート証明書…

Docker For Mac の docker build で `no space left on device` した時の対策

原因 docker for mac は仮想マシン上で動いているが、その仮想ディスクの容量がいっぱいになると発生 対策 prefarence で仮想ディスクのサイズを変更する 画面上、変更できないように見えるけど、クリックしたら普通に変更できた ただし、今回はディスクリセ…

円記号問題の歴史

円記号問題の歴史をまとめました ISO/IEC 646 の誕生 元々、文字コードの国際規格 ISO/IEC 646 では 0x5C は国ごとに自由に設定してよい領域 だった - アメリカ(ascii) では、 0x5C をバックスラッシュ - 日本(JIS X 0201) では、0x5C を ¥ アメリカで 0x5C …

misspell で無視したい単語をgitで管理する方法

スペルチェッカー misspell。超便利なのでみんな使いましょう github.com 前提 misspell では、-i オプションにカンマ区切りで、スペルチェックを無視する単語を追加できる misspell -i "hoge,fuga" . やりたいこと misspell のチェックを無視する単語を git…

Dockerのディスクioがボトルネックになる原因とその対策

dockerのディスクのマウント先がループバックデバイスだと遅い ループバックデバイスは特定のファイルをデバイスとみなす仕組み ゲストOSでの書き込み→ループバックデバイスへの書き込み→物理ディスクへの書き込みとなるので、直接物理ディスクに書くより遅…

Dockerのmemory, memory-reservation について

memory : ハードリミット。ここで指定した以上のメモリを使用しようとするとOOMKillerが走る memory-reservation : ソフトリミット。ホストのメモリに余裕がある時は、これ以上使用することもある 余裕が無いときは、memory_reservation 内にとどめる ECSで…

AWS 認定ソリューションアーキテクト – アソシエイト (新版) 対策メモ

AWS

自分が知らなかったAWS用語のおぼえがき Amazon Redshift Amazonが提供するデータウェアハウス データウェアハウス(DWH)とは、意思決定のために、基幹系などの複数システムから、必要なデータを収集し、目的別に再構成して時系列に蓄積した統合データベー…

MHA for MySQLのデフォルトのヘルスチェックでは、DBの書き込み障害ではフェイルオーバーしないよというお話

先に結論 MHA for MySQLのデフォルトのヘルスチェックでは、DBの書き込み障害ではフェイルオーバーしない なんで? MHAはヘルスチェックをバラメータ ping_type で設定された方法で行う ping_type のデフォルトは SELECT ping_type : SELECT の場合、ヘルスチ…

SRE本読書メモ エラーバシェットの話しを読んで、明確な数値目標は意思決定コストを下げると思った

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム作者: 澤田武男,関根達夫,細川一茂,矢吹大輔,Betsy Beyer,Chris Jones,Jennifer Petoff,Niall Richard Murphy,Sky株式会社玉川竜司出版社/メーカー: オライリージ…

SRE本読書メモ 15章: ポストモーテム文化。非難のない振り返りが改善を生む

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム作者: 澤田武男,関根達夫,細川一茂,矢吹大輔,Betsy Beyer,Chris Jones,Jennifer Petoff,Niall Richard Murphy,Sky株式会社玉川竜司出版社/メーカー: オライリージ…

[SRE本読書メモ] 13章: 障害対応。ストレスの無い障害対応が少ないダウンタイムを生み出す

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム作者: 澤田武男,関根達夫,細川一茂,矢吹大輔,Betsy Beyer,Chris Jones,Jennifer Petoff,Niall Richard Murphy,Sky株式会社玉川竜司出版社/メーカー: オライリージ…

RubyでGCしても直ちにRSSが減るわけではないというお話

先に結論 GCをしても、RSSが直ちに減るわけではない C言語のレイヤーで、free しても次の malloc に割り当てるためにメモリを手放さない実装があるのが原因らしい 計測してみた 適当な長さのStringを10000回作って、RSSと、ObjectSpace.memsize_of_all を計…

スレーブのレプリケーションが遅延している時に SHOW SLAVE STATUS でチェックするべき値

前提知識 MySQLのスレーブでは、以下の2つのスレッドを使って、レプリケーションを行っている I/Oスレッド : マスタからバイナリログの差分を取得する SQLスレッド : IOスレッドから取得したバイナリログを元にDBを更新する SHOW SLAVE STATUS で見るべき値 …

MySQLのバイナリログについて解説

バイナリログとは マスタのDBの 更新命令のみ を記録したログファイル マスタ/スレーブ間の同期(レプリケーション)で使用する my.cnf に log-bin オプションを設定すると、バイナリログが作成されるようになる バイナリログの保存形式 STATEMENT, ROW, MIXED…

クイズ形式で rubyのジャンプ構文の挙動をおさらいしてみましょう

全問正解した人は自慢して良いと思います。全5問です。 なお、動作環境は ruby 2.5.0 です 問1 Procの中でbreak 実行結果はどうなるでしょう? def main p = Proc.new{|v| p v break if v >= 5 } 1.upto(10, &p) # & は、ブロックの代わりにProcを渡す命令 p …

AWS EC2 の T2 インスタンスについてメモ

AWS

先にポイント T2インスタンスは他と違い、CPUの使用について独特の制限がある(その分安い) T2はインスタンスタイプ毎にCPU使用率が定められている。これを ベースラインパフォーマンス と呼ぶ また、CPUを使用するたびに、CPUの使用権である CPUクレジット …