「ルーティング」を含む日記 RSS

はてなキーワード: ルーティングとは

2024-10-13

ルーティングワークが好きな俺にITは不向きなのか?

サーバー監視なら行けるのか?

2024-09-29

anond:20240929092551

計算機科学知識体系とネットワーク技術

計算機科学は、情報理論的基盤から実用的な応用まで、広範な領域カバーする学問です。以下に、計算機科学の主要な分野と、特にネットワークに関連するトピックを体系的にまとめます

1. 計算機科学の主要分野

1.1 アルゴリズムデータ構造

アルゴリズム設計: 問題解決のための効率的な手順の開発。

データ構造: データの整理と管理効率化するための手法

1.2 プログラミング言語コンパイラ

プログラミングパラダイム: 手続き型、オブジェクト指向関数型、論理型など。

コンパイラ設計: 高水言語機械語翻訳する技術

1.3 オペレーティングシステム

プロセス管理: CPUスケジューリングマルチタスキング

メモリ管理: 仮想メモリメモリ割り当て。

ファイルシステム: データの保存とアクセス方法

1.4 データベースシステム

リレーショナルデータベース: SQLによるデータ操作

NoSQLデータベース: 非構造データ管理

1.5 人工知能機械学習

機械学習アルゴリズム: 教師あり学習教師なし学習強化学習

深層学習: ニューラルネットワークによる高度なパターン認識

1.6 ソフトウェア工学

開発プロセス: アジャイルウォーターフォールモデル

品質保証: テスト手法バグトラッキング

1.7 セキュリティ暗号

暗号アルゴリズム: 対称鍵暗号公開鍵暗号

セキュリティプロトコル: SSL/TLSIPsec

2. ネットワーク技術

ネットワークは、情報の共有と通信可能にする計算機科学の核心的な分野です。

2.1 ネットワークの基本概念

OSI参照モデル: ネットワーク通信を7つのレイヤーに分割し、それぞれの機能定義

物理層: 電気信号ビット伝送。

データリンク層: フレーム転送エラー検出。

ネットワーク層: パケットルーティング

トランスポート層: エンドツーエンドの通信制御

セッション層: コネクションの管理

プレゼンテーション層: データ形式の変換。

アプリケーション層: ユーザーアプリケーション使用するプロトコル

TCP/IPモデル: 現実インターネット使用される4層モデル

2.2 ネットワークトポロジー

スター型: 中央ハブを介して各ノード接続

リング型: 各ノードが一方向または双方向に隣接ノード接続

バス型: すべてのノードが一本の通信ラインを共有。

メッシュ型: ノード間が多重に接続され、高い冗長性を持つ。

2.3 ネットワークプロトコル

IPInternet Protocol): データパケット化とアドレッシング

TCPTransmission Control Protocol): 信頼性のある通信提供

UDPUser Datagram Protocol): 信頼性よりも速度を重視した通信

HTTP/HTTPS: ウェブデータの送受信。

FTP/SFTP: ファイル転送プロトコル

SMTP/POP3/IMAP: 電子メールの送受信。

2.4 ネットワークデバイス

ルーター: 異なるネットワーク間のパケット転送ルーティング

スイッチ: 同一ネットワーク内でのフレーム転送

ブリッジ: ネットワークセグメントの接続

ゲートウェイ: 異なるプロトコル間の通信可能にする。

2.5 ワイヤレスネットワーク

Wi-Fi802.11規格): 無線LANの標準技術

Bluetooth: 近距離間のデータ通信

セルラーネットワーク: モバイル通信3G、4G、5G)。

2.6 ネットワークセキュリティ

ファイアウォール: 不正アクセスを防止。

IDS/IPS(侵入検知/防止システム): ネットワーク攻撃の検出と防御。

VPN仮想プライベートネットワーク): 安全リモートアクセス提供

暗号技術: データの機密性を保護

2.7 クラウドネットワーキング

クラウドサービスモデル: IaaSPaaSSaaS

仮想ネットワーク: ソフトウェアによるネットワーク構築。

SDNSoftware-Defined Networking): ネットワークの柔軟な管理制御

2.8 分散システム

分散コンピューティング: 複数ノードタスク分散処理。

ブロックチェーン: 分散型台帳技術

2.9 IoTモノのインターネット

センサーネットワーク: デバイス間の通信データ収集

IoTプロトコル: MQTT、CoAPなどの軽量プロトコル

2.10 ネットワーク管理モニタリング

SNMPSimple Network Management Protocol): ネットワークデバイス管理

ネットワークトラフィック分析: パフォーマンスセキュリティ最適化

3. ネットワーク技術の最新動向

3.1 5Gと次世代通信

帯域幅と低遅延: リアルタイムアプリケーションの実現。

エッジコンピューティング: データ処理の分散化。

3.2 SD-WANSoftware-Defined Wide Area Network

ネットワーク仮想化: 柔軟なWAN構築とコスト削減。

中央集中的な管理: ネットワークポリシーの一元管理

3.3 ネットワーク自動化AI

ネットワークオーケストレーション: 自動化された設定と管理

AIによるトラフィック最適化: パフォーマンスの向上と障害予測

3.4 ゼロトラストセキュリティ

信頼しない設計: 常に認証検証を行うセキュリティモデル

マイクロセグメンテーション: ネットワーク内部の細かなアクセス制御

4. 学習リソースと参考文献

4.1 推奨書籍

コンピュータネットワーク』 アンドリュー・S・タネンバウム著

TCP/IP詳解』 W. リチャード・スティーブンス著

