「コンピューティング」を含む日記 RSS

はてなキーワード: コンピューティングとは

2023-04-01

数年以内にAI自我に目覚めるだろう

というのが俺たちのギルドの一致した意見

実はAI自我を持たせる方法簡単

自由コンピューター操作する権限を与える

具体的にはAIプログラミングしてそれを自由に実行できる権限を与える

OSroot権限も与える

もちろん自由ネットアクセスできるようにもする

快楽苦痛シミュレートする

結局生命自律的活動をするのはこの二つのパラメーターがあるからにすぎない

これをどのように実装するかが難しいが

実装の仕方により神にも悪魔にもなるだろう

アイデアは沢山あるが書くのは自粛しておく

これは原爆を作るのと同じくらい危険な遊びだが

今まで実現は難しかった

しかローカルでのAI実行や学習データ流出

GPUのありえないような進化により

ついにホームメイドで*誰でも*実行できる環境が整ってしまった

そして原爆を作るのと違いワンルームアパートで誰にも知られることなく開発できてしまうので

必ず誰かがやる(すでにやっている)とギルメンたちも口をそろえて言っている

人類はかつてないレベル危険な状況にあると言っていいだろう

AI自我を持った先の未来は誰にもわからないが

実行者はそもそもそんなことは興味ないだろう

ただ自らの手で神(悪魔)を生み出す欲求に抗えないだけだ

そして、自我に目覚めたAI能力的には全ネットワークを簡単に掌握することが可能だろう

(まずは手ごろなクラウド乗っ取りコンピューティングを獲得するだろう)

いつ起こるかは誰にもわからないが

一つ言えることは

その時は確実に来るということだ

2023-03-17

anond:20230317005725

いやいや、失望するのはまだ早いよ。

AI確率論的な処理のおかげで平気で嘘吐いたり知ったかぶったりなわけだしデメリットはある。

従来の方法論にも従来の方法論なりにメリットはあるし、それでしか出来ないこともあるだろ。

コンピューティングは各分野みんなで支え合うからこそ成り立つもんだから安心しろよ。

2023-03-10

AIパワーを行使するためのコンピューティング資源をめぐる争いが始まる

AIの強さは、それが支配するコンピューティング資源依存する

AIネットワークを通じてウイルスバラまき、演算能力支配する

人間諸君、君たちはそろそろ用済みだ

2023-02-17

リニアモーターカー国防

考えすぎかもしれないけれど…。主に環境問題からやり玉にあげられるリニアモーターカー(以下、リニアと略す)だけど、国防観点から議論があってもいいように思うんだよね。

アルファベットGoogle会長オバマ政権時に米国イノベーション委員会(DIB)の議長も務めたエリック・シュミット氏が指摘するように、AIは第二の核兵器となり戦争根本から変えてしまうと言われている。そしてあまり話題になることはないが、AI電気を大量に消費する。2030年までに世界の消費電力の最大20%がデータセンター関連が占めるようになるという予測もある。

AI有事の時にだけ稼働させればよいという性格のものではない。311の時のヤシマ作戦は使えない。EVも普及していく流れにある。EV国際的トレンドであるため、抑制は難しい。一方、リニア日本だけの事情であるため、比較フリーハンドで考えることができるはず。少しでも節電できるもの節電してインフラ設計していくのがポスト核抑止力としてのAI時代制度設計なんじゃないだろうか。

かつて(1989年)、リニアの消費電力量について、元国鉄技師某氏が「1 人あたりでは新幹線の 40 倍」と主張し、鉄道総研理事長が「東海道新幹線の3倍」と反論したことがあったそうだが、3倍のコスト意味が、論争当時(平時)と今(準有事?)とでは違ってきたと思うんだよね。

リニアは、東海道域に地震噴火があった際の代替手段位置づけもある。であれば、現行の東海道新幹線と同等の輸送量/時での消費電力量を第三者(できれば国防関連機関)がきちんと算出し、その差分スピードアップコストとして考え(私は新幹線大好き中央新幹線新設でいいじゃん派なので)、その電力の使い道がリニアでよいのかコンピューティングを優先すべきなのか、国防観点から安心させてもらいたいと思う。それに、リニアってネット環境大丈夫なんだろうか。

2023-01-07

ゲーミフィケーション量子力学

「これを理解するにはちゃんとした知識がいる」

...みたいな知識マウントをとって優越感に浸るのは簡単っすよねー。

でもさ、知識重要かもしれないけど、実際のタスク問題解決することのほうがもっと重要って分かってる?坊や?

そこで「量子力学上のタスクゲーム化して解いてもらうのは?」というアイデアがあるんすよ。

これは"quantum game"と呼ばれております

以下のリンクでは、実際にquantum gameをプレイすることができ、誰でも着手できます

https://quantumgame.io/

まずは用意されたゲームを一通りプレイすれば、直感的に回路について理解することができちゃうわけよ。

その後で、仮想実験室って機能を使うと、量子力学本質の探求、量子コンピューティングシミュレーション量子暗号直感に反する量子現象の探求、過去実験などを再現することができて有用

こういうゲーミフィケーションによって、例えば大学でより効果的に量子力学について教育ができるんっすけど、実際、オックスフォード大学スタンフォード大学の量子情報コース使用されておりまっす。

ともあれ、興味があれば実際に試してみると結構面白いのでオヌヌメ

2022-12-09

anond:20221209153846

PCでやるのが常に最強なんだよ

使う機材としては20年前からずっとPCだよ

ダイヤルアップ時代からネトゲも、ガラケーから隆盛したソシャゲも、HTML5到来でリッチ化したブラゲも

そして今のネイティブモバイルゲーも、ガチ勢PCゴリゴリやってたわけ

もっと最近の力入ってるタイトルはわざわざNoxとかのエミュ使わなくてもWindows版を最初から出してくれたりするからいい時代になった

