[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
オーバーコミットというのをやると本来あるはずよりも多くメモリとか CPU とかを使えるよ、という話。
OpenStack に限った話ではないけど。インスタンスを立てていると、物理マシンのメモリ限界を超えてインスタンスを立てることができる。例えば 8GB メモリを積んだ物理マシン上に 2GB メモリを使うインスタンスが5つ立つとか。なぜ本来ないはずのメモリがあるかのように振る舞えるのか。
パソコンを使っていてもそうだが、常にメモリを100%使っている、というわけではない。これは物理マシン上で動いているインスタンスも同じである。常に大体メモリは余っているのだ。また、 CPU 等も同様である
オーバーコミットは「常に大体メモリや CPU は余っている」という仮定の下「常にメモリや CPU 等は余っているんだからちょっとくらい多く配っても平気だよね」と多く割り当ててしまうという機能だ。
上述の仕組みである関係上「8GB メモリを積んだ物理マシン上に 10GB メモリを使うインスタンスを立てる」とかはできない。また、どれだけ大きく見せかけるかはよくよく考えて設定しなければならない。
ちなみに、OpenStack はデフォルトで「メモリは 1.5 倍オーバーコミット」「CPU は 16 倍オーバーコミット」しているようだ。
BCDice-API が先日の更新で jsonp に対応したようだ。
// 動作例
$.ajax({
type:'get',
url:'https://bcdice.herokuapp.com/v1/version',
async:true,
dataType:'jsonp'
}).done(function(result) {
console.log(result)
});
アプリ開発なんかで何か使えそうである。
ここでいうタイムスタンプはなんらかの重要なファイルがある際に、「指定した時間にそのファイルが存在したことを証明するための証明書」である。もうちょっとちゃんとした話とかは タイムスタンプとは|セイコーサイバータイムとかを読んでほしい。
「ちゃんとファイルのバックアップをとっておけば、そいつの更新日付でいつそのファイルが作られた/編集されたかはわかるでしょう?」いやいや、その編集時刻は後からいくらでも改変できます。
ここでいうタイムスタンプは後から改変して偽ったりすることが難しいものである。その為、法的な場面での証拠などとして利用が可能である。有名な例として電子帳簿保存法がある。これは請求書等をタイムスタンプを付加することで電子データとして保管し、公式な場で利用することを認めるものである。
電子データとなれば、作成時間やデータの内容が改ざんされることを恐れる人も多いが、タイムスタンプを付加しておけば安心である。
次のようにして "指定した時間にそのファイルが存在したことを証明" する。
タイムスタンプが信用できる理由を理解するには以下の2つを理解する必要がある。
改ざんの有無を確認する際にはタイムスタンプトークンを復号化する。あらかじめ偽物のタイムスタンプトークンを用意できればファイルの改ざんが可能だ。
しかし、タイムスタンプトークンは TSA の公開鍵で復号化して確認する。これはタイムスタンプトークンが TSA の秘密鍵で暗号化されたものだから可能な話である。この秘密鍵を入手できなければタイムスタンプトークンの偽造はできない。そして、この秘密鍵は一般にトップシークレットである。
公開鍵暗号の技術によって、この線での改ざんは不可能である。
タイムスタンプトークンのハッシュ値と改ざん後のファイルから得られるハッシュ値が一致するのであれば、改ざんは検知されない。
しかし、タイムスタンプトークンに付加されたハッシュ値は誰でも確認できるとはいえ、暗号学的ハッシュによって作成された値である。同じハッシュ値を得られる入力データを特定することは現実的に不可能である。
暗号学的ハッシュの技術によって、この線での改ざんは不可能である。
自ら TSA になることで、不正なタイムスタンプトークンを作り放題だ、というやり方もあるかもしれない。
しかし、実際のところはきちっとしたチェック機関によってチェックされた人でなければ TSA にはなれないので実現は困難だろう。詳しい話はタイムビジネス認定センターの記事などを確認しよう。
ただ、タイムスタンプそのものがやっていることは単純なことである。法的な要請のためにやるのではなく、「身内で」エビデンスを蓄積するためにやりたい、とかであればオレオレ TSA を作ろうとするのはありかもしれない。
タイムスタンプは便利そうだが、利用には金がかかる。
discord-bcdicebot を使うことで Discord 上で BCDice を利用可能にした。……というか、discord-bcdicebot なる Discord の bot アプリを作成した。
https://shunshun94.github.io/discord-bcdicebot/index.html から使い方などをご覧いただければ。
2者の間で情報をやりとりする際に、中継地点で他者に見られたくない。そんな時に使う手段が暗号化である。暗号化は情報を鍵のかかる箱に入れ、箱に鍵をかけて送受信する情報、と考えると分かりやすい。情報の暗号化 (箱に入れて鍵をかける) にも情報の復号化 (鍵をあけて箱から出す) にも鍵がいる。
公開鍵暗号と秘密鍵暗号ではこの鍵の考え方が大きく違う。
秘密鍵暗号とは情報をやり取りする両者の間で同じ鍵を使う。だから共通鍵暗号とも呼ばれる。シンプルな手段だが、鍵が誰かにバレたら一巻の終わりである。鍵を安全に共有しないといけないのだが、そのための手段がない。そんな手段があるのならその手段を使って情報をやりとりすればよいのだから。
実際のところ、事前に両者で顔と顔を合わせて鍵を決定し、離れたところでやりとりする、ということになるだろう。情報をやり取りする度に会わずにすむ。だが、手間だ。
秘密鍵暗号は鍵が1種類だったが、こちらは鍵が2種類ある。1人しか持たない秘密鍵と誰でも入手できる公開鍵である。秘密鍵で鍵をかけられた箱は公開鍵でしか開けられず、公開鍵で鍵をかけられた箱は秘密鍵でしか開けられない。公開鍵でかけられた鍵は公開鍵では開けられない。
秘密鍵を持っている人に情報を送るときは、公開鍵を入手し、情報を箱に入れて鍵をかける。この箱は秘密鍵を持っている受信者にしかあけられないのだから安全に情報を送信できる。
秘密鍵で鍵をかけた箱は誰でも開けることができるので、情報の秘匿という意味では効果がない。しかし、その秘密鍵に対応する公開鍵で開けられる箱は秘密鍵を持っている人にしか作れない。秘密鍵で鍵をかけられた箱はそのまま「私は秘密鍵をもっている本人ですよ」という証明書、署名になる。なりすまし防止に利用できるわけだ。