楽になるためのエンジニアリング

楽に暮らせることを目指すエンジニアのインプット&アウトプット

AWSのAMIを利用して開発環境を簡単に用意する

概要

共同で同じサービスやシステムを開発している際、作っている機能によっては環境に必要なパッケージや設定値などを細かく設定する必要がある。 都度、1から設定していると設定漏れ等により同じ環境を作れなくなったりする。

また、行っている作業によっては作業ミスにより環境を壊してしまって・・・

なんて、事はよくある話だと思われる。

そのような問題を解決する方法はいろいろあるけど、(vagrantとかだとこれ : vagrant環境のboxをバックアップする方法 - Qiita 等) 今回はAWS環境にて行う。

今回行う事

AWS環境のAMIというサービスを利用する事により、使用している環境のバックアップを作成し、複製する。

今回の要素

手順

すでに環境はAWS EC2インスタンスで作成済みのものとします。

Amazon マシンイメージ(AMI)の作成

バックアップの元となるイメージを作成する。

  • EC2 => インスタンスと選択

  • 複製したいインスタンスのメニューから、イメージ => イメージの作成 を選択する

    AMIの作成
    AMIの作成

  • 以下のような作成画面が出てくるので、AMI名、AMIについての説明、作成するAMIに紐づくEBSのスナップショットの設定を入力し、イメージの作成を行う。

    AMIの作成画面
    AMIの作成画面

  • 左側サイドメニューのAMIを選択すると、作成したAMIが表示される。(ステータス = pendingは、現在作成中のAMI)

    AMI一覧
    AMI一覧

  • 使用可能になると、ステータス = availableになる。

    AMI available
    AMI available

これで、AMIの作成完了。

AMIからインスタンスを複製する

作成したAMIをベースにインスタンスを複製する。

  • 左側サイドメニューのAMI => インスタンス作成時のベースとなるAMIを選ぶ。その後AMIのメニューから起動を選択する。

    AMIからインスタンスを起動
    AMIからインスタンスを起動

  • 作成するインスタンスのタイプ等設定を決めてインスタンスを作成する。

    インスタンスの作成
    インスタンスの作成

  • 認証鍵は以前使用していた鍵と同じ鍵でも、新しい鍵をつくるのでもよい。(使用者が自分で、今までの鍵の使用に問題なければ既存の物を使用すれば早い)

    認証鍵の設定
    認証鍵の設定

  • 作成の確認時にAMIが使用されている事を確認できれば、作成を行う。

    ここでAMIが使用されているか確認する。
    ここでAMIが使用されているか確認する。

複製完了

AMIを使用してでの作成完了
AMIを使用してでの作成完了

注意する点

  • インスタンス内での設定は完璧にコピーされるため、インスタンスごとで異なる設定を行う必要がある時にはそれぞれの対応が必要。

  • Route53等DNSの設定等は複製されない。

  • AMIは作成された時点から更新が行われるわけではないので、環境の更新が頻繁に行われるようであれば、どこかでAMIを更新する作業が必要となる。

  • 今のところAMI作成については料金がかからないが、AMI作成の過程にあるEBSのスナップショットの作成については料金が発生する。

これで、いつでも環境を壊す準備ができた。

  • 新しいメンバーが入ってきて環境構築のサポートをしてあげたり

  • 環境を壊してしまって細かい設定を検証しながら復旧させたり

と、細かい問題から

  • サービスの負荷が耐えられないのでインスタンス数を増やして対応する

というところまで、幅広く問題を解決できるため、AWSのEC2インスタンスを使用しているなら是非とも使って置くことをお勧めします。

参考書籍

Amazon Web Servicesクラウドデザインパターン設計ガイド