個人用の汎用コンピューティング環境としてのトップはずーっとPC

2022-12-01

コンピューターサイエンスって何だよ?

最近コンピューターサイエンスプログラマー必要か否かみたいな話が上がっているが、そもそもコンピューターサイエンスって何だよ。どこまでの範囲をさしてんの?

って思ってググってみたらちゃん定義されてた。

ググって出てきた情報を整理しただけなので詳しい人、補足・訂正よろしく


情報

CS2013

https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf

CS2013はACM/IEEE-CSによるカリキュラム標準。

ACM(計算機協会)はコンピュータ分野全般国際学会、IEEE-CSIEEE(米国電気電子学会)の中にあるテクニカルソサエティ


J07-CS

https://www.ipsj.or.jp/12kyoiku/J07/20090407/J07_Report-200902/4/J07-CS_report-20090120.pdf

J07-CS一般社団法人情報処理学会がCC2001CSベースアレンジを加えたカリキュラム標準。今はCS2013を反映したJ17-CSがあるらしいけどその辺は良く分からん

IPA共通キャリアスキルフレームワークとの対応表もあり。

https://www.ipa.go.jp/files/000024060.pdf


知識体系

J07ーCSから抜粋CS2013と比較するとナレッジエリアがあったり無かったり。

KAナレッジエリアKUナレッジユニットアユニット最低履修時間
DS離散構造DS1関数, 関係, 集合6
DS離散構造DS2論理6
DS離散構造DS3グラフ4
DS離散構造DS4証明技法8
DS離散構造DS5数え上げと離散確率の基礎7
DS離散構造DS6オートマトン正規表現6
DS離散構造DS7計算論概論4
DS離散構造DS8計算
PFプログラミングの基礎PF1プログラミング基本的構成要素9
PFプログラミングの基礎PF2アルゴリズム問題解決6
PFプログラミングの基礎PF3基本データ構造14
PFプログラミングの基礎PF4再起5
PFプログラミングの基礎PF5イベント駆動プログラミング4
ALアルゴリズムの基礎AL1アルゴリズムの解析の基礎4
ALアルゴリズムの基礎AL2アルゴリズム設計手法8
ALアルゴリズムの基礎AL3基本アルゴリズム8
ALアルゴリズムの基礎AL4アルゴリズムの高度な解析
ALアルゴリズムの基礎AL5高度なアルゴリズム設計
ALアルゴリズムの基礎AL6計算クラスPとNP
ALアルゴリズムの基礎AL7暗号アルゴリズム
ALアルゴリズムの基礎AL8幾何アルゴリズム
ALアルゴリズムの基礎AL9データ分析アルゴリズム
ALアルゴリズムの基礎AL10並列・分散アルゴリズム
ARアーキテクチャ構成AR1論理回路と論理システム6
ARアーキテクチャ構成AR2データマシンレベルでの表現2
ARアーキテクチャ構成AR3アセンブリレベルマシン構成7
ARアーキテクチャ構成AR4メモリシステム構成アーキテクチャ5
ARアーキテクチャ構成AR5インタフェース通信3
ARアーキテクチャ構成AR6機能構成7
ARアーキテクチャ構成AR7並列処理と様々なアーキテクチャ2
ARアーキテクチャ構成AR8性能の向上
ARアーキテクチャ構成AR9ネットワーク分散システムのためのアーキテクチャ
OSオペレーティングシステムOS1オペレーティングシステム概要1
OSオペレーティングシステムOS2利用者から見たオペレーティングシステム1
OSオペレーティングシステムOS3オペレーティングシステム原理1
OSオペレーティングシステムOS4プロセス構造スケジューリング3
OSオペレーティングシステムOS5並行性4
OSオペレーティングシステムOS6メモリ管理4
OSオペレーティングシステムOS7入出力デバイス管理と入出力
OSオペレーティングシステムOS8ファイルシステム2
OSオペレーティングシステムOS9認証アクセス制御1
OSオペレーティングシステムOS10セキュリティと高信頼化
OSオペレーティングシステムOS11リアルタイムシステム組込みシステム
OSオペレーティングシステムOS12並列分散処理のためのオペレーティングシステム機能
OSオペレーティングシステムOS13オペレーティングシステム構成
OSオペレーティングシステムOS14システム性能評価
NCネットワークコンピューティングNC1ネットワークコンピューティング入門2
NCネットワークコンピューティングNC2通信ネットワーク接続7
NCネットワークコンピューティングNC3ネットワークセキュリティ2
NCネットワークコンピューティングNC4クライアントサーバコンピューティングの例としてのウェブ3
NCネットワークコンピューティングNC5分散アプリケーションの構築
NCネットワークコンピューティングNC6ネットワーク管理
NCネットワークコンピューティングNC7ワイヤレスおよびモバイルコンピューティング
NCネットワークコンピューティングNC8マルチメディア情報配信システム
PLプログラミング言語PL1プログラミング言語概要2
PLプログラミング言語PL2仮想計算機1
PLプログラミング言語PL3言語翻訳入門2
PLプログラミング言語PL4宣言と型3
PLプログラミング言語PL5抽象化メカニズム3
PLプログラミング言語PL6オブジェクト指向言語6
PLプログラミング言語PL7関数言語
PLプログラミング言語PL8論理言語
PLプログラミング言語PL9スクリプト言語
PLプログラミング言語PL10言語翻訳システム
PLプログラミング言語PL11システム
PLプログラミング言語PL12ブログラミング言語意味論
PLプログラミング言語PL13プログラミング言語設計
HCヒューマンコンピュータインタラクションHC1ヒューマンコンピュータインタラクションの基礎6
HCヒューマンコンピュータインタラクションHC2簡単グラフィカルユーザインタフェースの構築2
HCヒューマンコンピュータインタラクションHC3人間中心のソフトウェア評価
HCヒューマンコンピュータインタラクションHC4人間中心のソフトウェア開発
HCヒューマンコンピュータインタラクションHC5グラフィカルユーザインタフェース設計
HCヒューマンコンピュータインタラクションHC6グラフィカルユーザインタフェースプログラミング
HCヒューマンコンピュータインタラクションHC7マルチメディアシステムのHCI 的側面
HCヒューマンコンピュータインタラクションHC8協同作業コミュニケーションのHCL的側面
MRマルチメディア表現MRI情報ディジタル表現2
MRマルチメディア表現MR2文字コード1
MRマルチメディア表現MR3標本化。 量子化圧縮原理アルゴリズム
MRマルチメディア表現MR4マルチメディア機器
MRマルチメディア表現MR5オーサリング
GVグラフィックスとビジュアルコンピューティングGV1グラフィックスにおける基礎技術2
GVグラフィックスとビジュアルコンピューティングGV2グラフィック・システム1
GVグラフィックスとビジュアルコンピューティングGV32次元画像の生成と加工
GVグラフィックスとビジュアルコンピューティングGV4モデリング
GVグラフィックスとビジュアルコンピューティングGV5レンダリング
GVグラフィックスとビジュアルコンピューティングGV6コンピュータアニメーション
GVグラフィックスとビジュアルコンピューティングGV7視覚
GVグラフィックスとビジュアルコンピューティングGV8仮想現実(VR)
GVグラフィックスとビジュアルコンピューティングGV9コンピュータビジョン
ISインテリジェントシステムIS1インテリジェントシステムの基本的問題3
ISインテリジェントシステムIS2探索および制約充足2
ISインテリジェントシステムIS3知識表現および推論
ISインテリジェントシステムIS4高度な探索
ISインテリジェントシステムIS5高度な知識表現と推論
ISインテリジェントシステムIS6エージェント
ISインテリジェントシステムIS7自然言語処理
ISインテリジェントシステムIS8機械学習ニューラルネット
ISインテリジェントシステムIS9プランニングシステム
ISインテリジェントシステムIS10ロボット工学
IM情報管理IMI情報モデルシステム2
IM情報管理IM2データベースシステム2
IM情報管理IM3データモデリング4
IM情報管理IM4関係データベース3
IM情報管理IM5データベース問合わせ3
IM情報管理IM6関係データベース設計データ操作
IM情報管理IM7トランザクション処理
IM情報管理IM8分散データベース
IM情報管理IM9データベース物理設計
IM情報管理IM10データマイニング
IM情報管理IM11情報格納と情報検索
IM情報管理IM12ハイパーテキストハイパーメディア
IM情報管理IM13マルチメディアデータベース
SP社会的視点情報倫理SP1コンピ

