合同勉強会 in 大都会岡山 -2020 Winter Online-
新サービスのインフラ作ってた話@合同勉強会 in 大都会岡山 -2020 Winter Online-
View Slide
I am a GitKraken Ambassador, not a paid employee of GitKraken by Axosoft.INTRODUCE MYSELFRyo Sumasu@ryosms#gbdaitokai
拍手アプリhttps://syobochim.hatenablog.com/entry/2020/10/31/205851⚫ ↓にアクセスすると拍手ができます⚫ 拍手してもらえるとハゲみになります⚫ https://dprn9mw3rdpyz.cloudfront.net/?id=c466f4d0-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サービス⚫ 帳票出力有り⚫ マルチテナントなクラウドサービス⚫ もう少しでサービスイン
全体像インフラ構成
個別インフラ構成
Rails
帳票
ログ分析
ツールとか、デプロイ方法とかデプロイ周り
デプロイツール⚫ CloudFormation⚫ Terraform⚫ ecspresso
CloudFormationhttps://aws.amazon.com/jp/cloudformation/⚫ インフラのガワを構築するのに利用⚫ VPC関連⚫ ECS Cluster⚫ SQS⚫ Elasticsearch⚫ Lambda(sam cli)⚫ CloudWatch Logs ロググループ⚫ S3⚫ IAM⚫ etc…
Terraformhttps://www.terraform.io/⚫ パラメータストアの管理に使用⚫ CloudFormationでは管理できないケースがある⚫ https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html
ecspressohttps://github.com/kayac/ecspresso⚫ ECSサービスのデプロイに使用⚫ config.yml⚫ service-def.json⚫ task-def.json
ecspressohttps://twitter.com/ryosms/status/1219871032485404675
ecspressohttps://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