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
creating infra / 新サービスのインフラ作ってた話
Search
ryosms
November 03, 2020
Technology
1
1k
creating infra / 新サービスのインフラ作ってた話
合同勉強会 in 大都会岡山 -2020 Winter Online-
ryosms
November 03, 2020
Tweet
Share
More Decks by ryosms
See All by ryosms
JetBrains Plugins / IDEと香辛料
ryosms
0
320
VS CodeでもGitKraken
ryosms
0
1.5k
量子コンピュータ完全に理解した / quantum computing perfect master
ryosms
1
290
Intro to Git GUI Client
ryosms
3
720
CloudGarageでJIRAを運用した感想
ryosms
1
750
再考 エンジニアの装備 〜武器編〜 / Weapon for Engineer
ryosms
2
190
AndroidをJUnit4でやる / Using JUnit4 with Android
ryosms
0
730
Other Decks in Technology
See All in Technology
オブザーバビリティと育てた ID管理・認証認可基盤の歩み / The Journey of an ID Management, Authentication, and Authorization Platform Nurtured with Observability
kaminashi
1
1.1k
20251027_findyさん_音声エージェントLT
almondo_event
2
480
現場の壁を乗り越えて、 「計装注入」が拓く オブザーバビリティ / Beyond the Field Barriers: Instrumentation Injection and the Future of Observability
aoto
PRO
1
670
知覚とデザイン
rinchoku
1
620
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
3
880
スタートアップの現場で実践しているテストマネジメント #jasst_kyushu
makky_tyuyan
0
140
プロファイルとAIエージェントによる効率的なデバッグ / Effective debugging with profiler and AI assistant
ymotongpoo
1
480
入院医療費算定業務をAIで支援する:包括医療費支払い制度とDPCコーディング (公開版)
hagino3000
0
120
ゼロコード計装導入後のカスタム計装でさらに可観測性を高めよう
sansantech
PRO
1
530
仕様駆動開発を実現する上流工程におけるAIエージェント活用
sergicalsix
6
1.8k
猫でもわかるAmazon Q Developer CLI 解体新書
kentapapa
1
130
激動の時代を爆速リチーミングで乗り越えろ
sansantech
PRO
1
150
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
How to train your dragon (web standard)
notwaldorf
97
6.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
We Have a Design System, Now What?
morganepeng
53
7.8k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Making Projects Easy
brettharned
120
6.4k
Designing Experiences People Love
moore
142
24k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Transcript
新サービスのインフラ作ってた話 @合同勉強会 in 大都会岡山 -2020 Winter Online-
I am a GitKraken Ambassador, not a paid employee of
GitKraken by Axosoft. INTRODUCE MYSELF Ryo Sumasu @ryosms #gbdaitokai
拍手アプリ https://syobochim.hatenablog.com/entry/2020/10/31/205851 ⚫ ↓にアクセスすると拍手ができます ⚫ 拍手してもらえるとハゲみになります ⚫ https://dprn9mw3rdpyz.cloudfront.net/?id=c 466f4d0-00e3-4271-a626-93a09e705ce4
AGENDA ⚫ 前置き ⚫ インフラ構成 ⚫ デプロイ周り
会社・前業務・サービス内容 前置き
会社のこと https://www.rhizome-e.com/ ⚫ 株式会社リゾーム ⚫ 通称 #R社 ⚫ toB事業(主にショッピングセンター向け) ⚫
所属チームはRailsがメイン ⚫ 運用はAWS / heroku
前にやってた業務(抜粋) ⚫ toCサイト(閉鎖済み) ⚫ Spring Boot + Docker + Elastic
Beanstalk ⚫ Rundeck構築 ⚫ 社内システムの構築 ⚫ 主力商品(Rails)の検証環境構築の簡易化 ⚫ Vue.js + Cognito + AWS Amplify ⚫ API Gateway + AWS Lambda(Golang) + DynamoDB ⚫ Elastic Beanstalk (Docker multi container)
今回のサービスの概要 ⚫ ショッピングセンター向けWebサービス ⚫ 帳票出力有り ⚫ マルチテナントなクラウドサービス ⚫ もう少しでサービスイン
全体像 インフラ構成
None
個別 インフラ構成
Rails
帳票
ログ分析
ツールとか、デプロイ方法とか デプロイ周り
デプロイツール ⚫ CloudFormation ⚫ Terraform ⚫ ecspresso
CloudFormation https://aws.amazon.com/jp/cloudformation/ ⚫ インフラのガワを構築するのに利用 ⚫ VPC関連 ⚫ ECS Cluster ⚫
SQS ⚫ Elasticsearch ⚫ Lambda(sam cli) ⚫ CloudWatch Logs ロググループ ⚫ S3 ⚫ IAM ⚫ etc…
Terraform https://www.terraform.io/ ⚫ パラメータストアの管理に使用 ⚫ CloudFormationでは管理できないケースがある ⚫ https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/late st/UserGuide/aws-resource-ssm-parameter.html
ecspresso https://github.com/kayac/ecspresso ⚫ ECSサービスのデプロイに使用 ⚫ config.yml ⚫ service-def.json ⚫ task-def.json
ecspresso https://twitter.com/ryosms/status/1219871032485404675
ecspresso https://github.com/kayac/ecspresso ⚫ ECSサービスのデプロイに使用 ⚫ config.yml ⚫ service-def.json service-def.yml ⚫
task-def.json task-def.yml ⚫ yqを利用してyml→jsonに変換
デプロイ手順 ⚫ デプロイやDBのメンテ用にEC2を作成 ⚫ EC2の起動テンプレートとansibleで作り直し可能 ⚫ 手元で動かせるように同様のDockerイメージも作成 ⚫ 各手順はすべてコマンドで実行 ⚫
複雑なコマンドは手順をシェルスクリプトにしたりしている
デプロイ手順 ⚫ 最新ソースをgit pull ⚫ terraform applyでパラメータストア更新 ⚫ CFnのOutputから環境変数作成 ⚫
サービス定義・タスク定義のjson生成 ⚫ Dockerイメージのbuild・push ⚫ ECSサービスのデプロイ
もっと簡単にデプロイしたい めんどくさい
めんどくさい処理はRundeckにやらせよう Rundeck
Rundeckでのデプロイ手順 ⚫ RundeckのWebコンソールにログインする ⚫ 本プロジェクトのページに移動する ⚫ デプロイ用のJobを実行する
Rundeckでのデプロイ手順
I am a GitKraken Ambassador, not a paid employee of
GitKraken by Axosoft. Use my referral URL to be entered to win a Nintendo Switch! www.gitkraken.com/invite/xKSqCHYi