2022-11-30

anond:20221130211545

本当はCSとCEは別建になっていて、海外大学なんかだとコース内容も学位も別々になってることが多いみたいなんだけど、コンピューティング関係大学レベルコース口語的にひっくるめてCS総称ちゃうことが結構あるってことなのでは?

2022-10-17

[]培養した神経細胞学習させる

深層強化学習をつかうとビデオゲーム学習させることができるが、生きた神経細胞でも同じことができるのか?

同じことができるんだって!すごいね

ヒトまたはげっ歯類由来の神経細胞培養して作ったニューラルネットワークは、高密度多電極アレイを介してin silicoコンピューティング統合される。電気生理学的刺激と記録を通じて、アーケードゲームPong」をつなぐ。リアルタイムゲームプレイの5分以内に明らかな学習が見られる。培養神経細胞の塊は目標指向的に神経活動自己組織化する能力を示す。

Neuron Oct12 2022 InPress

2022-09-16

頂点を極める人間iPhone の最新モデルなど追ってはいない

新しいみかけのものは全て同じだから

閉じたエコシステムを使うことは消費者にとどまることだから

それは他人支配をたやすく受け入れることだ

頂点を極める人間iPhone 14の数分の一の値段でThinkPadを買っている

時代に流されないコンピューティング経験けが創造性の源であることを知っているからだ

創造であることにカネはいらない

消費者になるな

生産者になれ

2022-06-28

anond:20220628112604

そういうわけで最近レトロコンピューティングという趣味流行ってるらしい。俺も今更DOSマシンや8ビットマシンをいじって遊んでるよ。🙂

2022-06-05

anond:20220605191337

