Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
あぁ…我らのECS…
Search
kensho
September 24, 2022
Technology
0
1.3k
あぁ…我らのECS…
PHPカンファレンス2022 スポンサーLT登壇資料
kensho
September 24, 2022
Tweet
Share
More Decks by kensho
See All by kensho
もう少しだけ、ログと向き合ってみる 〜slogを使って構造化ログを出す〜
iwashi623
0
15
テーブル設計のよくある罠と それに対する処方箋
iwashi623
1
61
PHPerもIaCを使おう! 17年物のインフラをTerraformに大移行
iwashi623
1
1.6k
今ならわかるDirectConnect
iwashi623
0
62
Other Decks in Technology
See All in Technology
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
280
Jetpack Composeで始めるServer Cache State
ogaclejapan
2
160
LINEヤフーのフロントエンド組織・体制の紹介【24年12月】
lycorp_recruit_jp
0
530
MLOps の現場から
asei
6
630
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
240
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
470
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
24
11k
20241220_S3 tablesの使い方を検証してみた
handy
3
320
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
540
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
520
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
170
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
150
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
A designer walks into a library…
pauljervisheath
204
24k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
RailsConf 2023
tenderlove
29
940
Designing for humans not robots
tammielis
250
25k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Optimising Largest Contentful Paint
csswizardry
33
3k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
What's in a price? How to price your products and services
michaelherold
243
12k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
510
Transcript
あぁ... 我らのECS... 株式会社PR TIMES 岩下 拳勝
自己紹介 名前: 岩下 拳勝 年次: 21卒(新卒2年目) GitHub, Twitter: SardineTa23(iwashi) 主な担当業務:
PR TIMES STORYバックエンド開発・インフ ラ運用 趣味: AWS認定資格取得(SAA/SOA/DVA)
アジェンダ 本発表では、私が昨年PR TIMES STORYの開発リーダーに任命されてか ら学んだ、ECS/Fargateの知見や設定を 発表していきます。
はじめに 新卒入社2ヶ月、ある日のこと・・・
はじめに 偉い人「PR TIMES STORYの開発リーダーをほしいです」
はじめに 僕「は、はぁ・・・😓 (よくわからんけどとりあえずやってみるか)」
はじめに とりあえずインフラを見に行くと…
はじめに ECS, Fargate, Aurora, ElastiCache, DocumentDB... 何もわからん...
はじめに 完全に詰んだ👼
はじめに 一緒にPR TIMESで使用しているECSとその設定 について勉強しましょう。
コンテナ 皆さん、コンテナ使ってますか?
コンテナ コンテナのメリット • アプリケーションの依存関係をコンテナ内で完結できる。 • 一度Buildしたイメージをスケーリングの際に簡単に使い回せる。 • (サーバー仮想化と違って)ゲストOSをマシンで動作させるためのリソー スが不要。
コンテナ AWSでコンテナを使うには… ECSが便利!
ECSとは… AWSが開発したコンテナオーケストレーションサービス。 https://aws.amazon.com/jp/ecs/
ECSとは… 複数のホスト上で動作している無数のコンテナを、 (頭のいい)AWSの人が作ったレールに乗りながら管理できる。 ECSがあると嬉しいこと
ECSとは… • DDoSなどでコンテナが落ちても、コンテナの切り離し、再デプロイを自動的に やってくれる。 • コンテナを予め指定したAZに均等に配置管理してくれる。 • ALBと組み合わせることで、リクエストの負荷分散を自動的にしてくれる。 具体的なECSメリット
ECSとは… ECSには、EC2起動タイプとFargate起動タイプがある
ECSとは… Fargate起動タイプのメリット・デメリット メリット • ホストの管理が不要 デメリット • (EC2起動タイプと比べて)使い方次第で若干コストが割高
• ホストのOS管理ができない
PR TIMES STORY PR TIMES STORY (https://prtimes.jp/story) では、ECS/Fargateを使ってLaravelを 動作させて運用しています。
PR TIMES STORY
PR TIMES STORY ここからは、ECS/Fargateを運用していくにあたってのいくつ かの疑問点と、 その疑問に対してPR TIMES STORYが導入しているECSの 設定についてお話します。
疑問① sshおじさん ???「ホストがない?SSHできないなんてありえな い!デバックできないじゃん!」
疑問① sshおじさん 回答:「ECS Execを使っていきましょう!」 > Amazon ECS Exec を使用すれば、最初にホストコンテナのオペレーティングシステムとやり取
りしたり、インバウンドポートを開いたり、SSH キーを管理したりすることなく、コンテナと直接やり取 りできます。ECS Exec を使用して、Amazon EC2 インスタンスまたは AWS Fargate で実行され ているコンテナでコマンドを実行したり、シェルを取得したりできます。 (https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/ecs-exec.html) → つまり、ECSで実行中のコンテナに`dokcer exec`のようなことを実行で きる。
疑問① sshおじさん ECS Execの有効化 ECS Execはコンソール上から有効化できないため、 AWS CLIやTerraformなどで有効化する必要がある。
疑問② インフラ担当心配性おじさん ???「マイグレーション管理とかどうしてんの? まさか毎回、` php artisan migrate`を手打ちするの?」
疑問② インフラ担当心配性おじさん 回答例:「デプロイワークロードの中でMigration用の FargateTaskを実行しましょう!」
疑問② インフラ担当心配性おじさん PR TIMES STORYでは… CodeBuildのワークロード(buildspec.yml)の中でmigration用の ECSタスクを実行しています。
疑問③ サーバ運用監視おじさん ???「監視とか辛くない? ECSのコンソールってタスクごとのCPU使用率とか見れんし」
疑問③ サーバ運用監視おじさん たしかにデフォルトではECS Serviceごとにしか見れない😓
疑問③ サーバ運用監視おじさん 回答例1:「Container Insights使っていきましょう」 有効にすると、クラスター、サービス、タスク単位での詳細な メトリクスが取得できます。
謎の敵③ サーバ運用監視おじさん 回答例2:「タスクのサイドカーとして、 NewRelic、Mackerelなどのエージェントを起動しましょう。」
謎の敵③ サーバ運用監視おじさん NewRelic(https://newrelic.com/jp/blog/best-practic es/get-container-metrics-on-ecs-fargate ) Mackerel(https://mackerel.io/ja/docs/entr y/howto/container-agent) 公式ドキュメントを見ると、簡単に設定でき ます。
まとめ 今日発表した設定は、今後PR TIMES開発者ブログ (https://developers.prtimes.jp/) にて随時発信予定です。 お手すきの際にぜひ覗いてみてください!