1

"AWS에 게시"기능을 사용하여 .NET SDK를 통해 EC2 인스턴스에 웹 응용 프로그램을 업로드하려고합니다. 내 다른 웹 응용 프로그램의 경우 완벽하게 작동했습니다. 볼 수있는 두 가지 유일한 차이점은이 웹 응용 프로그램이 이미 라이브로 연결된 RDS 인스턴스에 대한 연결 문자열을 가지고 있다는 것입니다.Visual Studio 단일 인스턴스 배포 오류

게시가 완료되면 인스턴스가 실행되고 정상적으로 실행되고있는 것처럼 보입니다. 약 10 분 이내에 인스턴스가 롤백되고 종료됩니다. 종료시 실패 확인란의 선택을 취소하면 인스턴스가 종료되지 않지만 내 Default.aspx 페이지에 액세스 할 수 없습니다. 로그에서 유용한 정보를 찾을 수 없었습니다. 나는 그것이 연결 문자열과 첨부 된 볼륨과 관련이 있어야한다고 생각하고 있습니다.

인스턴스를 시작하는 데 사용하는 RDS 인스턴스에 내 보안 그룹을 추가했지만 여전히 동일한 오류를 반환합니다.

정보를 게시 :

인스턴스 크기 : 마이크로
SDK 버전 : 1.5.10
AMI : AMI-10ec6520
지역 : 미국 서부 2

오류 :

WaitCondition 시간이 초과되었습니다. 1.

스택 템플릿

{ 
    "AWSTemplateFormatVersion" : "2010-09-09", 

    "Description" : "This will launch a single EC2 instance and deploy your application to it. **WARNING** This template creates one or more Amazon EC2 instances. You will be billed for the AWS resources used if you create a stack from this template.", 

"Parameters" : { 
"InstanceType" : { 
    "Type" : "String", 
    "Default" : "t1.micro", 
    "Description" : "EC2 instance type." 
}, 
"KeyPair" : { 
    "Type" : "String", 
    "Description" : "EC2 Key Pair." 
}, 
"SecurityGroup" : { 
    "Type" : "String", 
    "Description" : "EC2 Security Group" 
}, 
"BucketName" : { 
    "Type" : "String", 
    "Description" : "[Hidden]S3 Bucket for deployment." 
}, 
"ConfigFile" : { 
    "Type" : "String", 
    "Description" : "[Hidden]Deployment Configuration File." 
}, 
"AmazonMachineImage" : { 
    "Type" : "String", 
    "Default" : "ami-10ec6520", 
    "Description" : "AMI to launch." 
}, 
"UserData" : { 
    "Type" : "String", 
    "Description" : "[Hidden]Base64-Encoded user data." 
} 
    }, 

    "Resources" : { 

"DeployedApplicationWaitHandle" : { 
    "Type" : "AWS::CloudFormation::WaitConditionHandle",   
    "Properties" : { 
    } 
}, 

"DeployedApplicationWaitCondition" : { 
    "Type" : "AWS::CloudFormation::WaitCondition", 
    "DependsOn" : "Ec2Instance", 
    "Properties" : { 
     "Handle" : { "Ref" : "DeployedApplicationWaitHandle" }, 
     "Timeout" : "900" 
    } 
}, 

"Ec2Instance" : { 
    "Type" : "AWS::EC2::Instance",  
    "Properties" : { 
     "ImageId" : { "Ref" : "AmazonMachineImage" }, 
     "KeyName" : { "Ref" : "KeyPair" }, 
     "InstanceType" : { "Ref" : "InstanceType" }, 
     "SecurityGroups" : [{ "Ref" : "SecurityGroup" }], 
     "UserData" : { "Fn::Base64" : {"Fn::Join" : [ "", ["[", { "Ref" :  "UserData" }, "]", "[", { "Ref" : "DeployedApplicationWaitHandle" }, "]"] ]}} 
    } 
} 
     }, 

    "Outputs" : { 
"URL" : { 
    "Description": "URL of the deployed application", 
    "Value" : { "Fn::Join" : [ "", [ "http://", { "Fn::GetAtt" : [ "Ec2Instance", "PublicDnsName" ] }]]} 
}, 
"Bucket" : { 
    "Description" : "The S3 Bucket where the Web Deploy archive and configuration file are uploaded", 
    "Value" : { "Ref" : "BucketName" } 
}, 
"ConfigFile" : { 
    "Description" : "The deployment configuration for the application", 
    "Value" : { "Ref" : "ConfigFile" } 
    }, 
"VSToolkitDeployed" : { 
    "Description" : "A flag indicating that the stack was created via VSToolkit Deploy wizard", 
    "Value" : "True" 
    } 
    } 
    } 

UPDATE 2013년 1월 18일

기대 0 조건을받은 나는 마지막 인스턴스가 그것으로 RDP 나를 보자 시작되었다. 다음은 빠진 오류입니다.

오류 :

Microsoft.Web.Deployment.DeploymentFatalException 다음 SQL 공급자가 있기 때문에 누락 된 종속성 실행할 수 없습니다. Microsoft SQL Server 관리 개체 (버전 10 이상)가 설치되어 있는지 확인하십시오. ---> System.IO.FileNotFoundException : 파일 또는 어셈블리 'Microsoft.SqlServer.Smo, 버전 = 10.0.0.0, 문화 = 중립, PublicKeyToken = 89845dcd8080cc91'또는 해당 종속성 중 하나를로드 할 수 없습니다. 시스템이 지정된 파일을 찾을 수 없습니다.

도움이 될 것입니다. 제공하는 데 도움이 될만한 정보가 더 있으면 알려주세요.

+0

"AWS에 게시"기능은 구름 형성 템플릿을 만들어야합니다. 템플릿을 게시 할 수 있습니까 (해당 템플릿에 자격 증명이 없는지 확인하십시오). – Edwin

+0

@Edwin 템플릿을 추가했습니다. – EFeit

+0

여기 보이는 곳은 없습니다. 템플릿의 UserData 노드에는 start에서 실행되는 스크립트가있는 기본 64 인코딩 된 문자열이 들어 있어야합니다. 다음 문제 해결 단계는 롤백없이 배포하고 RDP를 인스턴스에 배포하는 것입니다. "C : \ cfn \ log \ cfn-init.log"에 로그 파일이 있어야합니다. 오류를 확인하십시오. (cfn-init은 스크립트를 실행하는 프로그램입니다.) – Edwin

답변

1

답변이 Visual Studio의 내 배포 설정 내에 있음을 알 수 있습니다. 내 아마추어 실수. Project Properties => Package/Publish Web에서 "Package/Publish SQL 탭에서 구성된 모든 데이터베이스 포함"을 선택 취소해야했습니다.

데이터베이스가 이미 RDS에 구성되어 있으므로 올바른 연결을 포함해야했습니다. 문자열을 Web.config 파일에 저장하십시오.

도움을 주신 모든 분들께 감사드립니다.