「Run」を含む日記 RSS

はてなキーワード: Runとは

2022-09-22

anond:20220922105827

あなたが知りたいのは、

No one could run.

No one could not run.

が同じ意味になる理由のことでしょ?

これが、can だと反対の意味になる。

No one can run.

No one can not run.

この違いは、確定した過去出来事を言っているのか、未来可能性を言ってるのかの違いです。

No one could not run.

は、確定した過去のことを言ってるので、二重否定にはならなず、単に no であることを2回強調しているにすぎないのです。

2022-08-24

anond:20220824182342

これ優秀やね。元増田のやつよりお手軽。

あとせっかくだからサムネイルを並べて表示するコードを紹介しとこう。

import matplotlib.pyplot as plt

num_inference_steps = 10            # Number of denoising steps
guidance_scale = 7.5                # Scale for classifier-free guidance
batch_size = 1

def show_images(images, figsize=(20,10), columns = 5):
  plt.figure(figsize=figsize)
  for i, image in enumerate(images):
      plt.subplot(len(images) / columns + 1, columns, i + 1)
      plt.imshow(image)

#入力文字 ここに好きな禁則文字をいれてください
prompt = ["hatena anonymous diary"]

# 画像サイズ
height = 512                        # default height of Stable Diffusion
width = 512                         # default width of Stable Diffusion

# SEED値、ここをかえると 同じ入力文字でも別の画像がでます
seedId = 1

images = []
for i in range(5):
  generator = torch.manual_seed(seedId + i)
  print(seedId + i)
  image = run(prompt,generator,height,width,num_inference_steps,guidance_scale,batch_size)
  images.append(image)

show_images(images)

2022-08-04

運動大事坂東は英治

His palms are sweaty, knees weak, arms are heavy

There's vomit on his sweater already, mom's spaghetti

He's nervous, but on the surface he looks calm and ready

To drop bombs, but he keeps on forgettin'

What he wrote down, the whole crowd goes so loud

He opens his mouth, but the words won't come out

He's chokin', how, everybody's jokin' now

The clocks run out, times up, over, blaow

Snap back to reality, ope there goes gravity

Ope, there goes Rabbit, he choked

He's so mad, but he won't give up that easy? No

He won't have it, he knows his whole back's to these ropes

It don't matter, he's dope, he knows that, but he's broke

He's so stagnant, he knows, when he goes back to this mobile home, that's when it's

Back to the lab again, yo, this whole rhapsody

Better go capture this moment and hope it don't pass him

2022-08-01

anond:20220731183342

自動安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋) 

/**************************************

以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 <h3>o- *************************************/</h3>

//CSVファイルが置かれてるディレクトリパス投稿前にエラー出たら大体ここの設定ミス。 例:"C:\\Users\\sakuraimasahiro\\Documents\\iMacros\\Macros\\rentou\\";

const CSV_DIR =

'C:\\Users\\USER\\Desktop\\iMacros\\Macros\\rentou\\';

//ファイルパスCSV絶対パスで、拡張子必要。iimは相対パスでよく、拡張子不要

const FILE_PATHS = {

//投稿文が書かれたCSVファイル

textCsv: CSV_DIR + 'textNoAnker.csv',

//レス投稿文が書かれたCSV。通常とレス用で分けないなら同じファイルを使えばいい。

replyTextCsv: CSV_DIR + 'textReply.csv',

};

