初心者むけK8sハンズオンの補助資料です https://qiita.com/minorun365/items/0441e4878f0984a9fc0a
こんにちは。ソーシャル経済メディア「NewsPicks」で検索システムを開発しております崔(ちぇ)です。 この記事は、 NewsPicks Advent Calendar 2023 の23日目の記事になります。 qiita.com 昨日ははぐっさんによる「SwiftUIのKeyframeAnimatorでちょっとしたカードアニメーション 〜猫の手を添えて〜」でした! はじめに コンテナ流儀: 必要最低限のものだけで運用する Point1)レイヤーは少ないほどいい TIP:ベースイメージを作る Point2)不要なパッケージをインストールしない Point3)いつ再起動してもいいコンテナを作る Point4)独立したアプリケーションにする TIP:複数のプロセスを実行したい場合もある TIP:環境変数を積極的に使う Point5)フォアグラウンドで実行する 終わりに まとめ 感想 告知 はじ
Dockerfile を書く時にいつも調べているのでメモ。 Dockerfile のデバッグをしたい 僕だけかもしれませんが、node_modules フォルダをコンテナに COPY しようとして、その中身を全部ヒラでコピーすることがよくあります。というか毎回やらかしています。で、そういう間違いを気づくための調査として ls や echo をしたいわけですが、ビルド後にそのコンテナに exec して中で ls をすれば見れるものの、毎回入るのはめんどくさいです。というわけで Dockerfile に RUN ls のようなことを書きたいわけですが、これだと出力されません。 Dockerfile 内の ls をターミナルに出す というわけで書くと良いのが、 docker build --progress=plain --no-cache -t your_container_name -f p
https://event.cloudnativedays.jp/cndf2023/talks/1910
2022/5/5 追記 あとがきにサービス検出について試した記事のリンクを追加 はじめに ECSで1つのタスクとして複数コンテナを稼働させ、コンテナ間で通信したいと思った時に上手くできなかった部分と対応を記載します。 ローカル環境で構築した際にはDocker Composeを使用しており、ymlファイルで定義するサービス名を使用してコンテナ間通信をすることができましたが、ECS環境ではIPアドレスでの通信でないと上手くいかなかったため自分なりに調査してみました。 構成図 はじめにECSで構築した際の構成図は以下のようになります。 サービスの起動タイプは「EC2」 タスク定義でネットワークモードを「bridge」 タスク定義で複数のコンテナを定義 Nginx Gunicorn Nginxコンテナについてはポートマッピングによって動的ポートを使用 また、Nginx設定ファイルは以下のような内容
Dockerfileを作る時、最初は以下の方法でやってました。 Dockerfile書く ビルドする(動かしたいアプリ含め) 起動してみる 動かなかったらDockerfile修正する またビルドして試す こんな感じでしたが、これは非常に効率が悪いです。修正して検証を行う度にビルドが発生してしまい、待ちが発生してしまいます。 どうするか? ベースイメージにアタッチ 動かしたいアプリの実行に必要なコマンドを入れて、成功したらコマンドをメモっていく アプリが動くまで「コマンド実行→成功したらメモ」を繰り返す アプリが動いたらメモったコマンドでDockerfileを作る つまり、いきなりDockerfileを作るのではなく、ベースイメージに入ってコマンドを実行して動作確認をしながらDockerfileに記述する内容を固めていき、最後に1回だけビルドします。 なぜ? Dockerfileに記述するの
あらすじ 公衆WiFiに繋いだ状態でいつものように docker container run -p 8080:80 nginx のような感じでDockerコンテナを動かしていたら、外部からリクエストを受信した。 ファイアウォールを設定し、外部からのアクセスを拒否しているはずなのになぜアクセスできたんだ... 環境 Docker desktop for mac with apple silicon 4.21.0 何が起きた? Dockerはデフォルトの設定では-p 8080:80のようにポートマッピングするとファイアウォールの設定を書き換え、外部からそのポートへのアクセスを許可するようになっている。 その結果LAN内の他のPCから対象ポートにアクセス出来てしまう。 ちなみにこれはDocker公式からも注意が出ている。 Publishing container ports is insecur
ECSの仕様で気になっていたことがあったので軽く調査しました。 というわけで早速ながら調査内容を共有させていただきます。 問題の内容 Agent versions <= 1.1.0:Nullと0のCPU値はDockerに0として渡され、Dockerはそれを1,024個のCPU配分に変換します。 1のCPU値はDockerに1として渡され、Linuxカーネルはそれを2個のCPU配分に変換します。 Agent versions >= 1.2.0:Null、0、1のCPU値はDockerに2個のCPU配分として渡されます。 引用:https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/task_definition_parameters.html 気になったところというのはズバリ、ECSタスク定義のCPUユニットの割り当
Advent Calendar 2020 の 4 日目の記事です。 こんにちは、 wind-up-bird です。 前回に引き続き、ECS移行について書いていきたいと思います。 前編: 移行前の構成や課題、移行方針を記載しています。 後編: 移行後の構成や旧環境との変更点を記載しています。 ※前編をまだ読んでない人は是非チェックしてみてね! 目次 目次 新環境 全体構成 詳細 AWS のリソース管理 デプロイ ロギング 移行作業 振り返り Build 時間の短縮 EC2とOSの管理から開放された 起動時間と費用 ハマった点など 設定ファイルの管理 ECS 標準デプロイアクション 16kB のログチャンクサイズ 最後に お決まり 新環境 この章では、ECS移行後の構成やデプロイ方法、移行方法を紹介していきたいと思います。 全体構成 全体的な構成は以下のようなイメージです。 1 つの ECS
はじめに こんにちは。 SREグループの佐々木と申します。 Amazon ECS(以下、ECS)を使っていて、ローリングアップデート時に、コンテナ上のSidekiqで実行中のジョブに影響が無いのか、気になったことはありませんか? この記事では、ローリングアップデート時のECSとSidekiqの挙動、ローリングアップデート時に気をつけるポイントを紹介します。 背景 最近、「Sidekiq::Shutdown」のエラーメッセージと共に落ちたジョブがいました。 リリースの際に発生していたので、ECSのローリングアップデート起因で、Sidekiqのジョブが強制終了してしまい、ジョブが落ちたのだろう。と想定していました。 とはいえ、あくまで想定です。 また、ジョブが落ちたことによる影響の有無が分かりませんでした。 そこで、エラーメッセージの原因を調査するために、ECSとSidekiqの挙動を追いま
AWS Tech talk Night 第5弾となる今回は、AWSのプリンシパルエンジニアが執筆した技術記事『Amazon Builders' Library』から、クラウドサービスを活用しているエンジニアに有益な記事を厳選し、AWSのソリューションアーキテクトがわかりやすく解説。紹介されたAmazonのベストプラクティスは、AWSをはじめとするクラウドサービスを活用してソフトウェアの構築・運用しているエンジニアにとっても、きっと参考になるはずだ。 キャッシュのメリットとリスク、あるべき戦略とは アマゾンウェブサービスジャパン合同会社 技術統括本部 ソリューションアーキテクト 川島 拓海氏 最初に登壇した川島氏を含め、今回の登壇者5人はいずれも2022年に新卒でAWSに入社して、SAとして活躍している。川島氏のセッションでは、『Amazon Builders' Library』の「キャッシ
Docker一強の終焉にあたり、押さえるべきContainer事情 を読んで漠然とDockerが終わるって思った人、素直に手をあげてください。別にDockerは終わりません。なんかむしろWASMとかんばるぞって息巻いてて可愛いので頑張って欲しいと個人的には考えています。 その昔、Kubernetes 1.20からDockerが非推奨になる理由 - inductor's blog を書いたら炎上しました。最初の記事の書き方が良くなかったという反省はあるにせよ、世間一般で「Dockerは開発環境で使うやつ」という認識があまりにも広がりすぎているというのが良くわかる勉強の機会になりました。 逆を言うと、みなさんがこれらの記事を読む時には、Dockerという言葉に含まれる意味に注意して読んでいただきたいと思っています。Dockerには大きく分けて以下の意味が含まれると僕は考えています。 Docke
章立て はじめに Docker・Container型仮想化とは Docker一強時代終焉の兆し Container技術関連史 様々なContainer Runtime おわりに 1. はじめに Containerを使うならDocker、という常識が崩れつつある。軽量な仮想環境であるContainerは、開発からリリース後もすでに欠かせないツールであるため、エンジニアは避けて通れない。Container実行ツール(Container Runtime)として挙げられるのがほぼDocker一択であり、それで十分と思われていたのだが、Dockerの脆弱性や消費リソースなどの問題、Kubernetes(K8s)の登場による影響、containerdやcri-o等の他のContainer Runtimeの登場により状況が劇的に変化している。本記事では、これからContainerを利用したい人や再度情報
こんにちは。NewsPicksのWeb Reader Experience Unitで学生インターンをしている西(@yukinissie)です。 昨年の 9 月までSREチームに所属しており、その頃にNewsPicksの全ての常駐バッチサーバーをAWS CDKを用いてAWS FargateとAWS Fragate Spotを併用するようにさせましましたのでコストの変化や工夫した点についてご紹介します。 AWS Fargate Spotとは? 実際どれくらいのコストを削減できたか 0. ECSコンテナ化 1. 使用量はほぼ横ばい 2. Fargate Spotの適用 3. コストが約47%削減!!! AWS CDKでAWS Fargate Spot機能を適用する際に工夫したこと 課題 解決策 FargateとFargate Spotの併用 キャパシティープロバイダー戦略を自動で決定するIaC
AWS Fargateについて 清水崇之氏(以下、清水):2つ目の相談にも進みたいなと思います。2つ目に「AWS Fargateの運用とコスト最適化について」というお話をいただいています。 新しいサービスとしてAWS Fargateというものが出てきたので、こちらもAWSのSAから簡単に紹介したいなと思います。 下川賢介氏(以下、下川):AWSの中でコンテナを扱えるサービスが何個かあるんですが、その1つが「Amazon ECS」という、コンテナオーケストレーションできるようなサービスになってきます。コンテナの実行環境ですね。 このECSには2つのタイプがあって、on EC2で動くECSと、on Fargateで動くECSがあります。それぞれ何が違うかというと、AWSで管理してくれる領域が違います。(スライドを示して)青色で書かれているところがお客さまが管理するレイヤーで、黄色で表されている
と書いたのに実際にコンテナの中に入ってみるとmysqlが立ち上がってないので、へんだなと思い、調べてみたのですが、ここはRUNでなくCMDを使うべきだったみたいです。 上記の図に書いたのですが、 * RUN:ビルド時にコンテナ内で実行される * CMD:完成したイメージからコンテナを作成するときに実行される です。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
docker container run はコンテナの「作成」と「起動」docker container run(旧: docker run)は、もっとも頻繁に紹介されているコマンドですが、内部で複数のことを行うので 一番分かりにくいコマンド かもしれません。 docker container run は次のようなことを一度に実行します。 指定したイメージがなければダウンロード (docker image pull)Docker コンテナを作成する (docker container create)Docker コンテナを起動する (docker container start)例えば、次のコマンドを実行すると、Docker イメージ (ubuntu:20.04) のダウンロード、Docker コンテナ (mycon) の作成、そのコンテナの起動までを一気に実行します。 各オプションは次の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く