おっさん社内SEエンジニアの勉強ブログ

勉強記録のブログとなります。

SAA学習-EC2-AMIの活用

今回のテーマ:AMIの活用

概要

AMIイメージ

AMIイメージの要点として以下のものになります。

  • AMIイメージからOSセッティング方式を選択
  • EC2インスタンスの内容をAMIとしてバックアップ可能
  • バックアップを使用してEC2インスタンス複製可能

AMIイメージの共有

AMIイメージを共有する用途としては以下のものが挙げられます。

  • 同一リージョン内で使用可能(多リージョンへはそのまま使用は不可)
  • AMIをコピーし他リージョンで起動(概略図は下記になります)

f:id:In-houseSE:20210417102433p:plain

AMIの利用

AMIを利用する項目やその際の概要については以下のものが挙げられます。

項目 利用概要
OSの選択 ・利用したいサーバーのOSを選択し、AMIを利用
・利用していたサーバーを復元する際にAMIを利用
EC2のバックアップ ・既存のEC2インスタンスからAMIを作成
・EC2インスタンスをバックアップし構成情報を保存する。EBSボリュームのスナップショットも含む
ゴールデンイメージ ・最適なEC2インスタンス構成を反映したAMIイメージ
AMIの共有 ・AMIを共有するユーザーのAWSアカウント番号を指定し、他アカウントに共有可能
リージョンの移動 ・AMIはリージョン内でのみ利用可能
・別リージョンにコピーすることは可能で、コピー先のAMIは別AMIとなる
  • EC2 Image Builderを利用しAMIの変更管理を自動的にパイプライン対応

実際の手順(AMIの作成)

f:id:In-houseSE:20210417104151p:plain

  • インスタンスの起動時の選択で、マイAMI(自作のAMI)、AWSMarketplace(3rdparty)、コミュニティAMI(OSに合わせて実施)

f:id:In-houseSE:20210417104315p:plain

  • マイAMIを作成するためにいったんキャンセルをします。

  • WEBサーバーのインスタンスを選択します。
    すべて削除していたので、簡単に作成する方法は以下の記事を参照ください。サクサク操作すれば5分でインスタンスが作れます。
    過去記事: in-housese.hatenablog.com

  • 該当するインスタンスを選択し、アクション-イメージとテンプレート-イメージを作成をクリック

f:id:In-houseSE:20210417105544p:plain

  • イメージ名を記載し、イメージの作成をクリック

f:id:In-houseSE:20210417105801p:plain

  • マネージドコンソール-EC2-イメージ-AMIの順に選択し、作成したAMIを確認する(スタータスがavailableになったら利用可能になります。)

f:id:In-houseSE:20210417105926p:plain

  • 利用可能な状態となったら、該当するAMIを選択し、起動をクリック

f:id:In-houseSE:20210417112448p:plain

  • インスタンスタイプ以降の設定を行いEC2インスタンスを起動し、正常に起動していることを確認(今回のNameはweb-sv-1cとタグをつけております。)

f:id:In-houseSE:20210417113030p:plain

  • 該当するインスタンスへターミナルでログインし、httpdがインストールされていることを検索

コマンド

sudo yum list installed | grep httpd

結果:

eneric-logos-httpd.noarch            18.0.0-4.amzn2                 @amzn2-core
httpd.x86_64                          2.4.46-1.amzn2                 @amzn2-core
httpd-filesystem.noarch               2.4.46-1.amzn2                 @amzn2-core
httpd-tools.x86_64                    2.4.46-1.amzn2                 @amzn2-core
  • 無事にインストールされていることを確認。(htmlファイルの作成をしてない状態で起動しているので、確認はここまで)

実際の手順(AMIのコピー)

  • マネージドコンソール-EC2-イメージ-AMIの順に選択

f:id:In-houseSE:20210417121402p:plain

  • コピーしたいAMIを選択後、アクション-AMIのコピーをクリック

f:id:In-houseSE:20210417121446p:plain

  • コピー先のリージョンを選択し、AMIのコピーをクリック(名前や説明は任意で更新)

cf)2021年4月から大阪リージョンを選択できるため、今回は大阪リージョンを指定