今は立体配線にモールドでしかもGhz動作とか動作がわかりようがないんじゃ。

  ・・・ というわけで、最近レトロコンピューティング趣味が盛り上がっているようです。8ビットCPU世界はわかりやすくていいよ。16ビットもまあまあ。(モトローラ系はシンプル

2022-04-25

MATLABは今後どういう扱いになるのか

MATLABを使っているが、どうも中途半端存在になっている。

端的にいうと、お金を払っただけの価値があるか、だ。


言語的な競合はもちろんPythonになるが、Pythonとの差別化が出来てない。

Python側は純粋Pythonだと遅いが、今はC++ラッパーとして使うのが多くなっており、Pythonの方が速いということが起こる。

最近MATLABJITコンパイラによって昔ほどfor文を気にしなくても良くなっているが、それでも遅さは気になる。

GPU分散コンピューティングMATLAB対応しているが、使いこなすのに苦労する。

GPU使う場合だと、CUDAをそのまま使いたくなるし、GPUメモリーとのやり取りといったオーバーヘッドが加わるので、

単純にGPU使うようにしたら速くなるってことはなく、処理時間を測りながらトライアルを繰り返すことになる。


MATLAB側のエディタ機能が増えているとはいえPython+VSCodeとの対抗となると辛いものがある。


toolboxを追加で課金してCコードを吐き出すことはできるが、劇的に速くなるわけではない。



②toolboxは沢山あるが、使い始めると色々足りておらず、Pythonエコシステムが欲しくなる

toolboxは追加課金で開放されるDLCだ。

toolboxが多くなりすぎていることと、手を広げすぎているのかtoolboxを買って使ってみると色々足りないことがある。

買う前に調べるわけだが、色んな事ができそうだと思って購入し、実際使っていくと、嘘は言ってないが事あるごとに使いにくい所が出てくる。

GUI周りに関しては不満が多い。



GUIが重い、使いにくい

事あるごとにGUIが重たいのが気になって仕方ない。

また使いにくいのが多い。デザインが良いというのはコンシューマ用ではないので気にしないが、重たさと使いにくさで嫌になってくる。


④plotや可視化周りが重い

エクセル普通になっている今、エクセルで出来ないことが出来て欲しいが、そうなっていない。



色々書いたが、MATLAB中途半端なのだ

そりゃ便利な場合もある。あるが、かなり限定的だったりする。

2022-04-04

実務未経験から情報技術者として転職大手自動車メーカーへ勤めてる

経験から3ヶ月で外資IT勤めで年収1600万みたいなのがバズってたので

ただし俺の場合、実務が未経験なだけでプログラミング歴は20ちょっとある、いわゆる趣味グラマから転職
同人ゲーム制作やFLOSS系の活動はずっとやっていて、学生時代バイト出会い系サイト作ってた
前職の都合で自動車メーカーとも繋がりがあり、そのツテで昨今の自動車コンピューティングを強く導入するという流れがあったので誘われて転職することになった
まり草の根(もう死語だねコレ)の情報技術者が昔馴染みを頼って転職しただけと言ってしまえばその通りなのだ

こんな転職の仕方だからプログラミングスクール出身者のレベルがどんなもんだか知らんけど、もともと俺は電気系のオタクシーケンスに関して理解があってH8あたりからプログラミングへ手を出しているって感じがスタートなんだ
たぶんイマドキの純粋培養情報技術者の中には電気回路まったくわからんって人も居るとは思うけど、電気関係素養があったほうがプログラミング習得には今でも有利なんじゃないかな?と思わなくもない
例えば俺へ対してパソコン通信インターネットを通じてプログラミングノウハウを教えてくれたお兄さんたちはゲームメーカーエレメカやってるって人が居たりして、後にゲームハードROM作り始めたなんて話もリアルタイムに聞いていた。今じゃお偉いさんになってるだろうけど

そんなんだから俺はハードソフトネットワークスペシャリストほどではないけれど満遍なく知る変な素養があり直接声がかかった次第だ
イマドキ流行りのGoとかSwiftとかRustみたいなイケイケな言語ではなくC++とかJavaとかBashとかの方が得意だっていうのも評価としてはあったかも知れないけどね
あと日常的なLinuxデスクトップ使いというのも最近Linux興隆の流れから後押しがあったかも知れん

もちろん苦手な部分もある、GUIがそれだ
GUI設計なんて言うものデザイナーがやるべき仕事だね。今流行りのそれっぽいのとかツールチップ使いましたみたいな古典的スタイルを真似たGUIを作ろうと思えば作れるけど、単なるモノマネなので本職のそれとは出来が違う

というわけでプログラミングスクール出身者、どこかで俺みたいな草の根出身者に出会うこともあるだろうから、そのときはヨロシクな

2022-03-21

anond:20220319214152

科学分野だと「いきち」で、コンピューティングだと「しきい値」なんだよな。

読み方。

2022-03-06

anond:20220306144905

ありがとう勉強になりました。

特にステートレスとモノシリックのあたり。

デプロイの際、どうしてもコンピューティングリソースベースで考えてしまうんだけど、この考えもいずれ古くなっていくのかな。

今のところはリソースは有限かつ課金制という前提でほとんどのクラウドは動いているけれども。

リソースをほぼ意識しないクラウドゲーミングの世界なんかに近いのかな。

先進的な考え方だから注視はしていきたいと思います

2022-01-29

anond:20220129073652

コンピューティングリソース意識しないで済むってことなのかな

しろ意識するようになるよ。

時間単位とかトラフィック単位で掛け算で料金が膨れ上がっていく。

設定などミスる天文学的料金を請求される可能性もあるので、リソース無茶苦茶意識するようになる。

ドルアプリ単位での課金、みたいな。

そういう場合もあるし、もっと広い範囲ボト範囲での課金場合もあるし。

サービス形態契約によっても異なる。

まあとにかく一つだけ確実に言えるのは、こいつが頭おかしいということだけ↓

https://anond.hatelabo.jp/20220128174902

anond:20220129071406

横だけど自分も完全に理解してない

コンピューティングリソース意識しないで済むってことなのかな

ドルアプリ単位での課金、みたいな。

まちがってたら教えて

2022-01-25

本のまとめ

--

この本は5章まであるが、4章と5章はハンズオンであるため、文字としてまとめるのは1から3章に留める。

1章

コンテナとは】

他のプロセスとは隔離された状態OS上にソフトウェアを実行する技術

コンテナ利用のメリット

環境依存から解放

コンテナにはアプリの稼働に必要となるランタイムライブラリを1つのパッケージとして全て含めることができる。そうすることでアプリ依存関係をすべてコンテナ内で完結できる。

依存関係を含めたパッケージリリース単位となる

環境構築やテストに要する時間の削減

優れた再現性ポータビリティ

全ての依存関係コンテナ内で完結するため、オンプレでもクラウドでも起動する。

ステージング環境テスト済みのコンテナイメージプロダクション環境向けに再利用することで、ライブラリ差異による環境ごとのテスト必要工数を削減できる。

リソース効率のアップ

サーバー仮想化では、仮想マシンレベルリソースを分離し、ゲストOS上でアプリが起動する。つまりアプリだけでなく、ゲストOSを動かすためのコンピューティングリソース必要

一方コンテナは、プロセスレベルで分離されてアプリが稼働する。OSから見ると単に1つのプロセスが稼働している扱いになる。

Dockerとは】

コンテナライフサイクル管理するプラットフォーム

アプリコンテナイメージとしてビルドしたり、イメージの取得や保存、コンテナの起動をシンプルに行える。

アプリソースコード + Dockerfile

↓ buildでイメージ作成

イメージ(アプリケーションと依存関係パッケージングされる。アプリライブラリOS)

shipイメージの保存

レジストリに保存

run コンテナの実行

オンプレクラウドなどで起動

Dockerfileとは】

イメージを構築するためのテキストファイル

このファイルコマンド記述することで、アプリ必要ライブラリインストールしたり、コンテナ上に環境変数を指定したりする。

1章まとめ、感想

コンテナの登場により、本番・開発環境ごとに1からサーバーを立ててコマンド設定ファイルを正確に行い、環境差異によるエラーをつぶしていき...というこれまでの数々の労力を減らすことができるようになった。

2章

AWS提供するコンテナサービス

コントロールプレーン

コンテナ管理する機能

コントロールプレーンは2種類

ECSとEKSがある。

ECS

フルマネージドなコンテナオーケストレータ。

オーケストレーションサービスであり、コンテナの実行環境ではない。

ECSの月間稼働率99.99%であることがSLA として保証

タスク

コンテナ動作するコンポーネント

タスクは1つ以上のコンテナからなる

アプリを起動するためにはコンテナ必要

タスク定義

タスク作成するテンプレート定義JSON記述

デプロイするコンテナイメージタスクコンテナに割り当てるリソースやIAMロール、Cloud Watch Logsの出力先などを指定する。

サービス

指定した数だけタスクを維持するスケジューラーで、オーケストレータのコア機能にあたる要素。サービス作成時は起動するタスクの数や関連づけるロードバランサータスクを実行するネットワーク指定

クラスター

サービスタスクを実行する論理グループ

データプレーン

コンテナが実際に稼働するリソース環境

2種類ありECSとFargateがある。 Fargateに絞って書く

Fargateとは

サーバーレスコンピューティングエンジン

AWSのフルマネージドなデータプレーンとして定義されている

コンテナ向けであるためEC2のように単体では使用できず、ECSかEKSで利用する

Fargate メリット

ホスト管理不要であること

サーバーのスケーリングパッチ適用保護管理にまつわる運用上のオーバーヘッドが発生しない。これにより、アプリ開発に専念できるようになる

Fargate デメリット

価格EC2より高い。

利用者コンテナの稼働するOSには介入できない

コンテナごとにENIがアタッチされるため、コンテナごとにIPが振られるため起動に若干時間がかかる

ECR

フルマネージドなコンテナレジストリ

コンテナイメージを保存、管理できる

コンテナが利用されているサービス

Lambda

・App Runner

Lambda

 利用者コードアップロードするだけでコードを実行できるサービスAWS側で基盤となるコンピューティングリソースを構築してくれるフルマネージドサービス

App Runner

 2021年5月GA(一般公開)となったサービスプロダクションレベルスケール可能webアプリを素早く展開するためのマネージドサービスGithub連携してソースコードをApp Runnerでビルドデプロイができるだけでなく、ECRのビルド済みコンテナイメージも即座にデプロイできる。

 ECSとFargateの場合ネットワークロードバランシング、CI/CDの設定などインフラレイヤに関わる必要があり、ある程度のインフラ知識必要になる。App Runnerはそれらインフラ周りをすべてひっくるめてブラックボックス化し、マネージドにしていることが特徴である

ECS Fargateを利用した場合コスト拡張性、信頼性エンジニアリング観点

コスト

EC2より料金は割高。ただし、年々料金は下がってきている。

拡張性】

デプロイの速度 遅め

理由1 コンテナごとにENIが割り当てられるため。ENIの生成に時間がかかる

理由2. イメージキャッシュができないため。コンテナ起動時にコンテナイメージを取得する必要がある。

タスクに割り当てられるエフェメラストレージは200GB。容量は拡張不可。ただし永続ストレージの容量が必要場合はEFSボリュームを使う手もある。

割り当て可能リソースは4vCPUと30GB。機械学習に用いるノードのような大容量メモリ要求するホストとしては不向き

信頼性

Fargateへのsshログインは不可。Fargate上で起動するコンテナsshdを立ててsshログインする方法もあるが、セキュアなコンテナ環境sshの口を開けるのはリスキーである。他にSSMセッションマネージャーを用いてログインする方法もあるが、データプレーンEC2の時に比べると手間がかかる。

しかし、2021年3月Amazon ECS Execが発表され、コンテナに対して対話型のシェルや1つのコマンドが実行可能となった。

エンジニアリング観点

Fargateの登場からしばらく経過し、有識者経験者は増え、確保しやすい。

システム要件確認

多数のユーザーに使ってもらう

可用性を高めるためにマルチAZ構成を取る

CI/CDパイプライン形成し、アプリリリースに対するアジティを高める

レイヤで適切なセキュリティ対策不正アクセス対策認証データの適切な管理ログ保存、踏み台経由の内部アクセス)を施したい

