EC2既存のAMIを更新する


18

Elastic Load Balancingを使用してAuto Scaling Groupの負荷分散を行っています。そのため、アプリケーションサーバー(Tomcat)とそれに戦争として展開されたWebアプリを保持するプライベートAMIがあります。AMIの Tomcat設定を変更する必要がある場合。AMIを起動する必要はありません->ログイン+ Tomcat構成を変更します->新しいAMIを作成します->古いAMIを削除します新しいAMIを作成することは、自動スケールを更新する必要があるため、解決策ではないと思います新しいAMIを追加するグループ

新しいものを作成せずに既存のAMIのデータを更新できる方法はありますか?同じAMI IDが欲しいだけです

回答:


5

インスタンスを起動するときに実行されるユーザーデータスクリプトで構成を更新できます。

スクリプトに何を入れるかは、ファイルシステムレベルで構成を管理する方法によって異なります。構成ファイルをMercurialリポジトリに直接配置し、単純にそれpullを更新します。


あなたの答えは有効だと思いますが、私の意見では、それはハックなものです...同じAMI IDを維持しながら私のAMIイメージを更新する方法はありませんか?
ハディセーラム

3
残念ながら、私はそれが可能だとは思わない。Amazon docから:「AMI IDはイメージ内の物理ビットに関連付けられています。変更されるイメージからユーザーを保護するには、再バンドル後にAmazon EC2インスタンスAMIを再登録する必要があります。」
デビッドレベスク

既存のAMIイメージを変更することはできません。新しいものを作成する必要があります。
マットハウザー

ユーザーデータを使用してIMOを展開する構成はよりエレガントです。人々は、インスタンスの作成時にサービスをインストールする方向にも傾いています。CloudFormationテンプレートの使用を検討することもできます。
エドウィン

BeanStalkをカスタムAMIで使用すると、人生がずっと楽になり、自動スケーリングでロードバランサーを設定する必要がなくなり、サーバー構成を変更する必要がある場合は、独自のスクリプトを作成します..すべてに感謝
ハディセーラム

3

既存のAMIを更新して同じAMI IDを保持することはできません。新しいカスタムAMIを作成してAuto Scalingグループの起動設定を更新するか、@ DavidLevesqueが示唆するようにベースAMIのインスタンスを起動した後、設定を変更してインスタンスに変更を適用する必要があります。

たとえば、起動時にS3からアプリケーション、構成、およびデータをダウンロードするのは一般的なアーキテクチャです。


アーキテクチャtid-bitに関するメモの+1
Jmoney38

0

これは古い投稿のようです。ただし、あなたがまだ同じ苦境にある場合は、Instance Store-Backed Windows AMI(バンドルタスク)の使用を検討できます。AMIにも似ていますが、実際にイメージ自体を作成し、S3バケットに保存するため、イメージ自体をより詳細に制御できます。これにより、新しいAMIを作成せずに、必要に応じて、AMIの基礎となるイメージを随時更新できます(少なくとも、私はそれを理解しています)。

https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_InstanceStoreBacked_WinAMI.html?icmpid=docs_ec2_console


参考までに...「インスタンスストアでバックアップできるWindows AMIはWindows Server 2003のみです。インスタンスストアでバックアップされたインスタンスには、以降のバージョンのWindows Serverに必要な空きディスク領域がありません。」
リッチC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.