【AWS】如何使用AMI(Amazon Machine Image)來當作EC2 Instance的模板?

零、前置作業

先建立一台 public EC2 instance, security group(SG)除原本的22port之外,另新增一個允許從80port連入的SG的TCP連線

一、簡單架構出系統環境

連進EC2, 執行以下指令:

  1. 先建立一個預留空間,當作測試資料
    sudo fallocate-l 1G fake_file_in_ami
    檢查是否成功製作出來
    ls -l
  2. 安裝git 並查看版本
    sudo yum install -y git
    sudo git --version
  3. 安裝docker 並查看版本
    sudo yum insatll -y docker
    sudo docker --version
  4. docker 跑起來
    sudo service docker start
  5. 跑nginx server, 其網路介面與主機一樣
    sudo docker run --network host nginx
    6.複製公用IP,用網頁測試一下,看到成功畫面

二、將EC2 instance 打包成AMI

  1. 建立映像(create image)


2.AMI建立完成後,會同時建立一個snap shot
備註:
(1)此時該snap shop的所有權為該AMI,因此無法單獨刪除該snap shot
(2) 可單獨使用snap shot進行還原,或用AMI進行還原。若使用AMI,會自動去使用所對應之Snap shot

3.然後用Snap shot 還原原本那個EC2

三、將AMI還原成EC2 instance


備註:不論是建立AMI的原始EC2,還是被還原的新EC2
兩者都是新開機的狀態,所以預設docker是沒開啟的
nginx也是沒開啟的