2章まとめ、感想

AWS提供するコンテナサービスはいくつかあり、なかでもFargateというフルマネージドなデータプレーンがよく使われている。ホスト管理不要インフラ関連の工数を削減できる一方、EC2より料金が高く、起動に若干時間がかかるのが難点である

3章

この章では運用設計ロギング設計セキュリティ設計信頼性設計パフォーマンス設計コスト最適化設計について述べている。

運用設計

Fargate利用時のシステム状態を把握するためのモニタリングやオブザーバビリティに関する設計不具合修正デプロイリスク軽減のためのCI/CD設計必要である

モニタリングとは

システム内で定めた状態確認し続けることであり、その目的システムの可用性を維持するために問題発生に気づくこと

オブザーバビリティとは

システム全体を俯瞰しつつ、内部状態まで深掘できる状態

オブザーバビリティの獲得によって、原因特定対策検討が迅速に行えるようになる

ロギング設計

・cloud watch logs

他のAWSサービスとの連携も容易

サブスクリプションフィルター特定文字列の抽出も容易

・Firelens

AWS以外のサービスAWS外のSaaS連携することも可能

Firehoseを経由してS3やRed shiftOpenSearch Serviceにログ転送できる

Fluentdやfluent bit選択できる

fluent bitを利用する場合AWS公式提供しているコンテナイメージ使用できる

