工数がかかる工程、再現性が特に求められる工程
前述のアーキテクチャを実現する上で、最も工数がかかる工程はどこでしょうか?
当社の経験上にはなりますが、多くの場合において、EC2のOS、ミドルウェア関連の設定が最も工数が多くかかる工程です。
EC2内部の設定以外は、以下のポイントからそこまで工数がかからないように思われます。
- AWSのマネジメントコンソールでクリックしていけば、さほど多くの時間はかからずに構築できる。
- 再現性の観点においてもそこまで困ることがない(マネジメントコンソールが直感的で分かりやすい)。
もちろん、Webサービスだけでなく、自社のITインフラ全般を構築、運用するケースや、CIを用いた継続的なサービス提供を目指すケースなどはその限りではなく、IaaC(Infrastrucre as a Code)関連のサービス(CloudFormationなど)やツール(TerraFormなど)を使用した方がよいケースもあります。
一方で、インフラを専門としたチームがない、多くアサインされているバックエンドのアプリケーションエンジニアでもある程度のインフラ設定をしたい、といった小規模な開発のケースが、今回のような、EC2の設定が工数比が大きくなるケースに該当します。
また、EC2の設定を個々のプロジェクトに依存した方法で構築すると、以下のような悪循環にはまっていきます。
- EC2の設定変更を繰り返す中で、パラメーターシートや手順書が複雑になり、再現性が失われる。
- 結果、今動いているEC2が、「秘伝のタレ」となり、作り直しが効かない。
- (クラウドなので)ハードウェアのEoS/EoLなどに起因した完全リプレースの機会がなくなり、古いバージョンのソフトウェアを動かし続けなくてはならない。
以上から、小規模なフルスクラッチの業務システム開発においては、EC2の内部の構築・設定に関して「必要な手順を標準的に作ること」「再現性のある手順を確立し、管理すること」を真っ先に考える必要があります。
本連載では、Amazon Linuxに対して、Ansible/Vagrant/Packerを用いた、開発環境・本番/ステージング環境方法について解説してきます。
