知り合いが、構築をIaCで行っているそうで、関連知識を深めようと思います。
前回からの続きで、Ansible が得意とするのは、OSやミドルウェアの初期設定や運用作業の自動化です。具体的には、ユーザー作成やパッケージのインストール、設定ファイルの配布、サービスの起動・再起動、定期的な設定変更の適用などです。手作業で行うとミスが起きやすく、手順書のメンテナンスも大変な作業を、コードとして一元管理できます。
Terraform との役割分担を意識すると理解しやすくなります。Terraform は VPC や EC2、ALB、RDS といった AWSリソースを作るところまで を担当します。一方で、EC2 の中に入って OS を設定したり、アプリや nginx をインストールしたりするのは Ansible の仕事です。Terraform で作った EC2 のIPやタグを Ansible のインベントリに連携させることで、インフラ構築からサーバ設定までを一貫して自動化できます。
最近のクラウド環境では、ECS や EKS、Lambda のようなマネージドサービスが増えたため、Ansible を使う場面は以前より減ったとも言われます。しかし、EC2 ベースのシステムや、オンプレミス・クラウド混在環境、あるいは「まだコンテナ化していない既存システム」では、Ansible は今でも非常に強力な選択肢です。また、踏み台サーバやCI用サーバの構築など、「必ず1台は手元で管理したいサーバ」がある場合にもよく使われます。