セキュリティ設計

イメージに対するセキュリティ対策

 - ソフトウェアライブラリ脆弱性は日々更新されており、作ってから時間が経ったイメージ脆弱性を含んでいる危険がある。

 - 方法

  脆弱性の有無はECRによる脆弱性スキャンOSSのtrivyによる脆弱性スキャン

継続的かつ自動的コンテナイメージスキャンする必要があるため、CI/CDに組み込む必要がある。しかし頻繁にリリースが行われないアプリ場合CICDパイプラインが実行されず、同時にスキャンもなされないということになるため、定期的に行うスキャン必要になる。

cloud watch Eventsから定期的にLambdaを実行してECRスキャンを行わせる(スキャン自体は1日1回のみ可能

提供元が不明ベースイメージ使用は避ける

・IAMポリシーによるECRのパブリック化の禁止

 - オペレーションミスによる公開を防ぐことができる

信頼性設計

マルチAZ構成

Fargateの場合サービス内部のスケジューラが自動マルチAZ構成を取るため、こちらで何かする必要はない。

障害時切り離しと復旧

ECSはcloud watchと組み合わせることでタスク障害アプリエラーを検知できるうえに、用意されてるメトリクスをcloud watchアラームと結びつけて通知を自動化できる

ALBと結びつけることで、障害が発生したタスク自動で切り離す

リタイアという状態

AWS内部のハードウェア障害や、セキュリティ脆弱性があるプラットフォームだと判断された場合ECSは新しいタスクに置き換えようとするその状態のこと。

Fargateの場合アプリはSIGTERM発行に対して適切に対処できる設定にしておかなくてはならない。そうしておかないとSIGKILLで強制終了されてしまう。データ整合などが生じて危険

システムメンテナンス時におけるサービス停止

ALBのリスナールールを変更し、コンテンツよりもSorryページの優先度を上げることで対処可能

サービスクォータという制限

意図しない課金増加から保護するために設けられた制限

自動でクォータは引き上がらない

cloud watch メトリクスなどで監視する必要がある。

パフォーマンス設計

パフォーマンス設計で求められることは、ビジネスで求められるシステム需要を満たしつつも、技術領域進歩環境の変化に対応可能アーキテクチャを目指すこと

ビジネス上の性能要件を把握することが前提

利用者数やワークロードの特性を見極めつつ、性能目標から必要リソース量を仮決めする

FargateはAutoscalingの利用が可能で、ステップスケーリングポリシーターゲット追跡スケーリングポリシーがある。どちらのポリシー戦略をとるかを事前に決める

既存のワークロードを模倣したベンチマークや負荷テスト実施してパフォーマンス要件を満たすかどうかを確認する

スケールアウト

サーバーの台数を増やすことでシステム全体のコンピューティングリソースを増やそうとする概念。可用性と耐障害性が上がる。既存タスクを停止する必要原則ない。

スケールアウト時の注意

・Fargate上のECSタスク数の上限はデフォルトリージョンあたり1000までであること。

VPCIPアドレスの割当量に気をつける

ECSタスクごとにENIが割り当てられ、タスク数が増えるごとにサブネット内の割当可能IPアドレスが消費されていく

スケールアウトによるIPアドレスの枯渇に注意

Application Autoscaling

Fargateで使用可能

Cloud Watchアラームで定めたメトリクスの閾値に従ってスケールアウトやスケールインを行う

ステップスケーリングポリシー

ステップを設けて制御する

CPU使用率が60~80%ならECSタスク数を10%増加し、80%以上なら30%増加する、という任意ステップに従ってタスク数を増減させる

ターゲット追跡スケーリングポリシーとは

指定したメトリクスのターゲット値を維持するようなにスケールアウトやスケールインを制御する方針

ターゲット追跡スケーリングPermalink | 記事への反応(0) | 21:45

本のまとめ

--

この本は5章まであるが、4章と5章はハンズオンであるため、文字としてまとめるのは1から3章に留める。

1章

コンテナとは】

他のプロセスとは隔離された状態OS上にソフトウェアを実行する技術

コンテナ利用のメリット

環境依存から解放

コンテナにはアプリの稼働に必要となるランタイムライブラリを1つのパッケージとして全て含めることができる。そうすることでアプリ依存関係をすべてコンテナ内で完結できる。

依存関係を含めたパッケージリリース単位となる

環境構築やテストに要する時間の削減

優れた再現性ポータビリティ

全ての依存関係コンテナ内で完結するため、オンプレでもクラウドでも起動する。

ステージング環境テスト済みのコンテナイメージプロダクション環境向けに再利用することで、ライブラリ差異による環境ごとのテスト必要工数を削減できる。

リソース効率のアップ

サーバー仮想化では、仮想マシンレベルリソースを分離し、ゲストOS上でアプリが起動する。つまりアプリだけでなく、ゲストOSを動かすためのコンピューティングリソース必要

一方コンテナは、プロセスレベルで分離されてアプリが稼働する。OSから見ると単に1つのプロセスが稼働している扱いになる。

Dockerとは】

コンテナライフサイクル管理するプラットフォーム

アプリコンテナイメージとしてビルドしたり、イメージの取得や保存、コンテナの起動をシンプルに行える。

アプリソースコード + Dockerfile

↓ buildでイメージ作成

イメージ(アプリケーションと依存関係パッケージングされる。アプリライブラリOS)

shipイメージの保存

レジストリに保存

run コンテナの実行

オンプレクラウドなどで起動

Dockerfileとは】

イメージを構築するためのテキストファイル

このファイルコマンド記述することで、アプリ必要ライブラリインストールしたり、コンテナ上に環境変数を指定したりする。

1章まとめ、感想

コンテナの登場により、本番・開発環境ごとに1からサーバーを立ててコマンド設定ファイルを正確に行い、環境差異によるエラーをつぶしていき...というこれまでの数々の労力を減らすことができるようになった。

2章

AWS提供するコンテナサービス

コントロールプレーン

コンテナ管理する機能

コントロールプレーンは2種類

ECSとEKSがある。

ECS

フルマネージドなコンテナオーケストレータ。

オーケストレーションサービスであり、コンテナの実行環境ではない。

ECSの月間稼働率99.99%であることがSLA として保証

タスク

コンテナ動作するコンポーネント

タスクは1つ以上のコンテナからなる

アプリを起動するためにはコンテナ必要

タスク定義

タスク作成するテンプレート定義JSON記述

デプロイするコンテナイメージタスクコンテナに割り当てるリソースやIAMロール、Cloud Watch Logsの出力先などを指定する。

サービス

指定した数だけタスクを維持するスケジューラーで、オーケストレータのコア機能にあたる要素。サービス作成時は起動するタスクの数や関連づけるロードバランサータスクを実行するネットワーク指定

クラスター

サービスタスクを実行する論理グループ

データプレーン

コンテナが実際に稼働するリソース環境

2種類ありECSとFargateがある。 Fargateに絞って書く

Fargateとは

サーバーレスコンピューティングエンジン

AWSのフルマネージドなデータプレーンとして定義されている

コンテナ向けであるためEC2のように単体では使用できず、ECSかEKSで利用する

Fargate メリット

ホスト管理不要であること

サーバーのスケーリングパッチ適用保護管理にまつわる運用上のオーバーヘッドが発生しない。これにより、アプリ開発に専念できるようになる

Fargate デメリット

価格EC2より高い。

利用者コンテナの稼働するOSには介入できない

コンテナごとにENIがアタッチされるため、コンテナごとにIPが振られるため起動に若干時間がかかる

ECR

フルマネージドなコンテナレジストリ

コンテナイメージを保存、管理できる

コンテナが利用されているサービス

Lambda

・App Runner

Lambda

 利用者コードアップロードするだけでコードを実行できるサービスAWS側で基盤となるコンピューティングリソースを構築してくれるフルマネージドサービス

App Runner

 2021年5月GA(一般公開)となったサービスプロダクションレベルスケール可能webアプリを素早く展開するためのマネージドサービスGithub連携してソースコードをApp Runnerでビルドデプロイができるだけでなく、ECRのビルド済みコンテナイメージも即座にデプロイできる。

 ECSとFargateの場合ネットワークロードバランシング、CI/CDの設定などインフラレイヤに関わる必要があり、ある程度のインフラ知識必要になる。App Runnerはそれらインフラ周りをすべてひっくるめてブラックボックス化し、マネージドにしていることが特徴である

ECS Fargateを利用した場合コスト拡張性、信頼性エンジニアリング観点

コスト

EC2より料金は割高。ただし、年々料金は下がってきている。

拡張性】

デプロイの速度 遅め

理由1 コンテナごとにENIが割り当てられるため。ENIの生成に時間がかかる

理由2. イメージキャッシュができないため。コンテナ起動時にコンテナイメージを取得する必要がある。

タスクに割り当てられるエフェメラストレージは200GB。容量は拡張不可。ただし永続ストレージの容量が必要場合はEFSボリュームを使う手もある。

割り当て可能リソースは4vCPUと30GB。機械学習に用いるノードのような大容量メモリ要求するホストとしては不向き

信頼性

Fargateへのsshログインは不可。Fargate上で起動するコンテナsshdを立ててsshログインする方法もあるが、セキュアなコンテナ環境sshの口を開けるのはリスキーである。他にSSMセッションマネージャーを用いてログインする方法もあるが、データプレーンEC2の時に比べると手間がかかる。

しかし、2021年3月Amazon ECS Execが発表され、コンテナに対して対話型のシェルや1つのコマンドが実行可能となった。

エンジニアリング観点

Fargateの登場からしばらく経過し、有識者経験者は増え、確保しやすい。

システム要件確認

多数のユーザーに使ってもらう

可用性を高めるためにマルチAZ構成を取る

CI/CDパイプライン形成し、アプリリリースに対するアジティを高める

レイヤで適切なセキュリティ対策不正アクセス対策認証データの適切な管理ログ保存、踏み台経由の内部アクセス)を施したい

