AWS・Docker・Terraformで構築する本番環境

DMMグループ Advent Calendar 2019 - Qiita の25日目です

f:id:y-ohgi:20191225134537p:plain

TL;DR

  • AWSで3層アーキテクチャのサービスを構築するテンプレート(ここではスターターキットと呼びます)を公開しました。
  • 利用するコンポーネントとしては主にAWSのALB・ECS/Fargate・Aurora、Dockerとローカル環境用にdocker-compose、IaCにTerraformを利用しています。
  • 導入や既存メンバーのためのスターターキットで使用するコンポーネントの入門用ドキュメントを備えています。

概要

y-ohgi.github.io/starterkit にgitbookとしてドキュメントを公開しているのでそちらを閲覧してください。

サンプルとしてGolang・ECS/Fargate・Aurora(MySQL)で構築をしています。
また、RailsやNextなど、コンテナベースであれば言語は問いません。

このスターターキットでは単純に「つくってみよう」的なノリではなく、このリポジトリ郡をForkして本番環境を構築することを想定しています。
実際に社内でも(GitHub Enterprise上で公開しているほぼ同様のコードの)スターターキット リポジトリ郡を使用して、Forkして本番環境構築を行っているサービスもあります(ありますが、社を代表するものではありませんし、いわゆる社内の標準的なものでもありません。)。

実際に使用してみた感想として、AWSの運用経験の浅いチームで取り入れてみたのですが、Terraformに書いてあることを中心に学習することが可能で、経験の浅いメンバーでも「何を学習すれば良いのか」がわかりやすかったのが特に良い点でした。

最後に

「ここが良い/悪い/足りない」など、評価があればGitHub上のリポジトリを引き続き更新していこうと思います。
もし導入にあたって質問や支援など、なにかあれば @_y_ohgi へお気軽にぜひ