f:id:In-houseSE:20210417121645p:plain

  • AMIをコピーした先のリージョンへ移動し、AMIがコピーされているか確認

f:id:In-houseSE:20210417121931p:plain

  • 作成後は先程と同じ動作確認を実施する。(今回は省略します。)

注意点としてはリージョンを変えるためキーペアやSGは新規で設定する必要があります。
また、課金されないようにAMIのコピー先のリージョンにて概要するAMIの登録を解除しておきます。

  • 該当するAMIを選択したら、アクション-登録解除をクリック

f:id:In-houseSE:20210417122337p:plain

  • 確認ダイアログが表示されたら、次へをクリック

f:id:In-houseSE:20210417122413p:plain

  • 登録中のAMIが存在しないことを確認

f:id:In-houseSE:20210417122442p:plain

実際の手順(AMIの共有)

IAMのクロスアカウントの検証で使用したアカウントと今回は共有します。
クロスアカウント作成については以下の記事を参照ください。(共有先のアカウントIDを控えるため使用)

過去記事: in-housese.hatenablog.com

  • マネージドコンソール-EC2-イメージ-AMIの順に選択する

f:id:In-houseSE:20210417123749p:plain

  • 共有したいAMIを選択し、アクセス許可タグを選択後、編集をクリック

f:id:In-houseSE:20210417123632p:plain

  • 共有先のAWSアカウント番号を入力し、アクセス許可の追加をクリック後、保存をクリック

f:id:In-houseSE:20210417123922p:plain

  • 別のアカウントに切り替わったことを確認

f:id:In-houseSE:20210417125512p:plain

f:id:In-houseSE:20210417125624p:plain

  • AMIの設定画面より、マイAMIを選択し共有ファイルを選択がふえていることを確認

以降は通常のインスタンスの作成をする作業となります。

f:id:In-houseSE:20210417125731p:plain

実際の手順(EC2 Imange Builder)

  • マネージドコンソール-EC2-イメージ-AMIの順に選択し、EC2 Image Builderをクリック

f:id:In-houseSE:20210417130458p:plain

  • イメージパイプラインを作成するをクリック

f:id:In-houseSE:20210417130626p:plain

  • パイプライン名を記入する。

cf)拡張メタデータ:Imageの追加を収集し運用管理で活用するため有効化のままになります。
管理先は、AWS StstemsManagerにて管理します。

f:id:In-houseSE:20210417130950p:plain

  • ビルドスケジュールで更新する頻度や方式を指定し、次へをクリック

f:id:In-houseSE:20210417131100p:plain

  • レシピについては新しいレシピを作成するを選択

f:id:In-houseSE:20210417131249p:plain

  • イメージタイプはAMIを選択

f:id:In-houseSE:20210417131323p:plain

  • 一般は名前、版数管理、説明を記載

f:id:In-houseSE:20210417131516p:plain

  • ソースイメージで対象のイメージなどを選択(今回は任意で作成AMIを指定するためカスタムAMIIDを選択)

f:id:In-houseSE:20210417131711p:plain

今回はWEBサーバーなのでapacheを検索し指定

f:id:In-houseSE:20210417131934p:plain

  • ビルド後の出力するAMIは指定しない。

f:id:In-houseSE:20210417132112p:plain

  • ストレージサイズの更新も変更せず、確認後、次へをクリック

f:id:In-houseSE:20210417132207p:plain

  • インストラクチャ設定はデフォルトの設定オプションを指定し、次へをクリック

f:id:In-houseSE:20210417133416p:plain

  • ディスビュージョン設定はデフォルトの設定オプションを指定し、次へをクリック

f:id:In-houseSE:20210417133519p:plain

  • 設定を確認し、パイプラインを作成するをクリック

f:id:In-houseSE:20210417133607p:plain

  • パイプラインよりイメージを手動で作成する場合、イメージパイプライン-作成したパイプラインを選択後、アクション-パイプラインを実行するをクリック

f:id:In-houseSE:20210417133818p:plain

  • イメージに実行された結果が存在することを確認

f:id:In-houseSE:20210417133915p:plain

今回のテーマは以上です。

cf)失敗談:

  • マーケットプレースよりAMIを起動する際、m5インスタンスから変更忘れたのがこちら

f:id:In-houseSE:20210417134232p:plain