2章まとめ、感想

AWS提供するコンテナサービスはいくつかあり、なかでもFargateというフルマネージドなデータプレーンがよく使われている。ホスト管理不要インフラ関連の工数を削減できる一方、EC2より料金が高く、起動に若干時間がかかるのが難点である

3章

この章では運用設計ロギング設計セキュリティ設計信頼性設計パフォーマンス設計コスト最適化設計について述べている。

運用設計

Fargate利用時のシステム状態を把握するためのモニタリングやオブザーバビリティに関する設計不具合修正デプロイリスク軽減のためのCI/CD設計必要である

モニタリングとは

システム内で定めた状態確認し続けることであり、その目的システムの可用性を維持するために問題発生に気づくこと

オブザーバビリティとは

システム全体を俯瞰しつつ、内部状態まで深掘できる状態

オブザーバビリティの獲得によって、原因特定対策検討が迅速に行えるようになる

ロギング設計

・cloud watch logs

他のAWSサービスとの連携も容易

サブスクリプションフィルター特定文字列の抽出も容易

・Firelens

AWS以外のサービスAWS外のSaaS連携することも可能

Firehoseを経由してS3やRed shiftOpenSearch Serviceにログ転送できる

Fluentdやfluent bit選択できる

fluent bitを利用する場合AWS公式提供しているコンテナイメージ使用できる

