はじまりの挨拶
「アケマシテオメデトウゴザイマス、ヤマモト=サン、インフラツクッテクダサイ」
「ドーモ、アケマシテオメデトウゴザイマス、タケタニ=サン、ナンノインフラデスカ?」
BGM ♪コレから始まるインフラの物語
なお、この記事は相手方には掲載の許可を取って一部脚色したり隠蔽したりしています。
登場人物
メールじゃなくて凸電ってあたりに時代を感じますね・・それぞれの登場人物のスペック
- ヤマモト:私
- タケタニ=サン:依頼方 中小web屋さんのエンジニアリーダー的な存在
- ミツヒデ=クン:タケタニ=サンの部下のエンジニアの人
他にも外野は何人かいましたがAとかBとかにします。
バックストーリーの整理
いままであまりクラウドでバックエンドを構築したことがない会社さんのエンジニアの人から、クラウドでインフラをくれたまえとかいう雲を掴むような話がきました・・・・・いや雲掴むでいいのか、クラウドだけに。
LAMP構成の頃はバックエンドも作ってたんだけど最近はフロントかSaaSばっかりでねえ・・バックエンドどうやって作ったらいいかわかんねえという話でした。
いままで自社ではPaaSで構築したことはなく、作ったことがなく、取り急ぎAWSのアカウントとサービス提供するためのドメインを取るようにお願いしました。
・・いや、Amazonのお買い物アカウントじゃなくてですね? 別物よ?
途中電話からmeetsに切り替わってここまでだいたい雑談しながら1hというところ。
戦略を詰める
なにかしら私が作らないといけないものはありそうだったので、その場で以下の回答を求めました
Q. スピードと確実性のどちらを取るか?
A. スピード
Q. コストとの向き合ったとき妥協する余地はどの程度あるか?
B. 結構ある なんだったら脱いでもいい
Q. テストできる環境は必要か?
C. ほしいけど高いならいらない
ま、こんな感じのお客様です。
要件を詰める
Q. 営業時間とメンテナンスウィンドウは?
A. 24時間365日、予告すれば可能だけど夜にしたい
Q. 障害時の対応
A. 1日以内に復旧してほしい
Q. 1日の取り扱い高
A. 平均すると30~50万円くらい
Q. 1ヶ月にかかるインフラのコスト感
A. 10万円くらいで収まる?
R. 円安だからなー ちょっと厳しいかもよ妥協することで安くなることもあるからあんまり高望みしないでね
Q. ワイへの報酬
A. 分割払いでいい?
エンジニアとの対話
このあたりはミツヒデ=クンに取り次いでもらってヒアリング。
フロントはnext.js, バックエンド(API)はpython、データの永続化はPostgreSQL、githubでソースコードを管理してローカルで動作確認をしている。
開発のエンジニアは2名。
レポジトリを見ると通り一遍まともそう。
Github Actionsを知らないそうなのでどういうものかを説明して利用に同意をもらう。
あとGihhubは課金しなさい。
ドキュメントはどこにまとまってますか?→社内のwikiに・・・notionかなにかに移ったら?と提案。
とりあえずローカルで動かす方法を教えてもらって動かしてみる・・・うん、いけそうだな。ビルドの方法も明瞭でよいと思います。
インフラに落とす
その場で設計図を手書きする。
Region: ap-northeast-2 (osaka)
メインで動くやつは AWS Amplify - ALB-ECS - RDS(PostgreSQL)
あとECR, VPC, Route53, CMとか準備、余力でCloudWatchでかんたんな死活監視のアラート仕込。
RDSのバックアップはスナップショット取ってap-northeast-1に逃がしとこう。
作るよ!
さて、CDKで過去に作ったコードをゴニョゴニョ・・・よし、構築完了2日で8hくらい。
ついでにこのCDKもgithubで管理しとこ。
AmplifyからGihhub Actionsを参照するようにして、Gihhub ActionsでECRにイメージをpushするようにして、リリース戦略とブランチ戦略をgithub flowでお願いしますと提案する。
依頼が1月4日で当日中にヒアリング完了、そして3連休はガッツリなにもせず10日にはなんかいんたあねっと上で動くものが出来上がっていたとさ。
1月のコストは $600 って出てるけど円安なんだよなあ・・・10万超えるって言っとこ・・
さて、おおいにケチる要素のあるテスト環境の話をこれからします。
たぶん、スペック変えるだけで一瞬でできますね。
まだ細かいこと詰めないといけないけど妥協できるところ妥協していけばこのスピード感ですね。
IaCさまさまです。