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.4k
あぁ…我らのECS…
PHPカンファレンス2022 スポンサーLT登壇資料
kensho
September 24, 2022
Tweet
Share
More Decks by kensho
See All by kensho
もう少しだけ、ログと向き合ってみる 〜slogを使って構造化ログを出す〜
iwashi623
0
18
テーブル設計のよくある罠と それに対する処方箋
iwashi623
1
76
PHPerもIaCを使おう! 17年物のインフラをTerraformに大移行
iwashi623
1
1.7k
今ならわかるDirectConnect
iwashi623
0
62
Other Decks in Technology
See All in Technology
利用終了したドメイン名の最強終活〜観測環境を育てて、分析・供養している件〜 / The Ultimate End-of-Life Preparation for Discontinued Domain Names
nttcom
2
190
開発組織のための セキュアコーディング研修の始め方
flatt_security
3
2.4k
人はなぜISUCONに夢中になるのか
kakehashi
PRO
6
1.7k
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
2
240
明日からできる!技術的負債の返済を加速するための実践ガイド~『ホットペッパービューティー』の事例をもとに~
recruitengineers
PRO
3
400
トラシューアニマルになろう ~開発者だからこそできる、安定したサービス作りの秘訣~
jacopen
2
2k
ホワイトボードチャレンジ 説明&実行資料
ichimichi
0
130
Goで作って学ぶWebSocket
ryuichi1208
0
630
Classmethod AI Talks(CATs) #16 司会進行スライド(2025.02.12) / classmethod-ai-talks-aka-cats_moderator-slides_vol16_2025-02-12
shinyaa31
0
110
7日間でハッキングをはじめる本をはじめてみませんか?_ITエンジニア本大賞2025
nomizone
2
1.8k
あれは良かった、あれは苦労したB2B2C型SaaSの新規開発におけるCloud Spanner
hirohito1108
2
590
Nekko Cloud、 これまでとこれから ~学生サークルが作る、 小さなクラウド
logica0419
2
970
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
The Language of Interfaces
destraynor
156
24k
How GitHub (no longer) Works
holman
314
140k
Site-Speed That Sticks
csswizardry
4
380
Scaling GitHub
holman
459
140k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
A Tale of Four Properties
chriscoyier
158
23k
Facilitating Awesome Meetings
lara
52
6.2k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
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/) にて随時発信予定です。 お手すきの際にぜひ覗いてみてください!