「docker」を含む日記 RSS

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

2022-04-27

anond:20220426213943

文字が読めない増田は非常に面白いギャグかますよね🤣 

ワイの一番古い増田DHCP理解してないマン宛のトラバやったで

2018-08-14 anond:20180814213814

IPを、MACアドレスに機種名と紐付けて帳簿で管理するのはまず無理だな。

あとユーザ使用許可を出すIPの個数を可能な限り制限したいから、その意味でも管理不可能だな。

RadiusActive Directory も無い世界線どころか、DHCPサーバ側でMACアドレスIPアドレスの組み合わせを予約しておくことすらできない世界線増田

 

最近でも Azure AD なんか導入している企業ないマン、Microsoft365 や Google Workspace は存在しない+それらと連携させるセキュリティプロダクトは存在しないマン

AWSVMDocker存在しない世界線マンAWS で起動テンプレートを作らないインスタンスを複製しないマンDebian契約するマン

Linus Torvalds を知らないマン資産管理意味理解できないマンフリーデスク基本的運用を知らないマン、基幹システムアクセスしないマン

Teamsなどのコミュニケーションツール存在しない世界線マン、今時は Teams などのコラボレーションプラットフォームに内線を統一する流れなのに

一昔前の BYOD個人携帯アプリで内線を割り当てるどころか固定電話廃止して携帯定額通話ドヤ顔マンユニコーン企業で働いてる設定なのにお局云々マン

AWS年収1000万余裕マンAWSについての歴史改変マン既存不正検知AIプラットフォーム使用せず依頼を受けてサイゲ参考に不正検出システムを作ったマン

Python仕事は無いマン・・・・・ほか、上げたらキリがないんだわ

 

とりあえず、時が止まり過ぎ+IT業界に妙な憧れがあることだけは伝わる

因みになんだがこれやってるのすべて同じ増田なんじゃ無いか?って思ってるよ。文字文字通り読めない増田

このレベル増田がたくさんいるとは思いたく無いわ

 

もちろん、だからといって、増田に書き込んじゃダメってことは一切ない。今まで通り好きなこと書いたらいい

ただ文字を読めない自覚常識がない自覚はあっていいと思う

その自覚さえあれば、在りし日のVIPがみんなニートという体だったのと同じく、

ワイも増田

MMMO (M 無教養で M 無能で M 無収入な O オタク) か

MMMM (M 無教養で M 無能で M 無収入な M マン) で

それ以外はフェイ!!!でええやろ

2022-04-19

anond:20220419110149

から資格以外で客先の人事が「こいつ起用してみるか」って思う様な、スキルシートに書ける実績って例えばどんなものがあるか教えてほしい

Docker実装しました(Dockerコンテナを作ったとかじゃなくてDockerシステムのものクローンゼロから構築)とか。

2022-04-06

anond:20220406205129

んー、違和感あるけれど、ローカルに引っ張ってきたVMに変更を加えて、後々にリモートもそのdiffを反映させるの、たしかに言うとしたらトランザクションなのかなあ

dockerだと似たようなことはコミットとかプッシュというとは思う

2022-04-05

[]2022年3月はてブあとで読むトップ30リスト

はてブホットエントリ(総合)で月内に数多く[あとで読む]タグを集めたエントリ

342あとで/2882users Amazonプライムビデオで観てほしいおすすめの人気映画42選 ~編集部厳選~ : 映画ニュース - 映画.com

256あとで/1375users 真面目なプログラマのためのディープラーニング入門 | 新山 祐介 | github

233あとで/1341users 実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本 | ほげさん | Zenn

185あとで/949users ソフトウェア開発の見積もり入門 | hakotensan | Zenn

183あとで/1374users ロシアウクライナ侵攻の背景を読み解く | 東京大学 | 鶴見太郎

180あとで/968users Google が公開している、より良いデータ分析のためのガイドブック「Good Data Analysis」で、データ分析の要所が簡潔にまとめられていて感動した | hurutoriya

178あとで/1408users フォント大好物な人に朗報🎉 MORISAWA BIZ UDゴシックUD明朝オープンソースになったぞ!! | coliss

169あとで/887users 高木浩光さんに訊く、個人データ保護の真髄 ——いま解き明かされる半世紀の経緯と混乱 | 一般財団法人情報法制研究所出版

