コンソール アプリと、場合によっては Windows サービス アプリを AWS にデプロイする最善の方法を検討しています。私が CloudFormation について読んだことはすべて、それが進むべき道のように思えますが、私が目にするすべての例は Web アプリケーション用です。Web以外のアプリにCloudFormationを使用できるかどうか知っている人はいますか? もしそうなら、それがどのように行われるかを示すテンプレートの例を知っている人はいますか?
3 に答える
最近、同様の問題がありました。私は実際に、複数の子パッケージとそれらをインストールする runCommand を含むラッパー MSDeploy パッケージをインストールしようとしていました。
私が発見したのは、CloudFormation に渡された MSDeploy パッケージ自体が iisApp パッケージでない限り、AWSDeploy は失敗するということです。調査の結果、AWSDeploy が -setParam:"IIS Web Application Name"="value set in config" を指定して MSDeploy スクリプトを実行し、これが失敗した理由であることが判明しました。
このエラーを回避し、AWSDeploy と CloudFormation を使用して非ウェブサイトを正常にインストールするには、このパラメーターを含む MSDeploy パッケージにパラメーター ファイルをパックするだけです。
これがサンプルファイルです。
<parameters>
<parameter name="IIS Web Application Name" defaultValue="Default Web Site/" tags="isIisApp" />
</parameters>
その後、次のようにファイルを渡すように、マニフェストまたは contentPath を使用して MSDeploy パッケージを作成できます。
msdeploy -verb:sync -source:contentPath=C:\ConsoleApp\ -dest:package=deploy.zip -declareParamFile=parameters.xml
これを CloudFormation テンプレートで正常に使用できます。サイトを実行していない場合は、インスタンスのヘルス モニタリングを無効にすることを忘れないでください。
はい、あらゆる種類のアプリに CloudFormation を使用できます。任意の AMI に基づいてインスタンスを作成できます (Linux インスタンスを使用する場合は、cloud-init を使用してソフトウェアをインストールし、起動時に実行します)。
また、ソフトウェアがプリインストールされた独自の AMI を簡単に作成し、CloudFormation を使用してその AMI に基づいてインスタンスを起動することもできます。
CloudFormation に固有の Web アプリは特にありません。これは、一連の AWS リソースを説明する方法にすぎません。
Windows Server EC2 インスタンスを使用しないのはなぜですか? CloudFormation はクラウド リソースを管理するための手段にすぎませんが、古き良き EC2 インスタンス (利用可能なリソースの 1 つ) を引き続き使用しています。
1 つのインスタンスで、コンソール アプリと Windows サービスの両方をデプロイできます。
更新: この記事の情報を使用して、現在のアカウントのリソースから CloudFormation テンプレートを生成できます。このようにして、手動で設定してからテンプレートを生成できます。
お役に立てれば