const SETTINGS = {

//投稿後の基本待ち時間

baseWaitTime: 5,

//baseWaitTime+0~waitTimeRange(ランダム)だけ待つ

waitTimeRange: 5,

//連投しすぎだと忠告された場合に処理を一時停止させる時間(秒)

waitTimeForAvoidingPunishment: 60 * 30,

//メール

mail: 'sage',

//名前設定

nameSettings: {

//名前名無しなら''。

name: '',

//以下、偽装ワッチョイ設定。浪人ワッチョイを非表示にしてるときだけtrueにしてね。

//妙なニックネーム(ワッチョイ、アウアウウーなど)をランダムで決めて付加するかどうか。true=付加する。false=付加しない。

nickname: false,

//妙なニックネームの後に付く8桁の文字列ランダムで決めて付加するかどうか。

korokoro: false,

//IPランダムで決めて付加するかどうか。

ip: false,

//地域ランダムで決めて付加するかどうか。

area: false,

},

postSettings: {

//アンカー無し投稿をするならtrue。しないならfalse。noAnkerPostかreplyPostのどちらかはtrueにすること(両方trueでもOK)。

noAnkerPost: false,

//アンカー付き投稿(返信)をするならtrue。しないならfalse。もしnoAnkerPostとreplyPostの両方がtrue場合投稿は返信が優先され、返信対象が見つからなくなったらアンカー無し投稿をする。

replyPost: true,

//最初に取得するアンカー無し投稿CSVファイルの行番号。もし返信用と同じCSVファイルを使うなら-1と入力

noAnkerPostTextCsvStartRow: 1,

//最初に取得する返信用投稿CSVファイルの行番号。もしアンカー無しと同じCSVファイルを使うなら-1と入力

replyPostTextCsvStartRow: 1,

//テキストCSV/返信用テキストCSVの取得行が最終行に達したら最初の行まで戻るかどうか。true=戻る。false=マクロ終了。

textCsvLoop: true,

//返信する場合、これより小さなレス番には返信しない。返信を投稿すると、この数値は前回の返信先のレス番に更新される。

minAnker: 895,

//返信する場合名前に以下の文字列を含む投稿アンカーをつけて返信する(ワッチョイやIPなど名前フィールドにあるものならなんでも可)。配列複数指定可能指定無しなら空配列([])。filterNamesとfilterNamesNotIncluded共に無指定ならレス番1から順に返信していく(minAnkerが設定されてればそこから順に)。以下のfilter系は全て併用可能

filterNames: [],

//↑とは逆に、名前に以下の文字列を含まない投稿アンカーをつけて返信する。↑と併用も可能

filterNamesNotIncluded: [],

//返信する場合、本文に以下の文字列を含む投稿アンカーをつけて返信する。

filterText: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '>>660', '自演擁護', '最後' ,'あいうえお', 'かきくけこ', 'さしすせそ', 'なにぬねの', 'はひふへほ', 'まみむめも', 'やいゆえよ', 'やゆよ', 'らりるれろ', 'わいうえを', 'わをん', 'わいうえをん'],

},

//自分IPアドレス確認VPNとかでIPを変更してマクロを動かしてるとき、突然VPN作動しなくなってIPが元に戻ったときマクロを止めるためのもの

ipSettings: {

//自分現在IPアドレス確認をする。

checkIp: true,

//以下の文字列自分現在IPアドレスに含まれている場合マクロを一時停止する。基本的自分の本当のIPアドレス入力

avoidTheIp: '133.206.99.224',

},

//浪人設定。最後動作確認したのは5年くらい前で、今も同じように動作するかは、浪人を持ってないか確認できずわからない。

roninSettings: {

//浪人ログインしてるかどうかをチェックするかどうか。trueらするfalseならしない。trueにしていてもし浪人ログインしていないことを確認したらログインしにいく。

checkLogin: false,

//浪人ログインメールアドレス

mailAdress: 'abc@def.com',

//浪人ログインパスワード

password: '1234',

},

//false: run()実行させず(デバッグ用)

run: true,

//true: 投稿処理だけしない デバッグ

skipPost: false,

};

/**************************************

設定箇所終わり。

書き込めない時の早見表 - 5ちゃんねるwiki

https://info.5ch.net/index.php/%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%81%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E6%97%A9%E8%A6%8B%E8%A1%A8 <h3>o- *************************************/</h3>

/**************************************

メモ

クラスフィールド宣言できない。

・NULL演算子(??)は使えない。論理積(&&)は使える。

オブジェクトの分割代入はできない。

・importはできない。 <h3>o- *************************************/</h3>

/**************************************

関数 <h3>o- *************************************/</h3>

/**

* ここから始まる。

*/