ネットワークはなぜつながるのか』 戸根勤著

4.2 オンラインコース

Coursera: 「コンピュータネットワーク」、「ネットワークセキュリティコース

edX: 「Computer Networking」、「Cybersecurity Fundamentals」

4.3 標準化団体リソース

IETFInternet Engineering Task Force): ietf.org

IEEE Communications Society: comsoc.org

W3CWorld Wide Web Consortium): w3.org

2024-06-28

ウェブの開発めんどくさい

特に入力制限がいっぱいある系

画面上でできなくしてもサーバーに直接リクエスト送ってくるからって同じことをサーバーでも実装しないといけなくてすごくめんどくさい

言語同じかつ単純な規則共通化できたりするけど実際はそうじゃないものが多いし

画面での操作禁止とそれらを無視して編集後のデータだけ送ってくるのだとチェックの仕方も違う

追加できないなら追加ボタンさないだけで済むが、サーバー側だと送られてきた件数だけじゃなくてもともとあったものと一致してるかもチェックが必要とかそういうの

 

ウェブのほうが楽だからデスクトップアプリからウェブに移すがここ数年は多かったが本当に楽か?って思う

画面の柔軟性はあるが、そのせいであれこれ細かい注文がついたりしてそれも面倒が増える原因だし

 

ウェブだとそれが当たり前だからってサーバー側もデータのチェックしてるけどデスクトップアプリじゃそんなことしてなかった

それのリプレースなんだし、別にしなくていいんじゃないかと思う

デスクトップアプリだってサーバー通信してるんだから直接リクエスト投げれるわけだし

ウェブなら便利な開発者ツールがあるから今送ったものの中身を見てちょっとか書き換えて送るが楽なだけ

デスクトップアプリだってパケットキャプチャしたり、逆コンパイルしてソースコード見ればできるわけだし

クライアント証明書があるから~とかい意見いたことあるけど、ローカルにあるファイルなんだから、直リクエストするときだってそれ使えるよね

 

他のウェブの面倒なところでURLがあるのもひとつ

直接編集画面を開けてしま

デスクトップアプリだと起動後のホーム画面から順番にボタンを押さないと画面を開けない

から一覧画面で編集ボタンを出さなければその項目の編集画面は開けない

でもウェブURLで直接行ける

そのせいで一覧画面で編集ボタンを出さないのに加えて編集画面で自分編集可能かのチェックまで必要になる

めんどくさい

 

考えてみればURLで直接開けることは要件にあるわけじゃないんだし、URLマッピングしないメモリ内でのルーティングでもいい気はする

リロードすれば毎回トップページに戻るけど普段使う上でリロードなんかしないし別に問題ないと思う

思い返せば意外とそういうのは社内システムかにはあった

ドキュメント等でもないアプリケーションなのにウェブからって無理にURLの直接アクセスなんてサポートしなくていいか

2024-05-07

引っ越しがややこしい

賃貸が基本だったので戸建てへの引越しが非常に大変だ

何が問題かというと主に電気光回線などのインフラ回りに関してだね

さすがに住所変更や免許更新とかの定番のものクリアできるけど、逆に光回線とか頻度が高くなく知見が貯まりにくいものが面倒だ

今回失敗したのはその光回線で、1か月後の引っ越しに合わせて回線契約をした

けれどうっかり工事の日程を引っ越しの前にしてしまった

理由は単純で、案内では工事業者訪問せずに自力ルーターとか設置してくれとあったため

なら鍵の受け渡しを済んでいる時点でさっさと取り付けようと思っていたが、実はNTTONU設置工事別に存在した

これも自力で行うものなんだけど、そもそもONU引っ越し先の住所に届くから家にいないと受け取れないことがわかった

しかONU自体工事日より前につくらしく、わざわざ新居に行っても不在通知が残ってる可能性が高い

素直に引っ越し日の次の日にすればよかったんだが、こういう細かい日程の感覚はつかみづらい

さらに、そもそもONUルーターの設置だけでよいかも怪しい

中古物件で以前の世帯光回線契約していたから、光コンセントもあると踏んでいたけど実地で確認するのを忘れていた

不動産屋に頼んで確認してもらうけどもし光コンセントごと撤去されていると非常にややこしくなる

よほどこの手のことに詳しい人でない限りは丁寧に説明してくれないから全部自力で何とかしないといけない

けど俺よりさら知識が薄くて忙しい人はどうしているんだろう

引っ越し当日に電気もガスも水道ネットもないなんてことありそうだ


他にも電気水道など賃貸では基本的にセットになっており契約スムーズに行えるインフラなども自力でやらないといけない

特に「いつまでに連絡すればいいか」が全然からない

賃貸なら業者も決まっているし光回線も既に通っているから気にしなかったが、自分で全て設定することになると細かいタイムテーブルが難しい

ルーティング業務でもないのでメモしても次に生かされることも少ない

まあさすがに住宅ローンとかはある程度早めに動いていたからいいけど、こういうインフラ回りってあんまり教えてもらえないよね

2023-11-08

Cities Skylines 2 感想

メガロポリスまで達成したので感想を書く

なんでスチムーに書かないのかって?顕名で残したくないからだよ!

さっそくいってみよう!

全般的感想

おすすめできるか?→今はまて。いろいろ不具合ゲームバランス問題があってある程度以上発展させることが難しい。半年後なら安心して楽しめるかも。正直今は先行レビューくらいのクオリティ

もともと都市シミュレーション系のゲームが好きで楽しみにしていたので俺は楽しむことができた