セキュリティ設計

イメージに対するセキュリティ対策

 - ソフトウェアライブラリ脆弱性は日々更新されており、作ってから時間が経ったイメージ脆弱性を含んでいる危険がある。

 - 方法

  脆弱性の有無はECRによる脆弱性スキャンOSSのtrivyによる脆弱性スキャン

継続的かつ自動的コンテナイメージスキャンする必要があるため、CI/CDに組み込む必要がある。しかし頻繁にリリースが行われないアプリ場合CICDパイプラインが実行されず、同時にスキャンもなされないということになるため、定期的に行うスキャン必要になる。

cloud watch Eventsから定期的にLambdaを実行してECRスキャンを行わせる(スキャン自体は1日1回のみ可能

提供元が不明ベースイメージ使用は避ける

・IAMポリシーによるECRのパブリック化の禁止

 - オペレーションミスによる公開を防ぐことができる

信頼性設計

マルチAZ構成

Fargateの場合サービス内部のスケジューラが自動マルチAZ構成を取るため、こちらで何かする必要はない。

障害時切り離しと復旧

ECSはcloud watchと組み合わせることでタスク障害アプリエラーを検知できるうえに、用意されてるメトリクスをcloud watchアラームと結びつけて通知を自動化できる

ALBと結びつけることで、障害が発生したタスク自動で切り離す

リタイアという状態

AWS内部のハードウェア障害や、セキュリティ脆弱性があるプラットフォームだと判断された場合ECSは新しいタスクに置き換えようとするその状態のこと。

Fargateの場合アプリはSIGTERM発行に対して適切に対処できる設定にしておかなくてはならない。そうしておかないとSIGKILLで強制終了されてしまう。データ整合などが生じて危険

システムメンテナンス時におけるサービス停止

ALBのリスナールールを変更し、コンテンツよりもSorryページの優先度を上げることで対処可能

サービスクォータという制限

意図しない課金増加から保護するために設けられた制限

自動でクォータは引き上がらない

cloud watch メトリクスなどで監視する必要がある。

パフォーマンス設計

パフォーマンス設計で求められることは、ビジネスで求められるシステム需要を満たしつつも、技術領域進歩環境の変化に対応可能アーキテクチャを目指すこと

ビジネス上の性能要件を把握することが前提

利用者数やワークロードの特性を見極めつつ、性能目標から必要リソース量を仮決めする

FargateはAutoscalingの利用が可能で、ステップスケーリングポリシーターゲット追跡スケーリングポリシーがある。どちらのポリシー戦略をとるかを事前に決める

既存のワークロードを模倣したベンチマークや負荷テスト実施してパフォーマンス要件を満たすかどうかを確認する

スケールアウト

サーバーの台数を増やすことでシステム全体のコンピューティングリソースを増やそうとする概念。可用性と耐障害性が上がる。既存タスクを停止する必要原則ない。

スケールアウト時の注意

・Fargate上のECSタスク数の上限はデフォルトリージョンあたり1000までであること。

VPCIPアドレスの割当量に気をつける

ECSタスクごとにENIが割り当てられ、タスク数が増えるごとにサブネット内の割当可能IPアドレスが消費されていく

スケールアウトによるIPアドレスの枯渇に注意

Application Autoscaling

Fargateで使用可能

Cloud Watchアラームで定めたメトリクスの閾値に従ってスケールアウトやスケールインを行う

ステップスケーリングポリシー

ステップを設けて制御する

CPU使用率が60~80%ならECSタスク数を10%増加し、80%以上なら30%増加する、という任意ステップに従ってタスク数を増減させる

ターゲット追跡スケーリングポリシーとは

指定したメトリクスのターゲット値を維持するようなにスケールアウトやスケールインを制御する方針

ターゲット追跡スケーリングPermalink | 記事への反応(0) | 21:45

2021-12-15

anond:20211215073257

そういうのはそういうので、SBCシングルボードコンピュータ)というジャンルがそれなりに盛り上がっている。主に8ビットCPUボード。たまに68000とかも。いわゆるレトロコンピューティング趣味ね。あのへんなら個人趣味でもなんとかなるレベルから

2021-11-26

ソフトウェア開発の進歩完全に止まったような気がする

(ゲームの話は一切知らん)

つのまにか「Webフロントエンドの動きが速い」とか誰も言わなくなってることにふと気付いた。なんというかソフトウェアをどう作るか、という問題にたいして大枠の部分では完全に固まってしまって、あとは個別事情をどうやっていくかみたいな話しか残ってないように見える。

端的にいえば、宣言UIkubernetes聖杯だったのではないかな。

k8sにかんしては「Cloud Runみたいのでいいじゃん」みたいな話はあると思うんだけど、Envoyほしいとかなってくると結局事実上k8s必須だし、今新しくアプリ作るとき宣言UIじゃないフレームワーク使うこととかほぼ考えられんよな。で、こういう構成定番ですね、みたいになってなんかもう数年は経つ気がする。結果として日本語ソフトウェア開発の話になるとチームビルディングがどうのみたいな話しかなくなってきていて、なんかつまんねーな、と思う。

wasm+エッジコンピューティング進化でまたもっと全然新しいアーキテクチャが出てくるんだろうか。ぼくは今のところあんまりそんな気もしてなこないんですがどうでしょうか。結局そこでチマチマやって得られるユーザー体験の向上の果実って小さくねえか。とはいいつつ Cloudflare Workers でなんかできないかと遊ぶ日々なのだが。

ログイン ユーザー登録
ようこそ ゲスト さん