当社は、2023 年 6 月のライフ終了日であるため、EC2 インスタンスのオペレーティングシステムを AML 1 から AML 2 にアップグレードする必要があります。私たちは最近、アプリケーションに非常に大きなアドオンをリリースしたので、インスタンスタイプのアップグレードについても話しています。現在のインスタンスサイズはm3.largeで、最近わずかな遅延が発生しています。明確に言えば、オペレーティングシステムのアップグレードだけでなく、本番環境のインスタンスタイプのアップグレードも必要です。
この問題を解決するための最良の方法を見つけるために現在サーバーを回復する方法があるかどうか疑問に思います。管理者の一人がインフラストラクチャを完全に再構築する必要がないように、現在のインスタンスを使用してオペレーティングシステムをアップグレードする方法を学びます。低レベル環境にはゴールデンイメージを使用し、サーバーから低レベルのダウンロード/構成が発生したときに開発サーバーから本番環境にそのイメージをデプロイします。インフラストラクチャをアップグレードするための最善の措置を決定するには、いくつかの質問があります。
さまざまな環境にイメージを展開するための依存関係は何ですか?オペレーティングシステムですか?インスタンスタイプですか?すべての環境で画像を使用できるようにするには、すべての環境間で一致する必要がありますか?
私の本番インスタンスタイプが子環境インスタンスタイプよりも大きい場合、子環境から親環境へのイメージのデプロイに影響しますか?
現在のインスタンスからOSをアップグレードし、より大きな本番インスタンスタイプを取得し、DEV環境OSをアップグレードし、そのイメージを使用して親環境にデプロイできますか?
サーバーを完全に再構築しなくても、Amazon EC2インスタンスのオペレーティングシステムをアップグレードできますか?
ありがとうございます。
答え1
私はAmazon Linuxをほとんど使用していませんが、私が使用した他のデプロイメントAMIの場合、AWSはさまざまなリージョンでさまざまなイメージ(AMI)を維持しています。イメージにローカルゾーン固有の設定がある可能性があります(他のゾーンでは機能しません)、AWSは他のゾーンからイメージを読み取り、EC2サーバーの起動を遅くしたくありません。そうしません。わかりません。
しかし、地域ごとに異なるAMIが必要であることがわかりました。私は一般的に使用されている各リージョンでカスタムAMIを構築していますが、カスタムAMIが別のリージョンにコピーされ、そこからEC2サーバーを起動するために使用される場合もありました。私のビルドステップは地域によって変わりません。これは、元のソースAMIがそのリージョンに限定され、そのリージョンで開始されたEC2サーバーで実行されるということです。
使ったHashcorpパッカーカスタムAMIを構築します。ただし、AWSにはカスタムAMIビルダーサービスがあるように見え、常にEC2サーバーでAMIを作成する機能がありました。
私が作業した作業では、通常、下位の非本番環境と親の本番環境の間のオペレーティングシステムに違いはありません。私のシステムが異なるAMIを使用する唯一のケースは、子環境が親環境とは異なるAWSアカウントまたはAWSリージョンにありますが、AMIが同じソースイメージに構築され、同じ自動化スクリプトで構成されている場合です.
私のイメージが変わらない理由は、サーバー機能(Webサーバー、データベースサーバーなど)の主なカスタマイズが構成管理ツール(Puppet、Chef、Ansible、Saltstackなど)からのものです。一部のチームは、構成管理レイヤーを削除し、イメージをカスタマイズすることを好みます。これにより、より高い環境の画像をより低い環境の画像とは異なるものにすることができる。どちらの方法にも長所と短所があります。
AWS では、イメージに使用できるインスタンスタイプ/サイズは多いが、イメージHVM
に使用できるインスタンスタイプ/サイズはあまりありませんPV
。これは、イメージを構築しHVM
、それを使用して、非常に小さなマシン、非常に大きなマシン、およびそれらの間のすべてのマシンを起動できることを意味します。インスタンスタイプごとに異なるイメージを維持する必要はありません。
インスタンスタイプ別のイメージにカスタマイズを追加すると問題が発生する可能性がありますが、コアのLinuxイメージには問題はありませんでした。 AWSがこれについて警告しない限り、Linux2にも問題はないと思います。
EC2 サーバーから Linux1 を Linux2 にアップグレードすることが可能かどうかは覚えていません。 AWS ドキュメントでお知らせします。