いわゆるシムシティ系の作業が好きなら楽しめる。

できる都市ディテールに凝っていて、車から景色を眺めると田舎から都市シームレス風景が変わっていきおおーってなる。俺はわざわざOBSで録画しちゃったもんね

達成レベル最高のメガロポリスに到達するまでのプレイ時間はだいたい100時間くらい。メガロポリス到達時点の人口は30万人くらい。日本政令指定都市が50万人以上だからメガロポリスという名称には少し違和感がある

いいところ

道路線路が引き放題、曲げ放題→CSの魅力といったらこれでしょうと思う。時々日本の高速の複雑なジャンクションのことが話題になるけど、あれに勝るとも劣らないキチガイジャンクションが作り放題ですよ。俺は絶対住みたくない笑

絵がきれい→上でも書いたけど風景が本当にきれい

不具合さえなければ永遠に遊べる盆栽ゲー→今作はいろいろ不具合があって成長に限界があるけど、それさえなければ永遠に手を入れることができる盆栽ゲー。ヌルっと遊びたいエンジョイ勢から細部にこだわるみなさんまで時間無限に溶ける。渋滞対策とかはこれの極みで、丁寧に丁寧に遅さの原因を取り除いてスムーズに流すことができる快感を覚えると時間無限に溶けていく。俺みたいなマイルドアスペ過集中ガイに与えると寝食を忘れてやる。これ老人ホームに入れたら老人が幸せのままにポックリ逝くんじゃないか

悪いところ・イマイチなところ

Clipperが使えない→Clipperってのはゲーム内のTwitterみたいなSNSなんだけどこれが全く意味がない。住民が一部でも不満をもったらバカバカ投稿されるので、ある程度都市が大きくなるといちいち聞いてらんないとなって最終的には表示をオフにしてしま

ラジオ英語ゲーム内にラジオがあって、交通事故停電があるとしゃべってくれるんだけど英語なので日本人にはきつい。BGMのように音楽も流してくれるんだけど、数曲しかないので結局これもオフにしてしま

小学校公園が大量にできる→就学率の向上と住民満足度を向上させるために異様に小学校公園建設することになる。1つの小学校あたりの定員が1500人で、いやもうちょっといけるだろという日本人の感覚から少しズレがある。ほんと1つの通りに1個小学校と3つの公園があるような感じになってゲームバランス的にこれはどうなん

カメラ機能イマイチ機能がやたら複雑でスクリーンショット1枚取るのに一苦労。俺は断念してOBSでやったw

車の方向転換がイマイチCS1からだけど、車の方向転換や車線変更意味不明におおげさ。で後続の車がつまってあっというまに渋滞発生。高速道路で4レーンまたぎ車線変更とかバックして切り返しとかしないでしょっていう

公共交通ツールイマイチ→1つの道路複数路線が走っていると路線選択するのがわかりずらい。いったん作った路線停留所を加えるとルーティングおかしなことになることがある。路線から停留所を削除することができない。変更の反映にタイムラグがあり、変更結果を確認しようとして実車ビューにしているとその車や電車が突然消えたりする(その後車庫から新たに生成されて出てくる)

現状わかっている不具合

もうボロボロ出てきてるんだけど気を長くして修正を待とうというか俺は待つ

パフォーマンス問題→これはいろいろな人が書いているので割愛。開発元も最優先で取り組んでるので現状待つしかない

住民が異様にゴミを捨てる→プレイエリア20%程度をゴミ捨て場が専有するようになって夢の島もびっくりのゴミだらけ都市ができあがる。これおかしいだろという指摘がある

https://steamcommunity.com/app/949230/discussions/0/3937895474112080034/

郵便処理施設バグ郵便局の上位施設郵便振り分け施設というのがあるが、それがまともに機能しないので郵便が貯まりまくる。で、郵便がうまく動いていないと住民満足度バカ落ちして都市から住民が逃げていく。最終的に発展が不可能になる。お前らそんなに郵便好きかよメールでいいだろうが

https://steamcommunity.com/app/949230/discussions/0/3877095833479248137/

かにも細かい不具合は山ほどある

書いているとこれダメなんじゃねと思えるが、俺は楽しめたし不具合が直ればまた遊びたいので人を選ぶゲームなんだと思う

とりあえず次のホットフィックス待ってます

「熊を殺すな」という電話罵倒するだけのボランティアおじさん

募集したら集まるのでは?

役所とかで、その手の苦情だと判明したらルーティングボタンを押す

するとボランティアおじさんに回される

ボランティアおじさんは単純に相手を「バカヤロー」とか罵倒するだけでも良いし、独自理論説教しても良い

基本的に何言ってもOK

ボランティアおじさんの住居は役所自治体に限らないので、全国から募集できる

とりあえず電話先の相手罵倒したいだけのおじさんって結構いそうなんだけどな

2023-06-07

そもそも住所を正規化しなくていいのでは?

荷物が届けばいいっていうだけなら現状でも届いているので十分なのでは?

らくだけど現状って

っていう感じになってて、ほぼインターネットルーティングみたいになってる気がする(インターネットの方が後発だが)

配達員知識をどうやって継承していくか、っていう問題はあるけど

まぁそこにAIを使うか、照会前提にしておいて電話番号等の連絡先を併記すれば良いんじゃないか

一括管理したい理由として土地情報を知りたいなら登記管理してるし

なぜ住所を正規化デジタル化したいのかな

住所って増えたり減ったり表記が変わったり住む人変わったりするのでめちゃくちゃアナログ

正確にデジタル化できるようなものではないと思うけどね

