Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
jawsug_niigata_20220115
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kaminchu
January 15, 2022
Technology
380
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
jawsug_niigata_20220115
kaminchu
January 15, 2022
More Decks by kaminchu
See All by kaminchu
yarnの話.pdf
kaminchu
1
210
React勉強会.pdf
kaminchu
0
370
Web_アプリ_勉強会_FE_BE_.pdf
kaminchu
0
1.1k
ルーターの選び方その2.pdf
kaminchu
0
880
ルーターの選び方
kaminchu
0
1.3k
NDS56.pdf
kaminchu
0
160
nds54
kaminchu
0
280
internet
kaminchu
0
3.1k
Other Decks in Technology
See All in Technology
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
630
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
18
14k
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
150
サーバーフルコンピューティング?AWS Lambda
iwatatomoya
0
120
AWS DevOps Agent スキルをつかいこなそう / Master AWS DevOps Agent Skills
kinunori
2
650
人にやさしく、AIにやさしく、書き手を選ばないIaCのガードレール再考 / Rethinking IaC Guardrails for Humans and AI Alike
kohbis
5
2k
AI駆動開発で仕様はどこまで書くべきか? ― 人とAIの責務境界から考える開発プロセスの実践
takahiromatsui
1
280
1人アドミンな私はAWSアカウント申請をSlackで完結したい!
ysuzuki
0
110
20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する
yhana
1
400
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
310
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
140
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
1
150
Featured
See All Featured
KATA
mclloyd
PRO
35
16k
Practical Orchestrator
shlominoach
192
12k
Everyday Curiosity
cassininazir
0
340
Typedesign – Prime Four
hannesfritz
42
3.2k
First, design no harm
axbom
PRO
2
1.3k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
Claude Code のすすめ
schroneko
67
230k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
550
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
300
How to build a perfect <img>
jonoalderson
1
6.1k
Transcript
会社のサービスをAWSへ移行した話 JAWS-UG 新潟#11 1
自己紹介 twitter: @kam1nchu 所属 ウォーターセル株式会社 経歴 2017年入社 フロントエンジニアで入社していつの間にかインフラエンジニア AWS歴=JAWS-UG 新潟支部
発足から 2
アジェンダ アグリノートとは AWSへ移行する目的 移行前後の構成 移行の流れ 移行してよかった 今後 その他もろもろ(時間調整) 3
アグリノートとは ブラウザやスマホから利用する営農支援ツール https://www.agri-note.jp/ 4
AWSへ移行する目的 スケールアップ/アウトを容易にしたい ミドルウェア更新サイクルを早くしたい 現行環境の老朽化 コストの最適化 5
AWSへ移行する目的 スケールアップ/アウトを容易にしたい すでに性能がギリギリになってきていた これからも拡大していく方針 現状では性能"だけ"あげるのでも結構手間がかかる(特に精神的に) 6
AWSへ移行する目的 ミドルウェア更新サイクルを早くしたい セキュリティの問題 開発のモチベーション 7
AWSへ移行する目的 現行環境の老朽化 CentOSのEoL問題 Systemd化の流れ 8
AWSへ移行する目的 コストの最適化 当初は目的としていたが、それほど安くならない(むしろ高くなる) ことが判明 目的からは外した 9
移行前後の構成 移行前 10
移行前後の構成 移行後 11
移行の流れ リフト&シフト コンテナ化 デプロイの構築 本番の移行 12
移行の流れ リフト & シフト 無理 13
移行の流れ リフト & シフト 当初は計画したが、EoLの見えているOSのまま移行するわけにも行 かず、initd→systemd移行もそれなりの労力に デプロイもかなりの書き換えが発生してきて辛い もう、いきなりクラウド環境に最適化した形にしても構築の労力そん なにかわらないのでは。。。? ということで、fargateを選択
14
移行の流れ コンテナ化 サービスの分離 これまでは、unicorn、delayed_job、cron(1台のみ)が同じインスタ ンス上で実行されていた それぞれ分離し、専用のコンテナ(task)で実行するようにした ただ、イメージは同じものとなるように 15
移行の流れ デプロイの構築 今までは担当者のPCからansibleやfabricを叩いてた 移行後は社内のciからよしなにデプロイできるように 社内ciに寄せるため、あえてcodepipelineは使わずにcode-deploy のみ利用 16
移行の流れ 本番への移行 一日停止させてもらって、pg_dumpやs3 syncでゆっくり 環境の切り替え自体はRoute53で 17
移行してよかった サービスの棚卸しになった デプロイの簡略化 ミドルウェアの更新も容易に メトリクスやログが見やすい 18
移行してよかった サービスの棚卸しになった アグリノートでどんなサービスが存在するかすべてに目を通すいい 機会になった 誰も存在に気づいていなかったやつなどもあった 19
移行してよかった デプロイの簡略化 (ほぼ)すべてデプロイをciでの実行に変更 これまではデプロイ環境を持った人間しかデプロイできなかった が、(ある程度は)誰でもデプロイが可能に 実質、ほぼ私がデプロイ作業している状態だったので楽になった 20
移行してよかった ミドルウェアの更新も容易に Dockerfileを書き換えるだけで良くなった コンテナの差し替えでできるのですごい楽に 21
移行してよかった メトリクスやログが見やすい とりあえず標準出力に吐きまくるだけ CloudWatch Logs Insightsがかなり強力 メトリクスは何もしなくても大体は集まってる alartの設定とかはちまちま作り込む必要はある 22
今後 コスト最適化 オートスケーリング 23
今後 コスト最適化 開発サーバー等で未利用時間は停止するように spotインスタンス等をうまく活用 負荷を見極めて最小限の性能に 24
今後 オートスケール 現在は aws ecs update-service を手動で叩いて調整してる 負荷の相場が見えてきたらオートスケールにしたい 25
26
その他 nginxをcloudfrotへ fargateのインスタンスどうしてもサービス化したいとき DBが離れたためちょっと遅くなった CloudFrontのタイムアウトが意外に短い 27
nginxをcloudfrotへ 移行前はnginxでかなり複雑なルーティング等をやっていた 移行後はnginxをやめて、cloudfrontにしたかった 複雑な部分はLambda@Edgeを使って気合で実装した Lambda@Edge使うと意外となんでもできることがわかった →jsに慣れてたのも大きい 28
fargateのインスタンスどうしてもサー ビス化したいとき 一部どうしてもサービス化して実行する必要のあるものがあった supervisordを使うことでいい感じにできた ※ ただし、サービスがダウンしたときの再起動はfargateではなく supervisord任せになってしまった 29
DBが離れたためちょっと遅くなった 一部サーバで、apiとDBが同じサーバーで動いていたのを、RDSと apiサーバーの構成に変えた 大量のクエリでやり取りする処理で時間がかかるようになってし まった サーバーの実装をよしなに変えてもらった 30
CloudFrontのタイムアウトが意外に短 い CloudFrontのリクエストタイムは30秒まで オンプレ系からの移行では意外と盲点かも クォータの引き上げの申請が必要 31