168あとで/958users はじめに – アルゴリズムデータ構造大全 | take44444 | github

166あとで/1232users ガラケーしか使えないデジタル音痴だった私が「GISデータ分析」できるようになるまでの話|NHK取材ノートnote

156あとで/728users セキュリティエンジニアが本気でオススメする開発者向けコンテンツ 20選 - Flatt Security Blog

153あとで/1187users iPhoneMacの標準アプリメモ」のディープな使い方 | デジタルシニア

153あとで/987users なんとなくプレイしてもそこそこ囲碁ルールがわかるようになる「ぷよ碁」 | Gigazine

150あとで/926users 30代後半になって初めて発信活動を始めたら人生が変わった話 - Qiita

144あとで/1584users ロシアの攻勢と新世界の到来 (2022/02/26): 侵略成功時のロシア予定稿 全訳 - 山形浩生の「経済トリセツ

143あとで/1309users 鶏むね肉を驚くほどしっとりさせた台湾料理ジーローファン」の作り方【ネクスト魯肉飯】 - メシ通 | ホットペッパーグルメ

141あとで/786users RDBデータモデリングテーブル設計の際に参考にしている考え方と資料 | Rebi | Zenn

140あとで/1336users 「依頼された仕事をやらない人」は、なぜあれほど言われても、仕事をしないのか | 安達 裕哉 | Books&Apps

139あとで/891users 「ウクライナ」(2) 小泉悠・東京大学先端科学技術研究センター専任講師 2022.3.9 | YouTube

139あとで/698users テーブル設計の考え方とやり方 [入門編] | 増田 亨 | SpeakerDeck

137あとで/733users オードリータン氏が日本人のために「デジタルITはまったく別物」と語る理由 | ビジネス+IT

137あとで/765users AWSオンラインロールプレイングゲームAWSソリューション構築を学べる「AWS Cloud Quest」公開。実際にプレイしてみた | Publickey

137あとで/909users 手軽に負荷テストができるツール「Taurus」がスゴい | tonchan1216 | Zenn

136あとで/931users 旧限界数学ゼミガール

131あとで/1149users クレカを100万円使って解脱に至るための曼荼羅 - 本しゃぶり

123あとで/587users システム運用アンチパターン | O'Reilly Japan

121あとで/896users 【引越しやることリスト】事前に役立つ知識を50個まとめた | SPOT

119あとで/831users 背景合成アプリ「Shoost」レビュー 映画のワンシーンのような「いい感じ」の絵を手軽に作れる | PANORA

118あとで/724users 電子メール送信に関する技術 | Yuuki Takahashi | Zenn

116あとで/555users 1on1の「話したいことは特にないです」を解決する ~ 共感から始まる関係改善のススメ ~ / How to solve rejection on 1on1 | 面川泰明 | SpeakerDeck

116あとで/1088users 「強いエンジニアは結局休日勉強してるじゃん」って思うけど - spice picks

戦争を起こしたロシアを知ろうとするエントリが入った

2022-03-27

anond:20220327194309

Web系のプログラマーDockerとかフレームワークのものを指して「技術」という言い方をするのがすげえ気持ち悪い。そういうところからも、本質的に雑というか、増田の言うように技術を作る気が無いんだろうなという気はする。

例えばDocker公式ページでの ”technology” という単語の使われ方を見てみると

https://www.docker.com/resources/what-container/

Docker container technology

Docker’s technology

Technology available from Docker

などといった表現になっている。つまり technology とはDocker構成している技術的な要素やコンポーネントのものを指していて、Dockerというフレームワークを指しているわけではない。同じ technology がDocker以外のフレームワークの中にあってもいいし、技術的な概念としてのcontainerなどはその実施例の一つであるDocker containerより上位にあるものということだよな。

日本Webプログラマーが言う「技術」という単語はそういった意味でのtechnologyを指しておらず、まるで最新のiphone出た!というようなノリでフレームワークだの言語だのといった実施例を指してるように感じて非常に気持ちが悪い。

2022-03-14

Web系の個人開発者』のサーバ構成って結局レガシーな感じになっちゃわない?