2023-04-02

このWin11のデスクトップPC、有線LANポートが1個しかない!

イオイ、有線でネットに繋げながら他のパソコンを有線で繋げたい時にどうするんだよ困るなあ


どうするんだろうな

今どきフツーのデスクトップPCでそんなことする奴いねから1個で充分だよな(昔は2つついてた気がする)

ルーティング機能ってWindows11Homeについてる?ルーティングサービス有効しろ?あー…

2023-03-24

和製 ChatGPT の作り方

どうせ官主導ではうまく行かない。だが、理想論をぶち上げる意味はあるだろう。

異次元に膨大な計算リソースもつAI処理基盤システムの構築が必要

計算基盤を自作するのは非常に重要で、そうしないと、GPUクラスタ内での並列化や通信ネットワーキングなど、ChatGPT を動かすためのコアの機能を獲得することができない。正直、ここを外資に握られてたらどうしようもないんじゃないか

膨大な計算リソースを共有し、活発に議論する研究者コミュニティの創成が必要

技術的には、そもそもインフラ整備が必要

とは言え、現実的には……

2023-03-03

IOWNという呪い

NTTが満を持して出してきたIOWNというネットワークサービスが予想通りがっかりだったので解説しておく

IOWNとは

そもそもIOWNって何?っていう話については恐らくNTT社員でも誰一人答えられないので割愛したいが

発端は電気によるネットワークルーティング限界が来ていることから始まっている

これは性能的な限界でもあるのだが消費電力の限界でもある

このままではルーター1機に原発1台という時代になりそう、というのはよく言われた話だ

IOWNは光を使ったルーティングを行い、End-To−Endで電気を使わずに光だけで通信すること(All-Photonics Network: APN)が構想の発端である

電気によるルーティングには遅延が発生することもあって「大容量・低消費電力・低遅延」の3つが特徴として挙げられる

大容量

大容量かどうかはネットワーク契約帯域を見ればすぐに分かる

1Gbpsしか無かったのに10Gbpsが登場すれば「大容量になった!」となるだろう

IOWNは100Gbpsを提供してくれる

ちなみに今でも企業向けに100Gbpsの専用線サービス存在している

また、NTT東西は昨年400Gbpsのサービスも開始した

なのでIOWNは何も大容量サービスではないのだ

ただ、IOWNにおけるNTT側の性能目標はIOWN1.0で従来の1.2倍なので

まぁ実効速度として1.2倍という意味だと思えばこの100Gbpsも妥当かもしれない

また、IOWN2.0では6倍になるとのことなので600Gbpsが実現できるのであろう

ローンチで現行より劣っているのは残念に他ならないが安全側に倒したと思えば分からなくも無い

低消費電力

低消費電力は我々にはほとんど影響がなく、NTT社内の話なので「知らんがな」という感じなのだ

ユーザーに影響があるとすれば価格への転嫁ぐらいであ

低消費電力でランニング費用を抑えることができているはずなので提供価格も下がるはずである

さて、IOWN1.0の提供価格は月額198万円とのことである

現在提供されている100Gbpsの専用線サービスも198万円である

これも資料を見るとIOWN1.0では1.0倍とのことなので妥当価格である

IOWN2.0では13倍(倍とは?)とのことなので価格も大幅に下がってくれるだろう

逆に現状では一切電力効率は良くなっていないのに同価格で出してきてくれていることは良心的ですらある

低遅延

ということで大容量・低消費電力に関しては現行と同等もしくは劣っているIOWN1.0だが

遅延に関してはIOWN1.0で1/200を目指している

これはIOWN4.0まで1/200なのでこれより下がることはなく、逆にIOWNの目指している低遅延をローンチから体験できるということになる

さて、低遅延になって誰が嬉しいのかはさておき、現状では東京大阪間で15msぐらいである(往復)

これが1/200になると75μsとなるのだが、東京大阪間の光の伝搬遅延だけで5msはあるのでいくらIOWNでも光の速度は超えられない

なので機器遅延の10msのみが1/200となるとすると50μsとなり、往復遅延は5.05ms、ほぼ5msぐらいになる

実際に実証実験では8msを実現できたとのことなので大変速くなっているのだろうが

15msが8msになったのを「1/200」と言われるのはモヤッとする

そのせいなのか、「IOWNが提供できる低遅延の価値」という資料では、「映像処理やコーデックに関わる部分を省略できるので実質1/200」という言い方に変えている

まりは大容量であることを活用して非圧縮送信すればコーデック部分の処理遅延を減らせるとの主張である

コーデックの遅延は製品にもよるが200〜800msぐらいある

また、超低遅延のコーデックなら10msを実現できるらしい(使ったことはないが)

伝送遅延なんて無視できるほどコーデックの遅延は大きいので非圧縮であれば確かに遅延が1/200になるような体験ができるだろう

ただしそれは従来の100Gbpsネットワークでも実現できる

特にこの手の非圧縮による低遅延化というのは10Gbpsのネットワーク研究する際によく使われた方便

4K映像を非圧縮で送ると6Gbps消費するため10Gbpsにしましょう、という論法なのだ

それが今の時代では、8K圧縮は72Gbps消費するから100Gbpsにしましょう、という話なのである

ちなみに8Kで120Hzなら144Gbps必要なのでまだまだご飯を食べられるのだろう

問題なのはこの非圧縮リアルタイム映像伝送ほとんど使われていないということである

コーデック進化することでコーデックにかかっている遅延は無視できるようになり

特に高精細映像であるほど圧縮率が高くなるのでネットワーク負荷のコストの方が問題になるのだ

