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
好きです AWS 〜 移行を通した AWS とのつきあいかた
Search
exc-sosuke-ito
September 10, 2019
Programming
0
20
好きです AWS 〜 移行を通した AWS とのつきあいかた
AWS LT 資料
https://connpass.com/event/143424/
exc-sosuke-ito
September 10, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
920
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
23
15k
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
820
2 週間で Twitter Bot を作ってみた
contour_gara
0
330
Random\Randomizer クラスで日常のあれこれを解決しよう! / Random\Randomizer class solves familiar trouble
cocoeyes02
0
230
新宿ダンジョンを可視化してみた
satoshi7190
2
240
ONE WEDGE_company_guide
1wedge_one
0
470
Rethinking UI building strategies @ SFI 2024
letelete
0
270
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
110
"config" ってなんだ? / What is "config"?
okashoi
0
240
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
670
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
43
6.7k
Testing 201, or: Great Expectations
jmmastey
28
6.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Music & Morning Musume
bryan
41
5.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
244
20k
10 Git Anti Patterns You Should be Aware of
lemiorhan
648
58k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
GitHub's CSS Performance
jonrohan
1025
450k
The Power of CSS Pseudo Elements
geoffreycrofte
60
5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
322
20k
Gamification - CAS2011
davidbonilla
76
4.6k
Transcript
好きです 移⾏を通した とのつきあいかた ウーマンメディア技術 伊藤 聡介
None
None
移⾏しないといけない…
Corporate data center: OpenStack Web Front instance group Web Users
App Users Corporate data center Batch API instance group Batch Solr memcache (twemproxy) ※ 細かいのは省略してます
API サーバー フロントサーバー バッチサーバー ツールサーバー DB (MySQL) Solr Memcache リバースプロキシやロードバランサーとか
インフラまわりは得意じゃない DB をぶっ壊したことがあります
oO( 気が重い )
わたしたちチーム から への移⾏ から AWS Elasticsearch Service への移⾏ による構成管理
とにかく に 慣れないといけない
とりあえずポチポチする AWS の便利さを存分に味わうのが⼤事 好きにぶっ壊せる楽しさ AWS のハンズオンで体系的に学べる
なんとなく 慣れてきて 知ったかぶりできる 感じになってきた
やるべきことを 考える
サブネットの切り⽅ 開発環境どうするか 踏み台とかセキュリティとかどうするか DB の移⾏⼿順はどうするか 構成管理どうするか
バッチで⽣成したファイルを 各サーバーに配布してる
S3 と Redis で 管理することにした 他サービスから PUT してもらえる
Elasticsearch に どうデータを⼊れるか
Glue や Kinesis Firehose が 候補に挙がる
結局 Python のバッチで バルクで⼊れた やってみたら 別に問題なかった
構成管理をどうするか
CloudFormation か Terraform 今回は Terraform を使った
で書く
構成
depends ➔ network middleware application operation
make で構築 $ make dev-plan DOCKER_SERVICE=terraform-application $ make dev-apply DOCKER_SERVICE=terraform-middleware
こんな構成になりました
VPC Availability Zone Availability Zone Web Front instance group Aurora
S3 Redis Cache Elasticsearch Web Users App Users Corporate data center Batch API instance group Batch ※ Subnet とか リバースプロキシとか細かいものは省略してます
Terraform で スクラップ & ビルド やりやすくなった
構成をチーム内外で 共有もできる
実感として ポチポチは意外に忘れる
実際、本番環境で S3 の VPC エンドポイント 作成し忘れてた
結構いい感じ 独特の書き⽅とか 変更時の差分とか闇もある
監視は CloudWatch が使える
None
困ったこと DNS の切り替え → こわい → 荷重とかで徐々に移⾏する DB の切り替え →
こわい → レプリケーションの切り替えは気をつける
できなかったこと コンテナ化して Fargate で動かす CodeDeploy でデプロイ⾃動化など
トライしやすい DevOps がやりやすくなる インフラまわりの忌避感が薄くなる マネージドサービスが多い チューニング的なことをしなくて済む
AWS の⽅々に相談できた Terraform で構成管理 & レビューできたのもよい ベストプラクティス & アンチパターンが⾒つかりやすい
インフラまわり得意でなくても やりやすくなった
== なにかわからないもの
!= なにかわからないもの
== エンジニアの道具箱
好きです