契約してる1つのサーバ個人ブログとか昔ながらのBBSとかブラウザゲームとか種類が違うサービスをいくつも運営しているけど、サーバ運用方法が流石にレガシーすぎるからもうちょっとモダンな感じにしたいと思ってる。

でも中々抜け出せない。

まず前提としてAWS,GCP,Azureは高いから使えない、同スペックなら適当VPSの方が圧倒的に安い。

最近流行りのコンテナ構成みたいなのもいくらDockerが昔のVMに比べるとリソース食わないと言っても例えば

「1つのサーバ10個のサービス相乗り運営しなければならない」みたいな場合に1サーバ内で何十コンテナ起動みたいなの運用すると流石に相当重くなっちゃうよなぁ。。。

あとnode.jsとかginみたいに1サービスごとに常駐プロセスが増える技術スタックも多分あんまりよくない、必要ポート管理するのも大変

結局自然と行き着くのは格安VPS借りてLAMP構成作ってVirtualHostで相乗り設定して昔ながらの方法運用する方法なっちゃ

php+apache構成ならアクセスの少ないサービスを何十個運用しようとアクセスがないならそれにリソース食われることがないんだよね、何気にLAMP環境結構な強みだと思う

もっと良い方法見つけたいし、多分お金かければあるんだろうけど

月2000円以内くらいで多くのサービス運用したいってなった場合に結局これ以外の選択肢ってなくない?

月1~2万円みたいな額はインフラエンジニア雇う費用に比べると全然安いんだろうけど、ポケットマネー基準だとそうもいかない

もうちょっとマシな方法があるなら教えてほしいんだけど、まあないよなぁ……

2022-03-13

技術書Mac前提で書かれてるのってすげー違和感ある

AWSやらDockerやらのハンズオン系の技術書を読んでるとインストール手順やらコマンドMac前提で書かれてることが異常に多いんだよね

Macユーザーでも使えるように」ならわかるんだけど「Macユーザーしか使えない」手順を書かれるとどうにも違和感を覚えてしま

どんだけ声でかくても所詮Macユーザーなんて1割程度のマイノリティなわけで、

「なるべく多くの人にわかやす知識を広げるのが目的書籍なのに9割の方のWindowsユーザーを切り捨てるの!?」って毎回思うんだけど、

マカー人達はそういうの考えないんだろうか

2022-03-11

AWS+Terraformを勉強中なんだがこういう流れで行こうと思ってるんだけどどう?

Apache(かnginx)+EC2+VPCの設定をとりあえず行ってWebサーバが動くところまで確認

PHP+RDS+EC2+VPC+ALBでもうちょっとリッチアプリ冗長構成で構築

上で作ったアプリDocker+ECSコンテナとして動かす

更に同じものECSじゃなくてEKSで動くように実装

こんな感じで考えてるんだけどどう思う?

2022-03-10

コンテナ管理サービス提供する米Dockerも、ロシアとの取引を停止すると発表。当面の間、ロシアベラルーシからは有料プラン契約できないようにした。

コンテナが止まると物流マジでヤバい・・・

2022-02-25

anond:20220225162108

Docker Toolboxの時代にそんな話を聞いて偏見を持って以降

ずっと知識アップデートしてないだけなんじゃないかなぁ

WindowsDocker 入れるのムズいMac の方がいい」と言う人が Twitter 上では散見されるので

かねてから、どこがどうムズいのかを観察したかったんだが・・・

今日、新しくプロジェクトに参画した人が Docker経験が無いという事で、これはチャンスとばかりに

ちょっと Docker Desktop for Windows 入れといて。インストーラーがあるから。もしかしたら Hyper-V有効化も必要かな?」

とだけ伝えて、放っておいたんだが・・・

すんなりとインストール完了してしまった。これじゃ参考にならない。イカンねえ。

まあプロジェクトが進むのは悪い事じゃないけど。

2022-02-09

anond:20220209003633

技術者は金払って使いたい人がほとんどだよ

Docker Desktopだって使いたいよ、でも稟議通らねーんだよ

時間割いてわざわざ新しい方法構築して周囲に告知して使っていないかチェックなんてやりたくねーよ

技術者が「どんなに便利で助けられた道具でも金は払いたくない」という対応をする

最近だとDocker Desktop関連の記事でよく見る。

別に日本だけの話じゃない。全世界でそうなってる。