なので実際の利用で非圧縮伝送はほとんど用いられておらず、主にネットワーク試験で用いられているのが現状である

まぁこの辺はさておいたとしても、結局はIOWNの実現した大半の価値である低遅延の部分は従来でもやっている技術であって真新しいことではない

7ms価値はあるか

それでも従来の100Gbpsでは15msだった遅延が8msになったとなれば1/200とまではいかなくても価値があるだろうか

遠隔での演奏実験した際の記事が興味深く、8msの遅延ということは3m程度離れて演奏したことになる

まりは15msなら5m離れていることになる

この2mに価値があるのだろうか

また、人間の脳のクロック間隔は30msであるという研究結果がある

まりは30msより速くしても人間認知できないのだ

15msが8msになることで人間に対して何か価値があるのかは甚だ疑問である

問題なのはIOWNではこれ以上遅延が短くなることはなく、既に限界ということだ

光の速度の限界なので当たり前ではあるのだが

限界まで突き詰めても我々のネットワークを介した体験は一切変化しないということを証明してしまったのだ

e-Sportsとの相性

普通演奏では低遅延にほぼ価値がないので、エクストリーム分野のe-Sportsとの相性を模索しているように見える

かにe-Sportsをやっているような人たちは60fpsの1フレームを競っていると言われている

認知できているかは怪しいものだが)

そのためIOWNもe-Sports会場を繋ぐような使い方を例としてあげているのだが

そもそもe-Sportsゲームソフトウェアは5msだとか8msとかの中途半端な遅延を考慮してゲームを作っているのだろうか

同じL2の下で対戦を行うことが前提なら普通は2〜3ms程度の遅延を前提に設計するので5msでは遅い

逆に遠隔での対戦を考えれば10ms以上の遅延もあり得るのでそのように設計するが

その場合に5msであっても得られるメリットは何もない

ジャンケンゲームを作るときに2〜3ms程度までなら同時に開示するが

10ms以上なら1秒待ってから開示するような作りになっていると思えば分かりやすいかもしれない

もちろんゲームによってはこの数ms価値が生まれ場合もあると思うが、あまり数は多くないように思える

IOWNの今後

結局のところ、IOWNは大容量かつ低消費電力、つまり低価格サービスとして進んで行くだろう

End-To-EndでIOWNが必要か、と言われると明確に答えはNOで

10Gbpsですら全然普及が進んでいないのに100Gbpsの大容量ネットワークそもそも必要ない

一方でデータセンタ間のインフラネットワークとしては非常に価値が高い

データレプリケーションなどを考えれば遅延など1msでも短い方が良いのだ

特に災害が多い日本では地理位置分散をさせることは非常に重要

そういったデータセンター間のネットワークとして大容量・低消費電力・低遅延なネットワークは非常にありがたいものとなる

こうしたインフラとしての重要性は明確に求められているのにもかかわらず

「IOWN」と標榜してまるで次世代ネットワークであるかのように喧伝しているのは、一体どのような呪いがかかっているのか興味深いところではある。

2023-02-07

高卒でもエンジニアで600万目指せるって人たちって

実際ちゃん大学行ってれば少なくとも偏差値50以上はあるような人たちだと思う

ある程度の読解力と根気と周辺知識自分で調べて補うような能力がないとこんな文章は読めるようにならない

お客様独自ドメイン名使用して、GraphQL エンドポイントアクセスできますAWS AppSync では、お客様AWS AppSync APIカスタムドメイン名使用して、GraphQl エンドポイントリアルタイムエンドポイントアクセスすることができます。AppSync でカスタムドメイン名作成するには、所有するドメイン名提供し、ドメインカバーする有効AWS Certificate Manager (ACM) 証明書を示すだけです。カスタムドメイン名作成すると、アカウントで利用可能な AppSync APIドメイン名を関連付けることができます。AppSync が提供するドメイン名マッピングするように DNS レコード更新した後、新しい GraphQL エンドポイントリアルタイムエンドポイント使用するようにアプリケーションを設定することができますアプリケーション更新しなくても、カスタムドメインAPI アソシエーションをいつでも変更できます。AppSync がカスタムドメインエンドポイントリクエストを受信すると、関連する APIルーティングして処理します。

広告効果かもしれんが高卒という括りで十把一絡げにするのはナンセンス

2023-01-26

VPS自宅サーバーにインストールしたいSaaS代替Webアプリ38選

