AWS EC2 にデプロイされるアプリケーションを開発する必要があります。毎晩のビルドの一環として、コードをローカルで単体テストしてから AWS インスタンスにデプロイし、インターネット経由で機能テストを実行したいと考えています。
理想的な世界では、AWS SDK を使用して適切な AMI を選択し、インスタンスを開始し、SSH でログインし、環境をセットアップし、プログラムを FTP で転送し、ビンゴ! ただし、HTTP プロキシの背後にあります。SSH や FTP を使用できないため、3 つの基本的なオプションを考えました。
1: インスタンスが環境をセットアップし、開始時に (おそらく AWS S3 バケットから) プログラムをダウンロードして実行するように、userData を RunInstanceRequest に追加してみてください。Java では、これは次のようになります。
RunInstancesRequest runInstancesRequest = new RunInstancesRequest()
.withInstanceType(myType)
.withImageId(id)
.withMinCount(min)
.withMaxCount(max)
.withSecurityGroupIds(mySecurityGroup)
.withKeyName(someKey)
.withUserData(myScript); //add our installation script
RunInstancesResult runInstances = ec2.runInstances(runInstancesRequest);
2: プログラムを VM にローカルにインストールし、ここで説明されているように ec2-import-instance ツールを使用して VM 全体を AWS にインポートします。
3: 飛び跳ねて、より制限の少ないネットワーク環境を要求します。
(1)については、インストールに関する問題をデバッグするのが非常に難しいため、不安を感じています。(2) デプロイするたびに VM 全体の転送と変換が必要であり、(3) 見込みがありません。
これを行う最良の方法を知っている人はいますか?
:D