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
1
Share
creating infra / 新サービスのインフラ作ってた話
合同勉強会 in 大都会岡山 -2020 Winter Online-
ryosms
November 03, 2020
More Decks by ryosms
See All by ryosms
JetBrains Plugins / IDEと香辛料
ryosms
0
350
VS CodeでもGitKraken
ryosms
0
1.6k
量子コンピュータ完全に理解した / quantum computing perfect master
ryosms
1
310
Intro to Git GUI Client
ryosms
3
750
CloudGarageでJIRAを運用した感想
ryosms
1
760
再考 エンジニアの装備 〜武器編〜 / Weapon for Engineer
ryosms
2
190
AndroidをJUnit4でやる / Using JUnit4 with Android
ryosms
0
740
Other Decks in Technology
See All in Technology
Choose your own adventure in agentic design patterns
glaforge
0
140
ARIA Notifyについて
ryokatsuse
1
120
Shipping AI Agents — Lessons from Production
vvatanabe
0
270
データを"持てない"環境でのアノテーション基盤設計
sansantech
PRO
1
130
インターネットの技術 / Internet technology
ks91
PRO
0
210
今年注目する!データ分析プラットフォームでのAIの活用
nayuts
0
140
AIを共同作業者にして書籍を執筆する方法 / How to Write a Book with AI as a Co-Creator
ama_ch
2
130
マルチプロダクトの信頼性を効率良く保っていくために
kworkdev
PRO
0
170
Route 53 Global Resolver で高額課金発生!
otanikohei2023
0
110
AI時代における技術的負債への取り組み
codenote
1
1.6k
エージェントスキルを作って自分のインプットに役立てよう
tsubakimoto_s
0
400
Practical TypeProf: Lessons from Analyzing Optcarrot
mame
0
410
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The SEO Collaboration Effect
kristinabergwall1
1
420
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
340
Building Applications with DynamoDB
mza
96
7k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
270
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Designing Experiences People Love
moore
143
24k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
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