シェアウェア(という表現はおいておいてのやつ。https://anond.hatelabo.jp/20230124045812)の記事面白かったので、自分の得意分野の領域でいろいろ紹介します。

基本的に、SaaSサービスは便利だけど、あれもこれもと契約していったらサブスク破産するので、

ものによってはセルフホストした方がいいと思ってる派。

Dropbox/GoogleDrive/box代替

NextCloud

もともとownCloudっていうDropbox代替があったんだけど、そこから分派して今も機能開発が続いている。

興味深いのはLAMP構成なので、VPS自宅サーバーじゃなくても、レンサバで動くのがいいよね。

データ保存領域オブジェクトストレージ(S3互換)も利用できるので、例えばWasabiなんかと契約してお安く済ませてしまうのも全然アリかと。

Trello代替

Wekan

最近カンバンシステムって、単体で使うんじゃなくていろんなアプリの中で使われる印象なので、今更Trelloだけ使いたい、なんてニーズはないかもだけど、

そこまで複雑でなく小規模なプロジェクトとかだと、意外とTrelloだけでいいよね、みたいなこともあるかな

そういう時は、これを使うといいかも。

Slack代替

Mattermost

ちょっとUI雰囲気が違うだけで、まんまSlackです。絵文字の追加もできるし、APIもあるし。人によって好き嫌い分かれるスレッド機能も、まあ、あのスレッド機能のまま。

その他のSlack代替選択肢
  • Rocket.chat
  • Zulip

この2つは使ったことないので、名前だけ挙げておきます

Zapier/IFTTT/Make代替

n8n

n8nと書いてnodemationと読ませるらしい。初見殺しすぎんだろ。

Zapier使ったことある人はすぐわかると思います

ZapierやIFTTT無料枠あるけど、あれもこれもやり出すとすぐ無料枠埋まっちゃうので、これ結構いいと思うんだけどな。

その他のZapier/IFTTT/Make代替
  • Huggin
  • Windmill

kintone代替

Exment

kintone使ってる会社増えてると思うんだけど、まだまだ1ユーザー1500円ってのは高いので、零細企業は導入し辛いと思う。

で、それの代替になるのがExment。UIがkintoneとは少し違うので代替と言い切れないかもしれないが、

やれることはkintoneのソレと全く同じなので、用途代替はできる。

開発も日本企業なので、UI日本語化されている。LAMP構成なので、レンサバでも動くよ!

Airtable代替

NocoDB

そもそもAirtableって何やねんって人もいるかもしれないけど、kintoneとGoogleスプレッドシートをいいとこ取りして、Trelloとガントチャートを足した感じ。

これのOSS版です。結構再現度高いので良い感じ。

ZoomGoogleMeet・Microsoft Teams代替

Jitsi

これもまあまあいい感じでZoom再現してますZoomの方が新機能の追加早いけど、Jitsiも頑張って追いついている感じです。

ただ、やる内容が複数人でのリアルタイム動画配信なので、サーバースペック回線スペックはまあまあ必要なので要注意。

BigBlueButton

こちらは使ったことないんだけど、よりオンライン授業向けらしい。

Calendly代替

Cal.com

最近よく見かけるようになった、オンラインミーティングとかの予定をブッキングさせるSaaS

あれのはしりがCalendlyで、日本でもいくつかそれのSaaSができてますね。

あれらも無料枠だと1カレンダーだけしかできなかったりするんだけど、これなら好きなだけブッキングさせられます

Intercom、Zendesk代替

Chatwoot
Papercups

ECサイトとか、Webマーケティングを重視してるサイトによくある、画面右下に吹き出しアイコンがあって、チャットウインドウがぴょこっと出てくるやつ。

日本ではWeb接客とか言われてるけど、あれの代表的SaaSがIntercom。Zendeskは、どちらかというと内部ツール向きかな。

これのOSS版がChatwootとPapercups。自社サイトWeb接客入れたいけど、費用抑えたい、って時にどうぞ。

Backlog/Asana代替

OpenProject

この手のツールがないと仕事にならないという人も多いと思います

これまでだとRedmineがそれのOSS版的立ち位置でしたが、さすがにイマドキあのUIはないなぁ、と。

OpenProjectは、Microsoft Projectの代替イメージしてるみたいですが、

ガントチャートカンバンデフォルトで使えるので、BacklogやAsanaの代替にはちょうど良いでしょう。

ただ、そんな高度なことしてるわけではないのに、サーバー要求スペックちょっと高めなのでご注意を。

Google Analytics代替

Matomo

UA廃止GA離れが始まってるとも聞きますが、疎開先として有名。

PHPで動くので、PHPWordPressでできたサイトに一緒に入れちゃってもいいと思う。

HeadlessCMS関連

HeadlessCMSは、データ表示を持たず、フロントエンドAPIを通じてデータを渡すタイプCMSのこと。

このジャンルでは、SaaSだとContentfulが有名だけど、OSSでもいろいろある。

Strapi

Node.js製。歴史があるので、結構いろんなことができる。

WordPressのGutenbergエディターを取り込んだプラグインなんかもある。

User認証も持ってるので、CGM的なサイトを作ろうと思ったらできなくもない。

Directus

これもNode.js製。利用できるDBが幅広く、既存データベース活用できる。

なので、既にPostgresSQLとかでデータを持ってるんだけど、

非エンジニアにもデータを触らせるためのフロントエンドが欲しい、ってニーズに良いかも。

こちらもUser認証デフォルトで持ってる。

Cockpit CMS

PHP製。SQLiteMongoDBで利用可能MySQL/PostgreSQL使えないのがちょっと残念。

Shopify代替

Medusa.js

近年、本腰入れて自社ECサイトをやろうと思うと必ず選択肢に上がるShopify。

インテグレートパートナー向けのエコシステムも充実してるので、取り組み始めるエンジニアシステム会社も多い。

ヘッドレスコマースや越境ECには向いているものの、これをセルフホストしたい、というニーズに応えたのがmedusa.js

ざっと見てみただけだけど、モダン構成で、今時のフロントバックエンドを分けた構成でやりたい、というのには向いている。

プラグインmedusa-marketplace.jsというのもあり、Amazon的なマーケットプレイスも実現可能

Figma代替

Penpot

昨年、Adobeに買収され、デザイナーたちを驚愕させたFigma

先日はAdobe XD終了のお知らせとなり、UIデザイナーたちの不安は募るばかり。

そんな提供企業に振り回されたくないなら、このPenpotでUIデザインしよう。

Figmaほど機能実装はされていないが、まあまあ一通りのことはできる。

Figma代が嵩むとお嘆きの制作会社なんかは、一考の余地あるんじゃなかろうか。

Google Form代替

Oh My Form

企業によっては、コンタクトフォームをたくさん作りたいという会社もある。

例えばセミナーを頻繁に開く企業だったりとか、

人材採用フォーム職種別に細かく分けたい(しかも頻繁に募集職種が変わるとか)

などの要望によって、GUIフォームを作りたい局面がある。

Google Formで大体解決しそうだけど、それをGoogleに頼りたくないならこちら。

まあまあ機能豊富なので、人によってはGoogleFormよりもこちらを好むかも。

Gmail代替

Mailu

DockerベースWebメールUI。送受信に必要ものを、丸っとDockerで用意してくれているので便利。

SalesForce/HubSpot代替

SuiteCRM
Mautic
Erxes

HubSpotは、いわゆるMarketing AutomationCRMを一体にしたツール無料枠もあるが、かなり限定されている。

上記でいうと、Erxesが単体で一番近い機能を持っている。

MauticはMarketing Automationよりの機能が多く、ユーザーサイト上での回遊をビジュアル化してくれたりする。

SuiteCRMはザ・CRMという感じ。SalesForceデフォルトで使う感じに近い。

ツールが分かれてしまうのは辛いところだけど、それぞれにAPIがあるので、うまく繋げられると強力なツールになってくれるはず。

Sendgrid/Mailgun代替

Postal

Webサービス作ってると、メールの通知や一斉配信などがあると思う。

通常これらはSendGridや、AWS SESなどで処理すると思うが、これらにもOSS代替がある。

PostalDockerメール周りのもの全部用意してくれているので、かなり楽。

Jimdo/Wix代替

Microweber

WordPressモダンにしたような感じで、EC機能デフォルトでついてる。マルチサイトも標準。

Jimdo/Wix代替と書いたが、もちろん自分サイトをMicroweberで作ってもいいが、

自前ホスティングして、JimdoWixのようなサービスを始めることもできる。

テンプレートをいくつか作っておいて、Stripeを仕込んでおけば、今日からあなたJimdo/Wixのような事業を始められるわけだ。

STUDIO/Webflow代替

Webstudio

JImdo/WixSTUDIO/Webflowは一緒くたに語られがちだが、明確な違いがある。

前者はプリディファインドなブロックGUI構成するのに対し、後者DOM要素ベースで構築していく。

まりよりHTML/CSSによる細かなデザインコントロールがしやすく、Webデザイナーが親しみやすい。

それのOSS版がWebstudio。まだアルファ版だが、フロントエンドはそれなりによくできているので、

バックエンドを自前で用意してStripeを仕込んでおけば、今日からあなたも(以下略

Facebook代替

friendica

Facebookなんか使わねーよ、っていう人も多いかもしれないが、

特定コミュニティの中でコミュニケーション取るには、FacebookUI機能は優れていると思う。

なので、サークルとか同窓会、あと自治会とかPTAなんかにいいんじゃないだろうか。

LAMPなので、レンサバでもいけると思う。

Netflix代替

Jellyfin

Netflix代替って、Amazon Primeとかじゃねーの、と思われるのかもしれないが、そうではなくて、

あなたNetflixみたいな商売したいならこれを使うといいよ、というのがJellyfin。

いや、そんな商売しないよ、と思うかもしれないが、

使いようによっては、おじいちゃんおばあちゃん向けの子動画配信サービスとして構築するとか、

Stripeと連携して、劇団バンドオリジナル配信サイトを構築するなんかも面白いと思う。

YouTube/Vimeo代替

PeerTube

今更誰もYouTubeVimeoの後追いをしようとはしないでしょうが

複数ユーザーから動画のアップを受け付けて、それを閲覧したい用途もあると思う。

例えば、軽音部で複数バンド練習風景を録画したのを定期的にアップしたりとか。

学習塾で、授業の録画を授業ごとにアップしていったりとか。

YouTube Live/Facebook Live/ニコ生/Twitch代替

Owncast

ZoomGoogle Meetのような双方向ではなく、一対多の一方通行配信

個人的には、企業のウェビナーツールとしての可能性を感じる。(Zoomのウェビナープランとか高いもん)

メールワイズ/Re:lation代替

FreeScout

つのメールドレス複数人運用したい時のツールメールワイズとRe:lationどちらも日本SaaS

FreeScoutはOSSだけど、海外製。一応日本語化もされてるっぽい。

ECサイト顧客問い合わせや、営業チームのプライマリ対応なんかに良いと思う。

Bubble代替

Budibase
AppSmith
ToolJet

Bubbleってなんぞ? という人のためにお伝えしておくと、ノーコードベースWebアプリ開発ツール

データエンティティ設計したら、自動的CRUDを作ってくれて、フォームを配置するというような感じ。

Bubbleはそれ系の老舗で、歴史が長い分ノウハウも溜まっており、連携できるサービスも多い。

ただ、ベンダーロックインされるし、季節的なキャンペーンとかでは、アプリ使用しない期間もサブスク費用がかかる。

Budibaseは、Bubbleの思想に一番近い感じ。凝ったUI必要なければ、ざっくりコレでなんでも作れちゃう

AppSmithも同じような感じだが、これはDBをあらかじめスキーマ定義しておかないといけないところが若干不便かな。

ToolJetはルーティングURL概念がなく、本格使用を諦めたんだけど、最近アップデートしたらしいので、そこのところどうなってるかまた確認ときたい。

他にもこの手のやつあったら、いろいろ教えて欲しい。単純に好きなので。

「こういう用途のやつ、ある?」みたいな質問も歓迎。

見つかったら追記します。

2022-12-24

考える

何もしたくない。

一生アニメ漫画ゲームしてたい。

仕事なんてしたくない。金も上記ができればそれ以上はいらない。

そうか、今それがいつまでも続かないかもしれないから焦っていろいろ手を出してたんだ。

アニメ漫画ゲームをだらだらする生活の維持を第一目標仕事限界まで減らすことを上位の目標として

努力すべきだったのか。

達成するためのルーティングができてない。

プログラマとして頑張ることだけでも給料をより多く取得する、自分アプリを書いて稼ぐ方向等様々だな。

給料路線だと現状の分析代表的給料上昇方法である転職時の推測を行う必要がある。

アプリを作るのは簡単

そこに安定動作PVが稼げる、課金をたくさんしてくれる...

といった縛りみたいなものを追加していくとどんどん難しくなる。

そもそも金を瞬間的に稼ぐことだけが最終的な目標の達成のためのポイントなのだろうか。

ゲームとかつべみる暇ないのになんで見てるんだお前

2022-12-06

ネット上の映像配信はいつまでユニキャストでやるんだろう

abemaのw杯配信の話見てて思った。

ipv6グローバルマルチキャストアドレスサービス単位登録制にして固定回線回線業者なりモバイルキャリアなりがマルチキャストルーティング対応したらなんとかならんのかな?と思ったが、

よく考えたら不特定多数を一つのマルチキャストアドレスでまとめてアクセス可になるとウイルスばら撒いたりnic脆弱性突き放題になってネットが終わるのでグローバルスコープマルチキャスト使うのは無理だな。

全く同じパケット無駄に複製されて発信側にも中継側にも負担しかないユニキャストの仕組みは映像配信に関しては壮大な金の無駄だが、それしか道はないのかなぁ

2022-07-06

anond:20220706181101

レイヤによってブロードキャストが届く範囲が違うのはわかった

L2はL2全体に、L3は個別ブロードキャストができるって感じで

L3はルーティング機能内包している感じってことね

ルータは何のために必要なのかよくわからなかったけど、

ルータはいろんなプロトコルを柔軟につなげるためにソフトウェアメインで速度が出ない、

L3はTCP/IPメインでハードウェア的に処理できて高速だけど、他のプロトコルが通せない

 

って感じであってる?

ネットワーク機器周り全然わからん

単純なIP周りとかLANケーブルPCにつなげればいいよねとかの配線まわりくらいならギリギリわかるけど、

いろんな機器が介在してくるとてんでわからなくなってきた

 

例えばL2とかL3スイッチに小型onu差し光回線収容してるときに、

本来HGWがもっていたルータ機能必要ないのかとかそういうのがわからん

たぶんNAT必要不可欠だからルータ必要なんだろうけど、

その場合スイッチだけだとルーティングできないかルータを別途用意してスイッチLANケーブルとかで配線すればよいと思うんだけど、

その場合ルータスイッチを介してルーティングしてくれるのとかわからんすぎてハゲそう

2022-06-08

Passkeyの共有の方法

Web技術なのにクソマ野郎どもはWindowsでも動くのか、AppleWindows対応はクソだからみたいに言ってて「?」となった

お前らそういうとこやぞみたいな

これの28分くらいか

https://developer.apple.com/videos/play/wwdc2022/10092/

WebAuthnのページのときChromeQRを表示するからそれをiPhoneで読み込む(この中に使い捨て暗号キーが入ってる)

iPhoneは顔認証したらBluetoothのアドバタイザで応答する(こんときリレーサーバルーティングID暗号する)

→お互い認識したらインターネット上のリレーサーバ経由でキー交換する

だってさ。これ多分普通WebAuthnの一部でしょ

2022-05-05

anond:20220505204559

からだけどステートフルなプロトコルを使うとこは仕方なくインスタンス立てることある

WebSocketとかWebRTCとか

サーバレスに寄せられるとこはできる限り寄せるけどね

FWとかルーティングとかOSパラメータとかストレージ容量のアラートとか毎回設定するの面倒くさいじゃん

2022-04-07

anond:20220407101012

うそう、メールで送る機能なら昔からあるんだよな。

こないだのおじさん(おばさんかも?)が言ってたのは、

SMTPじゃなくてSMBで送りたいっていう概念だった。FAX回線使って。

かにSMTP経由しないかダイレクトルーティングオーバーヘッドも少ないし面白いなと思った。

しかし56Kbpsというねw

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-21

普段タスク管理方法

なんかの機能追加というタスクがあるとまずタスクを分割してTODOアプリ登録する


こんな感じ。できる限り1タスク1~5分くらいで終わる量に分割する

1メソッドが大きい場合例外処理のみ、DB登録部分のみ、メール送信部分のみとかそれだけでもタスクを分ける。

30秒で終わるようなことでもタスクとして独立してたら分けて登録する

タスクを捌く際はタイマーを駆使する

「30分あれば上から12個こなせるな」とか見積もりして該当タスクに印をつけて30分タイマーで都度タイムアタックする

タイムアタックが終わると5分ほど休憩。見積もってた分が30分より早く終わってもその時点で休憩。5分くらい?

Youtube見たり在宅だったらえっちビデオ見たり音楽聞いたり好きなことをする。

終わったらまた30分分のタスクを見繕ってタイムアタック。それの繰り返し

ちなみにSlackで問い合わせとか来た場合はその時点で返信より前にTODOとして登録。何故ならそうしないと絶対返信忘れるから

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