トヨタ下請け買い叩いてんのと変わらんよな、と思う。

金払ってるだけトヨタの方がマシか。

2022-02-06

anond:20220206134732

DockerPostgreSQLとかMaria動かしてWebアプリ開発するとかとは違うんでしょ?

そういうのはできるけど…

2022-01-31

フリーミアムモデルってつくづく地獄だな

Slackは身売りしたし、Spotify陰謀論者を客寄せパンダに使うし、CentOSタダ乗りユーザーに潰された。

どうせDocker Desktopも碌に収益上がらずに戦略変更を余儀なくされるだろう。

タダで使い始めたモノに後から金払う人って全世界共通で少ないんだね。

第一印象がここまで大事だとはな。

2022-01-26

Laravel一歩目を踏み出す前に盛大につまづくの巻

イケてるエンジニアもすなるLaravelといふFWを、底辺チンカスエンジニアの私もしてみむとてするなり。

https://readouble.com/laravel/4.2/ja/quick.html

最初にComposerを使用し、Laravelインストーラーをダウンロードします。

フレームワークとか逆に難解すぎてやってられねーよ!と今まで拒否し続けてみたものの、なんか人気らしいので気になったんですよ。

で、公式サイトクイックスタートを見たら、1行目からこれですよ。

Composer? アホかと。バカかと。お前らな、依存管理如きで余計な要素を増やしてんじゃねーよ、ボケが。

名前は知ってるが使ったことないし、ちょっとググってもよく分からない。分かろうとも思わない。思えない。もともと頭が悪い上に中年なので学習意欲もわかない。

終わりです。終わりました。ハードル高すぎるんですよ。

Composerで手軽にインストール

って、Composer自体が手軽じゃないんすよ。

ComposerだのAnsibleだのDockerだの超絶魅力的だけど全然意味わかんないっすよ。俺くらいのバカでも分かるように作って欲しいんすよ。

結局フレームワーク使って何かハマった時にブラックボックスすぎてかえって面倒なことになるので(≒言い訳)、俺はこれから自作FWでやっていきます

それでも個人でいろいろ開発して全然困らず食っていけてるので(≒言い訳)。

結論をまとめるとPHP最高!ってことです。

anond:20220126155206

docker desktopとかAnacondaが有料になった件では

正直ワイはソフトウェアエンジニアやないから、周りが騒いどるなーってくらいしかわからんけど

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

WSL2 と docker

色々と問題がある。

docker-compose が安定しなかったり DNS不安定だったり。

結局 windows の開発は WSL2 は使い物にならず、Hyper-V で別途たてた Linux 上で行うのが安定するのだろうか…。

WSL2 が利用できるケースはいったいどこにあるのだろうか。

2022-01-17

彼ら(複数)「動かないよー。Docker Desktop for Windowsはクソ」

わい「わいが作ったマニュアル通りやってる?わいがZoom操作見てるからちょっとやってみ?」

彼ら「こうして、こうして、こうして・・・あれ?動いた!何度やっても動かなかったのに!」

わい「普通に動くやん。よかったな」

彼ら「彼くん、ちょっとZoom操作見てて」

彼くん「ええよ」

彼ら「こうしてこうして、やっぱり動かない・・」

彼ら「わいさん、ちょっといい?」

わい「見とくからやってみ?」

彼ら「こうしてこうして・・・あれ?やっぱり動いた・・・

わい「何か知らんけど、よかったやん」

こういう現象そろそろ名前つけない?

「うんち」とか

2022-01-09

anond:20220109192004

そうなんだ。

最近Webサービスdockerとかk8s使うのが当たり前だと思ってたから、その辺勉強すれば安全Webサービス作れると勝手に思い込んでたよ。

ありがとう

anond:20220109191529

まずはDockerコンテナ侵入して、

そこからDockerホスト侵入することもできなくはないので、

Docker=セキュアではないと思うけど…

まあ、なんでもそうだけど初期にあった穴はだいぶ塞がれてるはずだけど、

よく不特定多数Dockerコンテナ仮想マシンみたいに使わせるサービスあるけど、

どこまで使わせていいか個人的にはずっと考えてしまうんだよね…

気軽にコードが実行できるサンドボックスみたいに使われてたりするけど…

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