はじめに


AWS開発者なら誰もが知っていると思われる、デプロイオートメーション。コードの解析からビルドまで、最新の状態を毎回の変更に合わせて適用できるよう、フレームワークなどで提供されています。今回は、そんなデプロイオートメーションについて見ていきましょう。



デプロイオートメーションの特徴


まず、複数のAWSインスタンス間でデプロイオートメーションを行う場合、サーバごとに設定を追加する必要はありません。AWSでは、複数のサーバと同じ状態を保つことができ、単一のコンテナでアプリケーションを取り扱えるようになります。
正しく設定ができれば、AWSのインフラストラクチャはAzureやGCPなどと比べでも同等を誇ることができます。



デプロイオートメーションの種類


デプロイオートメーションの種類を見ていくと、ツールやサービスによって様々なものがあります。リリース速度を上げるための機能を持つCapistranoや、コンテナのイメージを作成するためのDockerなどがあります。

以下は、あるサービスをデプロイするためのサンプルコードを示します。

---
# 最新のコードを取得
git pull

# 変数を設定
APP_NAME="my-app"
APP_VERSION="1.0.0"

# コンテナイメージのビルド
docker build --tag ${APP_NAME}:${APP_VERSION} .

# コンテナイメージをデプロイ
docker run -p 80:80 --name ${APP_NAME} ${APP_NAME}:${APP_VERSION}


まとめ


今回は、デプロイオートメーションについてご紹介しました。ツールやサービスの設定を整えて、AWSのインフラストラクチャをAzureやGCPなどと同レベルにできることを見てきました。また、デプロイのサンプルコードもご紹介しました。デプロイオートメーションを使えば、すっきりとしたコードを効果的に管理することができます。

投稿者: systemreach_engineer