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
creating infra / 新サービスのインフラ作ってた話
Search
ryosms
November 03, 2020
Technology
1.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
creating infra / 新サービスのインフラ作ってた話
合同勉強会 in 大都会岡山 -2020 Winter Online-
ryosms
November 03, 2020
More Decks by ryosms
See All by ryosms
SLIDOWN
ryosms
0
200
JetBrains Plugins / IDEと香辛料
ryosms
0
410
VS CodeでもGitKraken
ryosms
0
1.7k
量子コンピュータ完全に理解した / quantum computing perfect master
ryosms
1
330
Intro to Git GUI Client
ryosms
3
790
CloudGarageでJIRAを運用した感想
ryosms
1
770
再考 エンジニアの装備 〜武器編〜 / Weapon for Engineer
ryosms
2
210
AndroidをJUnit4でやる / Using JUnit4 with Android
ryosms
0
760
Other Decks in Technology
See All in Technology
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
650
フィンテック養成勉強会#68
finengine
0
110
AIにシークレットを見せない、WSL2で安全な開発環境
yazm
0
310
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
Rust で関数型ドメインモデリング
takonda
0
170
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
200
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
120
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
180
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
340
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
120
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
930
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
BBQ
matthewcrist
90
10k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Optimizing for Happiness
mojombo
378
71k
The Curious Case for Waylosing
cassininazir
1
570
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Site-Speed That Sticks
csswizardry
13
1.6k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
Facilitating Awesome Meetings
lara
57
7.2k
Into the Great Unknown - MozCon
thekraken
41
2.8k
How to train your dragon (web standard)
notwaldorf
96
6.9k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
570
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