8章本番レベルのTerraformコード
本番レベルのインフラを構築するのは、難しく、緊張が多く、時間がかかります。本番レベルのインフラとは、あなたの会社の運命を任せられる種類のインフラであるという意味です。トラフィックが増えても落ちないインフラ、障害があってもデータが消えないインフラ、ハッカーが侵入しようとしてもデータ漏洩を許さないインフラ、にあなたは運命を任せます。もしその賭けが外れたなら、あなたの会社は倒産してしまうかもしれません。この章における本番レベルのインフラとは、そういうことです。
私はたくさんの企業と働く機会に恵まれましたが、これらすべての経験を元に考えた、次の本番レベルのインフラプロジェクトがどのくらいの期間を要するかの大まかな目安は次のとおりです。
- AWS Relational Database Service(RDS)を使ったMySQLのような、サードパーティの完全にマネージドなサービスをデプロイする場合、本番環境でサービスが使用できるようにするまで1週間から2週間。
- ローカルに一切データを保存しない(全データをRDSに保存するなど)Node.jsのクラスタなどステートレスな分散アプリケーションをAWS Auto Scalingグループ(ASG)上で動かすなら、およそ2倍、つまり2週間から4週間。
- ASG上で動作しローカルディスクにデータを保存するElasticsearchクラスタのようなステートフルな分散アプリケーションを自前で動かすなら、1桁違う時間、つまり本番環境で使用できるようにするまでおよそ2か月から4か月。
- アプリケーション、データストア、ロードバランサ、監視、アラート、セキュリティなどすべてのアーキテクチャを構築するなら、さらに1桁あるいは2桁違う時間、つまり6か月から36か月。小さな会社なら通常6か月に近い期間、大企業なら通常数年。 ...