function run() {

//設定ミスがないか調べる。

checkSettings();

var _TextCsvCursors = new TextCsvCursors(

new TextCsvCursor(

SETTINGS.postSettings.noAnkerPostTextCsvStartRow > 0

? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1

: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,

FILE_PATHS.textCsv,

SETTINGS.postSettings.textCsvLoop,

),

new TextCsvCursor(

SETTINGS.postSettings.replyPostTextCsvStartRow > 0

? SETTINGS.postSettings.replyPostTextCsvStartRow - 1

: SETTINGS.postSettings.replyPostTextCsvStartRow,

FILE_PATHS.replyTextCsv,

SETTINGS.postSettings.textCsvLoop,

),

);

var _LoopStatuses = new LoopStatuses(0, SETTINGS.postSettings.minAnker);

const _MyPosterName = new MyPosterName({

name: SETTINGS.nameSettings.name,

});

//スレURL指定

const _ThreadUrl = openPromptThreadUrl();

//ループ

while (true) {

//IP確認する設定なら、それをする。

SETTINGS.ipSettings.checkIp && checkCurrentIpNotTheIp();

//スレを開く

openUrl(_ThreadUrl.fullUrlHttps());

//浪人ログインする設定なら、浪人ログインしているかどうかを確認し、していなければログインしにいく。

if (SETTINGS.roninSettings.checkLogin) {

if (!checkRoninLogin()) {

loginRonin();

continue;

}

}

//投稿に使うテキスト取得。

const p = (function () {

if (SETTINGS.postSettings.replyPost) {

//返信あり設定の場合。返信対象が無いか調べる。

const targetAnkerNumber = createPostDOMList()

.filterPostnumberHigher(_LoopStatuses.currentMinAnker())

.filterByPostername(SETTINGS.postSettings.filterNames)

.filterByPosternameNotIncluded(

SETTINGS.postSettings.filterNamesNotIncluded,

)

.filterByText(SETTINGS.postSettings.filterText)

.lowestPostNumber();

if (targetAnkerNumber !== null) {

//返信対象があったのでアンカー付き投稿文を作る。

const r = _TextCsvCursors.takeNextRowTextAsReply(targetAnkerNumber);

messageDisplay(`返信対象有り。アンカー先: ${targetAnkerNumber}`);

return {

...r,

updatedLoopStatuses:

_LoopStatuses.updateMinAnker(targetAnkerNumber),

};

}

}

if (SETTINGS.postSettings.noAnkerPost) {

//返信対象無し、或いは返信しない設定の場合アンカー無し投稿文を作る。

const r = _TextCsvCursors.takeNextRowTextAsNoAnker();

messageDisplay('返信対象無し。アンカー無し投稿。');

return {

...r,

updatedLoopStatuses: _LoopStatuses,

};

}

return null;

})();

if (p) {

//投稿

postThenCheckError(

_ThreadUrl.serverName(),

_MyPosterName.randomize({

nickname: SETTINGS.nameSettings.nickname,

korokoro: SETTINGS.nameSettings.korokoro,

ip: SETTINGS.nameSettings.ip,

area: SETTINGS.nameSettings.area,

}),

SETTINGS.mail,

p.text,

);

//_TextCsvCursorsと_LoopStatusesを更新

_TextCsvCursors = p.updatedTextCsvCursors;

_LoopStatuses = p.updatedLoopStatuses.incrementPostCount();

messageDisplay([

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

} else {

messageDisplay([

`返信対象が現われるのを待機中...。`,

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

}

//短時間で連投しまくると規制されるので一定時間待機。

wait(SETTINGS.baseWaitTime + randomRange(0, SETTINGS.waitTimeRange));

}

}

/**

* 投稿処理と投稿結果を見てリトライしたりマクロ終了したり。

* @param {string} serverName サーバー

* @param {MyPosterName} _MyPosterName

* @param {string} postMail メール

* @param {MyText} _MyText

* @param {number} retryTimes

* @returns {void}}

*/

function postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes = 0,

) {

const r =

retryTimes === 0

? new ValuesOfPost(serverName, _MyPosterName, postMail, _MyText).post(

postTo5chTread,

postConfirm,

)

: new ValuesOfPost(

serverName,

_MyPosterName,

postMail,

_MyText,

).postSubstring(retryTimes, postTo5chTread, postConfirm);

if (r) {

back();

return;

}

//エラーページに飛ばされた。エラー情報取得。

wait(7);

const error = createPostErrorMessage().analyze();

messageDisplay(error.message);

if (error.order === 'KILL') {

kill();

} else if (error.order === 'SKIP') {

return;

} else if (error.order === 'TRUNCATE') {

back();

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes + 1,

);

} else if (error.order === 'WAIT') {

wait(SETTINGS.waitTimeForAvoidingPunishment);

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

} else if (error.order === 'LOGIN') {

//動作未確認

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

}

return;

}

/**

* 現在IPアドレスに、SETTINGS.ipSettings.avoidTheIpの値が含まれていないことを確認する。含まれていたらマクロを一時停止。

* @returns

*/

function checkCurrentIpNotTheIp() {

//IP確認ページへ飛ぶ

openUrl('https://www.cman.jp/network/support/go_access.cgi');

const _IpAdress = createIpAdressFromCMan();

if (_IpAdress.includes(SETTINGS.ipSettings.avoidTheIp)) {

pause('現在IP指定した値が含まれていることを確認。');

//ポーズ解除したならもう一度確認しに。

checkCurrentIpNotTheIp();

}

return;

}

/**

* 設定に致命的な問題が無いか検査

* @returns

*/

function checkSettings() {

if (

SETTINGS.postSettings.noAnkerPost === false &&

SETTINGS.postSettings.replyPost === false

) {

return kill('設定エラー。noAnkerPostとreplyPost両方ともfalseになってる。');

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow < 0 &&

SETTINGS.postSettings.replyPostTextCsvStartRow < 0

) {

return kill(

'設定エラー。noAnkerPostTextCsvStartRowとreplyPostTextCsvStartRow両方とも-1になってる。',

);

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow === 0 ||

SETTINGS.postSettings.replyPostTextCsvStartRow === 0

) {

return kill(

'設定エラー。noAnkerPostTextCsvStartRow/replyPostTextCsvStartRowの初期値は-1或いは1以上で。',

);

}

}

/**

* 入力フォームを表示して入力されたスレURLを受け取る。

* @returns {ThreadUrl}

*/

function openPromptThreadUrl() {

const url = prompt('スレURL入力');

return new ThreadUrl(url);

}

/**

* 開いてるスレレス全て読み取ってPostListインスタンスを作って返す。

* 重すぎるので使うのやめ。どうやらインスタンスの大量生成が原因な模様。

* createPostDOMListを使う。

* @returns {PostList}

*/

function createPostList() {

const posts = window.document.getElementsByClassName('post');

return new PostList(Array.from(posts).map((e) => new Post(e)));

}

/**

* 開いてるスレレス全て取得してPostDOMListに格納して返す。

* @returns

*/

function createPostDOMList() {

const posts = window.document.getElementsByClassName('post');

var arrPostDOMList = [];

for (let index = 0; index < posts.length; index++) {

//HTMLCollectionからElementを1つずつ抽出して配列に。

arrPostDOMList.push(posts.item(index));

}

return new PostDOMList(arrPostDOMList);

}

/**

* 開いてる投稿結果画面に表示されてるエラーを読み取ってPostErrorMessageインスタンスを作って返す。

* @returns {PostErrorMessage}

*/

function createPostErrorMessage() {

return new PostErrorMessage(

window.document

.g Permalink | 記事への反応(0) | 15:40

2022-07-27

Wine使用してM1 Macbook AirMacOSエロゲー(まいてつ Last Run!!)を動作

1500円にしてはとても満足できた作品

https://www.dlsite.com/pro/work/=/product_id/VJ013196.html

インストール手順

https://github.com/Gcenx/WineskinServerの手順に従う

64bit版のWS11WineCX64Bit21.2.0だと、次のwmp9インストールが上手くいかない

fakejapaneseは日本語フォントwmp9ゲームムービー再生必要

ユーザー対象でProgram Files以下に入れる方が楽

レイヤー以外の選択肢ではムービー中に音楽は鳴るものの画面は真っ暗になった。

Wineは大変便利、M1チップだがRosetta2のおかげで速度も全く問題ない。他のゲームでも参考になればと思い書いた(Twitterにはエロ書けない)。

2022-06-27

Core Keeper Dedicated Server を VPS 上に構築したときの手順メモ

Ubuntu 22.04 LTS x86_64 で構築。

CoreKeeper側で apt依存しているっぽいので、Ubuntu でやった方が楽だと思います

Tips

Ubuntu 20 TLS でやる場合、/home/steam/Steam/ が /home/steam/.steam/ になってたと思うので、環境に合わせて読み替えてください。

Install steamcmd dependent packages

dpkg --add-architecture i386
add-apt-repository multiverse
apt-get update
apt-get dist-upgrade
reboot

Create steamcmd User

useradd -m steam
passwd steam
gpasswd -a steam sudo

Steamcmd / Core Keeper Dedicated Server Install

sudo -u steam -s
cd
sudo apt install steamcmd
ln -s /usr/games/steamcmd steamcmd
./steamcmd +login anonymous +app_update 1007 +app_update 1963720 +quit

Run steamcmd (Install and Creating Core Keeper Dedicated Server system drectory )

cd ~/Steam/steamapps/common/Core\ Keeper\ Dedicated\ Server/
./_launch.sh

Press Ctrl + C for Stop Core Keeper Dedicated Server

World file migration (if there is an old file)

mkmir -p -m 775 /home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/worlds
chown steam:steam /home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/worlds

Copy old world file (0.world.gzip) to

/home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/worlds

Copy old setting file (*.json) to

/home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/

chmod 664 /home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/worlds/0.world.gzip
chmod 664 /home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/*.json

Backup setting

vi /etc/cron.hourly/corekeeper_backup

#!/bin/bash
cp -a /home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/worlds/0.world.gzip /home/steam/worldbackup/0.world.gzip.`date '+%Y%m%d%H%M%S'`
cp -a /home/steam/Steam/steamapps/common/Core\ Keeper\ Dedicated\ Server/CoreKeeperServerLog.txt /home/steam/worldbackup/CoreKeeperServerLog.txt.`date '+%Y%m%d%H%M%S'`

chmod 777 /etc/cron.hourly/corekeeper_backup

sudo -u steam -s
cd
mkdir worldbackup

Start Core Keeper Dedicated Server

sudo -u steam -s
cd ~/Steam/steamapps/common/Core\ Keeper\ Dedicated\ Server/
nohup ./_launch.sh
tail -f ~/Steam/steamapps/common/Core\ Keeper\ Dedicated\ Server/CoreKeeperServerLog.txt

サーバースペック

利用者問題か、サーバー問題かわかりませんが人数が10人超えると CPU4コア/メモリ4G/100Mbps で結構ラグかったです。

今は CPU6コア/メモリ8G/1000Mbps で動かしています

不具合 (2022/06/28時点)

6-8人以上で2-3時間サーバー動かしてると、Unityライブラリがsegfault起こして、Core Keeper Dedicated Server が落ちます

ログ取れたのでバグレポしましたが、改善するまでは不特定多数が好き勝手するサーバーみたいなのを長期運用するのは厳しいかなと思いますタイミングによってはアイテムロストしてしまうので。

遊びで使うなら、ウォッチドック的なサービスを入れて、落ちたら適宜起動しなおすみたいな対応をした方がよいと思います

2022-05-31

中国日本移住の人気が急上昇

王 青:日中福祉プランニング代表

「やっと人間世界に戻った」と涙…中国日本移住の人気が急上昇の事情Photo:PIXTA

新型コロナウイルス感染拡大の影響でロックダウンが開始されてから、2カ月が経過した中国上海。厳しい制限下の生活に疲れ果て、将来に不安を抱える人が少なくないという。そうした市民の中で、「中国国外への移住」に対する関心が高まっている。中でも、「日本移住したい」という人が相次いでいるのだ。突如、移住先として日本人気が高まっている理由とは何か。(日中福祉プランニング代表 王 青)

中国で「国外脱出」への関心高まる

ロックダウン下の上海移住希望者急増

 この頃、中国ではネット上で「潤学」という言葉がはやりはじめ、注目を集めている。

 中国語で「潤」は、漢字の通り「潤い、利益」などを意味する。ピンイン発音は「run」になるが、これが英語の「run」と同じなので、昨今は「海外脱出する、逃げ出す」という意味を持つようになった。冒頭の「潤学」はこの意味から派生した言葉で、「いつ、どの国へ、どんな手段で」など、海外移住成功に導く知識ノウハウのことを指す。

 中国では今、海外への移住検討する人が急激に増えている。

 中国最大の検索エンジン百度バイドゥ)や最大手メッセンジャーアプリウィーチャット」では、3月下旬から、「移民」というキーワード検索数が爆増したという。例えば、ウィーチャットでの検索数は、4月3日の1日だけで5000万以上となった。単純計算で全人口のうち、約30人に1人が「移民」に関心を持っていることとなる。特に4月3日は、政府ゼロコロナ政策継続姿勢を明らかにしたこともあり、国民の間で“脱出”への関心が高まったようだ。

https://diamond.jp/articles/-/303937

来るな来るな来るな!!!

来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!!来るな来るな来るな!!!




来るな!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2022-05-07

anond:20220507153251

 PDCAを回す、の使い方に近いんじゃないかな。英語でいうとRunとかOperateって感じ。

2022-03-29

英語教育について

家庭教師として高校生英語教えてて最近びっくりした。その子は同日共模試英語点数が8割超えでリーディングリスニングも偏りなく取れてた。ただ基本的なとこで変な間違いがあったので、「この動詞自動詞で使われることはほとんどないから、他動詞として使うと思っていいよ。目的語がなかったら選択肢から外して」って教えたらぽかんとしていた。どうやら自動詞他動詞というものがわかってなかったそう。偏差値70を超える高校の生真面目な新3年生ですらそうなんだから、実際かなりの数の高校生がわかってないと思う。試しに「I run.」の意味を聞いたらもちろん「走る」とわかってたんだけど、「River runs.」を聞いたら「川が、、走る?」、「run a company」を聞いたら「、、、?」という感じだった。彼はシス単の4章の難単語ちゃんと覚えていて、長文で出てきてもおそらく読めるんだろうけど、実際は単語帳に出てきた和訳がなんとなくわかってるだけで他動詞用法自動詞用法区別はできてない。

高校とかで下手に難しい英単語を詰め込ませたり、逆にコミュニケーション英語として難しいお題決めてALTと無理やり会話させてみるより、もっと簡単単語でじっくり会話や英作文をさせて添削したほうがよっぽど効果的だと思う。ネイティブでも知らないような英単語上流階級じゃなきゃ誰も守ってないような規範文法熟語を覚え込ませても、自動詞他動詞区別ついてなかったり、「come」を「来る」、「go」を「行く」、「run」を単に「走る」とだけ覚えちゃってるほうがやばいと思う。

2022-02-28

anond:20220227225335

https://web.archive.org/web/20220226224717/https://ria.ru/20220226/rossiya-1775162336.html

こいつは~・・・・キマってますわ~、ギンギンですわ~・・・

The Advance of Russia and the New World

A new world is being born before our eyes.

Russia's military operation in Ukraine has opened a new era - and in three dimensions at once.

And, of course, in the fourth, internal Russian dimension.

Here begins a new period both in ideology and in the very model of our socio-economic system - but we should talk about this separately a little later.

Russia is restoring its unity - the tragedy of 1991, this terrible catastrophe of our history, its unnatural dislocation, has been overcome.

Yes, at great cost, yes, through the tragic events of the actual civil war, because now there are still brothers shooting at each other, separated by belonging to the Russian and Ukrainian armies - but Ukraine as the anti-Russia will no longer exist.

Russia is restoring its historical wholeness by gathering the Russian world, the Russian people together - in its totality of Great Russians, Belarusians and Little Russians.

If we refused to do this, if we allowed the temporary division to take hold for centuries, we would not only betray the memory of our ancestors, but we would be damned by our descendants - for allowing the collapse of the Russian land.

Vladimir Putin took upon himself - without a bit of exaggeration - a historical responsibility, deciding not to leave the resolution of the Ukrainian question to future generations.

After all, the need to resolve it would always remain a major problem for Russia - for two key reasons.

And the issue of national security, that is, the creation of Ukraine as an anti-Russia and an outpost for Western pressure on us, is only the second in importance among them.

The first would always remain a complex of divided people, a complex of national humiliation - when the Russian house first lost part of its foundation (Kiev), and then was forced to accept the existence of two states no longer one, but two peoples.

That is, either to abandon its history, agreeing with the crazy versions that "only Ukraine is the real Russia," or to gnash their teeth helplessly, remembering the times when "we lost Ukraine.

Bringing Ukraine back, that is, turning it back to Russia, would be more and more difficult with each passing decade - the recoding, derussification of Russians, and the setting against Russian Little Russians-Ukrainians would gain momentum.

And if full geopolitical and military control of the West over Ukraine were consolidated, its return to Russia would become impossible at all - it would have to fight the Atlantic bloc for it.

Now this problem is gone - Ukraine has returned to Russia.

This does not mean that its statehood will be liquidated, but it will be restructured, re-established and returned to its natural state as part of the Russian world.

In what borders, in what form will the union with Russia be fixed (through the CSTO and the Eurasian Union or the Union State of Russia and Belarus)? This will be decided after the end of the history of Ukraine as anti-Russia.

In any case, the period of the split of the Russian people is coming to an end.

And here begins the second dimension of the coming new era - it concerns Russia's relations with the West.

Not even Russia, but the Russian world, that is, the three states, Russia, Belarus and Ukraine, acting geopolitically as one.

These relations have entered a new stage - the West sees Russia's return to its historical borders in Europe.

And it loudly resents it, although deep in its heart it must admit that it could not be otherwise.

Did anyone in the old European capitals, Paris and Berlin, seriously believe that Moscow would give up Kiev? That Russians would forever be a divided people? And at the same time that Europe is uniting, when German and French elites are trying to seize control of European integration from the Anglo-Saxons and assemble a united Europe? Forgetting that the unification of Europe was only possible thanks to the unification of Germany, which happened by Russian good (albeit not very clever) will.

To take a swing at the Russian land after that is the top of ingratitude, but of geopolitical stupidity.

The West as a whole, and even more so Europe separately, did not have the strength to keep in its sphere of influence, let alone to take Ukraine.

Not to understand this, one had to be just geopolitical fools.

More precisely, there was only one option: to bet on the further collapse of Russia, that is, the Russian Federation.

But the fact that it did not work should have been clear twenty years ago.

And fifteen years ago, after Putin's Munich speech, even the deaf could hear that Russia was coming back.

Now the West is trying to punish Russia for coming back, for not justifying its plans to profit at its expense, for not allowing the expansion of the Western space to the east.

In seeking to punish us, the West thinks that relations with it are of vital importance to us.

But that's not true anymore - the world has changed, and not just the Europeans, but the Anglo-Saxons who run the West, understand this very well.

No Western pressure on Russia will get us anywhere.

Both sides will suffer losses, but Russia is ready for them morally and geopolitically.

But for the West itself, an increase in the degree of confrontation has enormous costs - and the main ones are not economic at all.

Europe, as part of the West, wanted autonomy - the German project of European integration does not make strategic sense while maintaining Anglo-Saxon ideological, military and geopolitical control over the Old World.

And it cannot succeed, because the Anglo-Saxons need a controlled Europe.

But Europe also needs autonomy for another reason - in case the United States moves to self-isolation (as a result of growing internal conflicts and contradictions) or concentrates on the Pacific region, where the geopolitical center of gravity is shifting.

But the confrontation with Russia, into which the Anglo-Saxons are dragging Europe, deprives Europeans of even a chance for autonomy - not to mention the fact that in the same way they are trying to impose on Europe a break with China.

While the Atlanticists are now happy that the "Russian threat" will unite the Western bloc, those in Berlin and Paris cannot but understand that, having lost hope of autonomy, the European project will simply collapse in the medium term.

That is why independent-minded Europeans are now completely uninterested in building a new iron curtain on their eastern borders - realizing that it will turn into a corral for Europe.

Whose century (half a millennium to be exact) of global leadership is in any case over - but various options for its future are still possible.

Because the construction of a new world order - and this is the third dimension of current events - is accelerating, and its contours are becoming clearer through the sprawling cover of Anglo-Saxon globalization.

The multipolar world has finally become a reality - the operation in Ukraine is unable to rally anyone but the West against Russia.

Because the rest of the world can see and understand perfectly well - this is a conflict between Russia and the West, this is a response to the geopolitical expansion of the Atlanticists, this is Russia's return of its historical space and its place in the world.

China and India, Latin America and Africa, the Islamic world and Southeast Asia - no one believes that the West rules the world order, much less sets the rules of the game.

Russia has not just challenged the West - it has shown that the era of Western global dominance can be considered fully and finally over.

The new world will be built by all civilizations and centers of power, of course, together with the West (united or not) - but not on its terms and not by its rules.

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

2022-01-23

anond:20220123224819

夢の技術やで

人類がいまだかつて実現できたことがないWrite once, run anywhereや

2022-01-14

anond:20220113164937

temple runって昔クソ流行ったクソゲーのなんかでそのSE使われていた気がする

2022-01-09

2021年買ったゲーム全部書く

勢い

買った順

Gladiabots

カルネージハートみたいなやつ。プログラム組んでロボットで対戦。好きなはずなのにハマれず

Dyson Sphere Program

ダイソン球(恒星を囲むエネルギー施設)を作るゲームプレイヤーイカロスくんが惑星開拓して資源宇宙へ送り出す

多くのゲームが見下ろし型だとすると、宇宙を見上げる視点が新鮮。空の向こうに作られる巨大構造物は圧巻。アップデートに期待

Stellaris: Lithoids Species Pack(DLC

Stellaris: Necroids Species Pack(DLC

とりあえず買い足した

Valheim

バイキングファンタジーサバイバル建築楽しいけどモンスター襲撃と開拓の慎重さがシビアでハマれず

Subverse

クラウドファンディングで昔入金してたエロゲリリース実用性はあるけどエロ以外の要素がちょっと重たい

モンスターカンパニーゲーム課金

スマホゲー。覚えてない

コンカラーズ・ブレード(ゲーム課金

このシーズンからプレイ大人数でそれぞれ部隊を率いて攻城戦をやるゲーム

シーズン初期の下位ユニット縛りだと楽しめたけど、後半上位ユニットが出るとメタで負けると終わりな部分でリタイア

Voxel Tycoon

リッチSimutrans資源を運んで街を成長させる。ゲームとしての作りが甘く重たくなるとオブジェクトが消えたりした。寝かせる

Elona mobile

スマホゲー。原作ゴミ箱に5回叩き込んだがこっちは割と楽しめた。今はもうプレイしてないが面白かった

ガラス

エロパズルゲーム実用的でDLCも全部買った

まいてつ Last Run!! 進化するコンプリートパック

付属セルフカバーアルバム目的で500円で買った。ゲームは未プレイ

Space Engineers - Decorative Pack #2(DLC

Space Engineers - Sparks of the FutureDLC

久しぶりにプレイしようと買い足し。地球から水素エンジンで飛び出して小惑星探索するの楽しかったけど色々大変で積んだ

キミの声がきこえる リニューアルパッケージ

2007年くらいのエロゲ。好きだったのでお布施買い

ランス5D -ひとりぼっち女の子-

積んでる

Going Medieval

中世サバイバル街づくりゲームクロスボウと罠で山賊をしばきながら建物を作るのが楽しい。アプデに期待

Rail Route

鉄道運輸司令ゲーム路線図を引く、列車は四角、信号制御する。ダイヤグラムが引けるようになるのを期待

Cookie Clicker

伝説クリッカーお布施買い

Timberborn

ビーバー街づくりSLGダム作って水遊びするの楽しい実装2種族は概ねクリアしたのでアプデ待ち

RimWorld

ジャンルの始祖を今更買う。全くハマれず積む⋯⋯

DYSMANTLE

全部壊せる探索ゲーム。実際に壊すための装備はエンドコンテンツなのはどういうバランスだ? アプデ続いてるので楽しみに待ってる

Tavern Master

スーパーカジュアル酒場経営ゲーム遊んだ気になれる、こういうのでいいんだよ。マッハクリア

Hardspace: Shipbreaker

宇宙解体ゲーム。手作業解体。最新版の気圧+可燃性気体がヤバすぎてミスる宇宙船もゲーム動作クラッシュする

宇宙船のバリエーションが増えればいくらでも楽しめると思うのでアプデやワークショップ対応に期待

SnowRunner

泥道と雪道をトラックで駆けずり回るオープンワールド。8輪装甲車最強伝説

2020年

anond:20201229181234

2021-12-22

anond:20211222220255

FPSで遊ぶのをやめたら今度は作ってみるとか…

UnityUnreal使ってもいいし、ゼロからCとかで書いてもいいし、

GitHubあされば他人FPS猿人もあるし…

最近だとRustで書かれてればgit cloneしてcargo runで一発で動くし…

(Rust未だに読み書きつらいけど…

2021-11-27

anond:20211126224044

コンテナはいものk8s はよくないものであるとして、じゃあ何でコンテナオーケストレーション実現するの? ECS? Fargate? Cloud Run?

と言い出すと単なる場面に応じた取捨選択の話であって、k8sけが絶対ダメってのは極端すぎる意見だな。

2021-11-26

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

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

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

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

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

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

2021-11-17

anond:20211117183255

さすがにcanがでてきた時とかおぼえとるやろ?

たかしくんは早く走れる Takashi can run fast」みたいなやつ。



だいたい完了形のhaveとか関係詞のwhichあたりで英語あきらめるやつが多い

現在活動中の女性声優ユニット

どれだけ知ってるかなと自分を試したくなったので書いてみる。これが足りないぞ!といった指摘歓迎。

レーベル系のユニット

特定作品と紐付かずに活動しているユニット

スフィア

わずとしれたミュージックレインの筆頭。4人全員が文句なしの人気声優寿美菜子ロンドンにいるのにYouTubeとかで揃って活動できてて現代すごい。

TrySail

ミュージックレイン2期生すイエんサーナレーションをしている。

月のテンペスト(ミュージックレイン3期生)

ミュージックレイン3期生ユニットではないがTwitterアカウント共通。月のテンペストは後述のIDOLY PRIDE作品内で結成されてるユニットなので後述のコンテンツ系判断に迷うところ。スフィアTrySail作品ユニットを結成している。

22/7

ソニーミュージックだがミュージックレインと違って坂道アイドル系統。超絶人気というわけではないが特典会商法軌道に乗ってるのでCD売上はトップ三四郎相田の顔は22/7計算中で覚えた。キャラクターと紐付いているがコンテンツ系とするのも違うかと思ったのでこちら。

i☆Ris

avex×81プロデュースで結成された最初ユニットプリパラから上手く飛躍できたように見える。最近は芹澤・若井が陶芸をしている。

Run, Girls, Run!

同じくavex×81プロデュースWake up, Girls!の妹分的な感じだったような?プリチャンが終わったがi☆Risほど伸びた感がなく今後どうなるか。

DIALOGUE+

後述のCUE!のキャストから結成されているが特にCUE!と関係する活動はしていない。

ピュアリーモンスター

石飛恵里花がいたところ。この前卒業ライブやってた。

ギルドロップス

飯田里穂プロデュース(まだやってるかは不明)。BSフジマヂカルラブリーMC冠番組をやるという謎に強いキャスティングをしている。

コンテンツ系

特定作品のためのユニット

AqoursSaint Snow(ラブライブ!サンシャイン!!)

Aqours紅白歌合戦には出演したが出場はしていない。いろいろ歌番組に出演している。最近ユニットユニットライブを開催してる。

虹ヶ咲

ユニットなのかユニットではないのかよくわからないが、多分ユニット

Liella!(ラブライブ!スーパースター!!)

全国ツアー中。毎週ライブで大変そう。

アイマス

たくさんある

バンド

ポピパとかRoseliaとか

D4DJ

ピアラとか

ワルキューレ(マクロスΔ)

劇場版公開中で近いうちにライブがある。

サニーピース(IDOLY PRIDE)

月のテンペストと異なりこちらはキャスト所属も別。

AiRBLUE(CUE!)

DIALOGUE+元ネタソシャゲサービス終了したが1月からアニメ放送

ウマ娘

なんか紅白に出るとか出ないとか。ユニット名前があるわけでもないのでキャラソン表現すべきだろうか。

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