AWS Cloud9 는 더 이상 신규 고객이 사용할 수 없습니다. AWS Cloud9 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세히 알아보기
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에 대한 .NET 자습서 AWS Cloud9
이 자습서를 사용하면 AWS Cloud9 개발 환경에서 일부 .NET 코드를 실행할 수 있습니다.
이 자습서를 따르고이 샘플을 생성하면 AWS 계정에 요금이 부과될 수 있습니다. 여기에는 Amazon EC2 및 Amazon S3 같은 서비스에 대한 발생할 수 있는 요금이 포함됩니다. 자세한 내용은 Amazon EC2 요금
주제
사전 조건
이 샘플을 사용하기 전에 설정이 다음 요구 사항을 충족하는지 확인하세요.
-
기존 AWS Cloud9 EC2 개발 환경이 있어야 합니다. 이 샘플에서는 Amazon Linux 또는 Ubuntu 서버를 실행 중인 Amazon EC2 인스턴스에 연결된 EC2 환경이 이미 있다고 가정합니다. 다른 환경 또는 운영 시스템이라면 이 샘플 지침을 관련 도구를 설치하는 데에 적용해야 합니다. 자세한 내용은 에서 환경 생성 AWS Cloud9 단원을 참조하십시오.
-
기존 환경의 AWS Cloud9 IDE가 이미 열려 있습니다. 환경을 열면 웹 브라우저에서 해당 환경의 IDE가 AWS Cloud9 열립니다. 자세한 내용은 에서 환경 열기 AWS Cloud9 단원을 참조하십시오.
1단계: 필수 도구 설치
이 단계에서는 이 샘플을 실행하는 데 필요한 .NET SDK를 환경에 설치합니다.
-
.NET SDK의 최신 버전이 환경에 이미 설치되었는지 여부를 확인합니다. 이렇게 하려면 AWS Cloud9 IDE의 터미널 세션에서
--version옵션을 사용하여 .NET Core 명령줄 인터페이스(CLI)를 실행합니다.dotnet --version.NET 명령줄 도구 버전이 표시되고 버전이 2.0 이상이면 3단계: .NET 콘솔 애플리케이션 프로젝트 만들기 단원으로 이동합니다. 버전이 2.0 미만이거나
bash: dotnet: command not found와 같은 오류가 표시되면 계속해서 .NET SDK를 설치합니다. -
Amazon Linux의 경우 AWS Cloud9 IDE의 터미널 세션에서 다음 명령을 실행하여 최신 보안 업데이트 및 버그 수정이 설치되었는지 확인하고 .NET SDK에 필요한
libunwind패키지를 설치합니다. (터미널 세션을 새로 시작하려면 메뉴 모음에서 Window(창), New Terminal(새 터미널)을 선택합니다.)sudo yum -y update sudo yum -y install libunwindUbuntu Server의 경우 AWS Cloud9 IDE의 터미널 세션에서 다음 명령을 실행하여 최신 보안 업데이트 및 버그 수정이 설치되도록 합니다. (터미널 세션을 새로 시작하려면 메뉴 모음에서 Window(창), New Terminal(새 터미널)을 선택합니다.)
sudo apt -y update -
다음 명령을 실행하여 환경으로 .NET SDK 설치 프로그램을 다운로드합니다.
wget https://dot.net/v1/dotnet-install.sh -
다음 명령을 실행하여 현재 사용자가 설치 프로그램 스크립트 실행 파일을 생성합니다.
sudo chmod u=rx dotnet-install.sh -
다음 명령을 실행하여 .NET SDK를 다운로드해 설치하는 설치 프로그램 스크립트를 실행합니다.
./dotnet-install.sh -c Current -
PATH에 .NET SDK를 추가합니다. 이렇게 하려면 환경에 대한 셸 프로필(예:.bashrc파일)에서 다음과 같이 환경에 대한PATH변수에$HOME/.dotnet하위 디렉터리를 추가합니다.-
vi명령을 사용하여 편집을 위해.bashrc파일을 엽니다.vi ~/.bashrc -
Amazon Linux의 경우 아래쪽 화살표 또는
j키를 사용하여export PATH로 시작하는 행으로 이동합니다.Ubuntu Server의 경우
G를 입력하여 파일의 마지막 행으로 이동합니다. -
오른쪽 화살표 또는
$키를 사용하여 해당 행의 끝으로 이동합니다. -
i키를 눌러서 삽입 모드로 전환합니다.-- INSERT ---가 표시 화면의 끝에 나타납니다. -
Amazon Linux의 경우
:$HOME/.dotnet을 입력하여$HOME/.dotnet하위 디렉터리를PATH변수에 추가합니다. 반드시 콜론 문자(:)를 포함해야 합니다. 이제 이 행은 다음과 같습니다.export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.dotnetUbuntu Server의 경우 오른쪽 화살표 키를 누르고
Enter키를 두 번 누른 다음 파일 끝에 직접 다음 행을 입력합니다.export PATH=$HOME/.dotnet:$PATH -
파일을 저장합니다. 이렇게 하려면
Esc키를 누릅니다. 표시 화면 끝에서-- INSERT ---가 사라집니다. (파일에 쓰고 나서 파일을 종료하기 위해:wq를 입력하고 나서Enter를 누릅니다.
-
-
.bashrc파일을 소싱하여 .NET SDK를 로드합니다.. ~/.bashrc -
--help옵션을 지정한 상태로 .NET CLI를 실행하여 .NET SDK가 로드되었는지 확인합니다.dotnet --help성공하면 추가 사용법 정보와 함께 .NET SDK 버전 번호가 표시됩니다.
-
환경에서 .NET SDK 설치 프로그램 스크립트를 더 이상 유지하지 않으려면 다음과 같이 해당 파일을 삭제할 수 있습니다.
rm dotnet-install.sh
2단계(선택 사항): Lambda 함수에 대한 .NET CLI 확장 설치
이 자습서에서는 필수는 아니지만 Amazon.Lambda.Tools 패키지를 설치하는 경우 .NET CLI를 사용하여 AWS Lambda 함수와 AWS Serverless Application Model 애플리케이션을 배포할 수 있습니다.
-
이 패키지를 설치하려면 다음 명령을 실행합니다.
dotnet tool install -g Amazon.Lambda.Tools -
이제 설치된 Lambda 도구를 가리키도록
PATH및DOTNET_ROOT환경 변수를 설정합니다..bashrc파일에서export PATH섹션을 찾아 다음과 같이 표시되도록 편집합니다(이 파일 편집에 대한 자세한 내용은 1단계 참조).export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.dotnet:$HOME/.dotnet/tools export DOTNET_ROOT=$HOME/.dotnet
3단계: .NET 콘솔 애플리케이션 프로젝트 만들기
이 단계에서는 .NET을 사용하여 hello 프로젝트를 생성합니다. 이 프로젝트에는 IDE의 터미널에서 단순 애플리케이션을 실행하기 위해 .NET에 필요한 모든 파일이 포함되어 있습니다. 애플리케이션의 코드는 C#으로 작성되었습니다.
.NET 콘솔 애플리케이션 프로젝트를 생성합니다. 이렇게 하려면 사용할 콘솔 애플리케이션 프로젝트 템플릿 유형 및 프로그래밍 언어(이 샘플에서는 C#)를 지정하여 new 명령과 함께 .NET CLI를 실행합니다.
-n 옵션은 프로젝트가 hello라는 새 디렉터리로 출력됨을 나타냅니다. 그런 다음 해당 디렉터리로 이동합니다.
dotnet new console -lang C# -n hellocd hello
이전 명령은 여러 파일을 포함하는 obj 하위 디렉터리와 추가 독립 실행형 파일을 hello 디렉터리에 추가합니다. 다음 키 파일 두 개에 유의해야 합니다.
-
hello/hello.csproj파일에는 콘솔 애플리케이션 프로젝트에 대한 정보가 들어 있습니다. -
hello/Program.cs파일에는 실행할 애플리케이션의 코드가 들어 있습니다.
4단계: 코드 추가
이 단계에서는 애플리케이션에 코드를 추가합니다.
AWS Cloud9 IDE의 환경 창에서 hello/Program.cs 파일을 엽니다.
편집기에서 이 파일의 현재 내용을 다음 코드로 바꾼 다음 Program.cs 파일을 저장합니다.
using System; namespace hello { class Program { static void Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Please provide 2 numbers"); return; } Console.WriteLine("Hello, World!"); Console.WriteLine("The sum of 2 and 3 is 5."); int sum = Int32.Parse(args[0]) + Int32.Parse(args[1]); Console.WriteLine("The sum of {0} and {1} is {2}.", args[0], args[1], sum); } } }
5단계: 코드 빌드 및 실행
이 단계에서는 프로젝트 및 관련 종속 항목을 바이너리 파일 세트(실행 가능한 애플리케이션 파일 포함)로 빌드합니다. 그런 다음 애플리케이션을 실행합니다.
-
IDE에서 다음과 같이 .NET용 빌더를 생성합니다.
-
메뉴 모음에서 Run, Build System, New Build System(실행, 빌드 시스템, 새 빌드 시스템)을 선택합니다.
-
My Builder.build 탭에서 탭의 내용을 다음 코드로 바꿉니다.
{ "cmd" : ["dotnet", "build"], "info" : "Building..." } -
File, Save As(파일, 다른 이름으로 저장)를 선택합니다.
-
Filename(파일 이름)에
.NET.build를 입력합니다. -
Folder(폴더)에
/.c9/builders를 입력합니다. -
저장(Save)을 선택합니다.
-
-
편집기에
Program.cs파일의 내용이 표시된 상태로 메뉴 모음에서 실행, 빌드 시스템, .NET을 선택합니다. 그런 다음 Run, Build(실행, 빌드)를 선택합니다.이 빌더는
bin하위 디렉터리를 추가하고Debug하위 디렉터리를hello/obj하위 디렉터리에 추가합니다. 다음 키 파일 세 개에 유의하십시오.-
hello/bin/Debug/netcoreapp3.1/hello.dll파일은 실행 가능한 애플리케이션 파일입니다. -
hello/bin/Debug/netcoreapp3.1/hello.deps.json파일은 애플리케이션의 종속 항목을 나열합니다. -
hello/bin/Debug/netcoreapp3.1/hello.runtimeconfig.json파일은 애플리케이션의 버전과 공유 실행 시간을 지정합니다.
참고
폴더 이름
netcoreapp3.1은 이 예에 사용된 .NET SDK의 버전을 나타냅니다. 설치한 버전에 따라 폴더 이름에 다른 번호가 표시될 수 있습니다. -
-
다음과 같이 .NET용 실행기를 생성합니다.
-
메뉴 모음에서 Run, Run With, New Runner(실행, 실행 도구, 새 실행기)를 선택합니다.
-
My Runner.run 탭에서 탭의 내용을 다음 코드로 바꿉니다.
{ "cmd" : ["dotnet", "run", "$args"], "working_dir": "$file_path", "info" : "Running..." } -
File, Save As(파일, 다른 이름으로 저장)를 선택합니다.
-
Filename(파일 이름)에
.NET.run를 입력합니다. -
Folder(폴더)에
/.c9/runners를 입력합니다. -
저장(Save)을 선택합니다.
-
-
다음과 같이 추가할 두 정수(예:
5와9)를 지정하여 애플리케이션을 실행합니다.-
편집기에
Program.cs파일의 내용이 표시된 상태로, Run(실행), Run Configurations(실행 구성), New Run Configuration(새로운 실행 구성)을 선택합니다. -
[새로 만들기] - 유휴 탭에서 실행기: 자동을 선택한 다음 .NET을 선택합니다.
-
Command(명령) 상자에
hello 5 9를 입력합니다. -
Run(실행)을 선택합니다.
기본적으로 이 실행기는 .NET에
hello/bin/Debug/netcoreapp3.1디렉터리의hello.dll파일을 실행하도록 지시합니다.출력을 다음과 비교합니다.
Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.
-
6단계:를 사용하는 .NET 콘솔 애플리케이션 프로젝트 생성 및 설정 AWS SDK for .NET
이 샘플을 개선하여 AWS SDK for .NET 를 사용하여 Amazon S3 버킷을 생성하고, 사용 가능한 버킷을 나열한 다음, 방금 생성한 버킷을 삭제할 수 있습니다.
이 새 프로젝트에서는 AWS SDK for .NET에 대한 참조를 추가합니다. 는 .NET 코드에서 Amazon S3와 같은 AWS 서비스와 상호 작용하는 편리한 방법을 AWS SDK for .NET 제공합니다. 그런 다음 환경에서 AWS 자격 증명 관리를 설정합니다. 는 AWS 서비스와 상호 작용하기 위해 이러한 자격 증명이 AWS SDK for .NET 필요합니다.
프로젝트를 만들려면
-
.NET 콘솔 애플리케이션 프로젝트를 생성합니다. 이렇게 하려면 사용할 콘솔 애플리케이션 프로젝트 템플릿 유형 및 프로그래밍 언어를 지정하여
new명령과 함께 .NET CLI를 실행합니다.-n옵션은 프로젝트가s3라는 새 디렉터리로 출력됨을 나타냅니다. 그런 다음 해당 디렉터리로 이동합니다.dotnet new console -lang C# -n s3cd s3 -
AWS SDK for .NET에 Amazon S3 패키지에 대한 프로젝트 참조를 추가합니다. 이렇게 하려면, NuGet의 Amazon S3 패키지 이름을 지정하여
add package명령으로 .NET CLI를 실행합니다. (NuGet은 .NET용 패키지의 생성, 호스팅 및 사용 방식을 정의하고 이러한 각 역할에 사용할 도구를 제공합니다.)dotnet add package AWSSDK.S3Amazon S3 패키지에 대한 프로젝트 참조를 추가하면 NuGet에서 AWS SDK for .NET의 나머지에 대한 프로젝트 참조도 추가합니다.
참고
NuGet의 기타 AWS 관련 패키지 이름 및 버전은 NuGet 웹 사이트에서 aws-sdk로 태그가 지정된 NuGet 패키지를
참조하세요. NuGet
AWS 자격 증명 관리를 설정하려면
를 사용하여 AWS 서비스를 호출 AWS SDK for .NET 할 때마다 호출과 함께 자격 AWS 증명 세트를 제공해야 합니다. 이러한 자격 증명은에 해당 호출을 수행할 수 AWS SDK for .NET 있는 적절한 권한이 있는지 여부를 결정합니다. 자격 증명으로 적절한 권한이 확인되지 않는 경우 호출이 실패합니다.
환경에 자격 증명을 저장하려면 AWS 서비스 의 환경에서 호출 AWS Cloud9의 지침을 따른 다음 이 주제로 돌아옵니다.
자세한 내용은 AWS SDK for .NET 개발자 안내서의 AWS 자격 증명 구성을 참조하세요.
7단계: AWS SDK 코드 추가
이 단계에서는 Amazon S3와 상호 작용하는 코드를 추가하여 버킷을 생성하고 생성된 버킷을 삭제한 다음 사용 가능한 버킷의 목록을 나열합니다.
AWS Cloud9 IDE의 환경 창에서 s3/Program.cs 파일을 엽니다. 편집기에서 이 파일의 현재 내용을 다음 코드로 바꾼 다음 Program.cs 파일을 저장합니다.
using Amazon; using Amazon.S3; using Amazon.S3.Model; using Amazon.S3.Util; using System; using System.Threading.Tasks; namespace s3 { class Program { async static Task Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Usage: <the bucket name> <the AWS Region to use>"); Console.WriteLine("Example: my-test-bucket us-east-2"); return; } if (args[1] != "us-east-2") { Console.WriteLine("Cannot continue. The only supported AWS Region ID is " + "'us-east-2'."); return; } var bucketRegion = RegionEndpoint.USEast2; // Note: You could add more valid AWS Regions above as needed. using (var s3Client = new AmazonS3Client(bucketRegion)) { var bucketName = args[0]; // Create the bucket. try { if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName)) { Console.WriteLine("Cannot continue. Cannot create bucket. \n" + "A bucket named '{0}' already exists.", bucketName); return; } else { Console.WriteLine("\nCreating the bucket named '{0}'...", bucketName); await s3Client.PutBucketAsync(bucketName); } } catch (AmazonS3Exception e) { Console.WriteLine("Cannot continue. {0}", e.Message); } catch (Exception e) { Console.WriteLine("Cannot continue. {0}", e.Message); } // Confirm that the bucket was created. if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName)) { Console.WriteLine("Created the bucket named '{0}'.", bucketName); } else { Console.WriteLine("Did not create the bucket named '{0}'.", bucketName); } // Delete the bucket. Console.WriteLine("\nDeleting the bucket named '{0}'...", bucketName); await s3Client.DeleteBucketAsync(bucketName); // Confirm that the bucket was deleted. if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName)) { Console.WriteLine("Did not delete the bucket named '{0}'.", bucketName); } else { Console.WriteLine("Deleted the bucket named '{0}'.", bucketName); }; // List current buckets. Console.WriteLine("\nMy buckets now are:"); var response = await s3Client.ListBucketsAsync(); foreach (var bucket in response.Buckets) { Console.WriteLine(bucket.BucketName); } } } } }
8단계: AWS SDK 코드 빌드 및 실행
이 단계에서는 프로젝트 및 관련 종속 항목을 바이너리 파일 세트(실행 가능한 애플리케이션 파일 포함)로 빌드합니다. 그런 다음 애플리케이션을 실행합니다.
-
프로젝트를 빌드합니다. 이렇게 하려면 편집기에
s3/Program.cs파일의 내용이 표시된 상태로 메뉴 모음에서 Run, Build(실행, 빌드)를 선택합니다. -
다음과 같이 생성할 Amazon S3 버킷 이름과 및 버킷을 생성할 AWS 리전의 ID를 지정하여 애플리케이션(예:
my-test-bucket및us-east-2)을 실행합니다.-
편집기에
s3/Program.cs파일의 내용이 여전히 표시된 상태로, Run(실행), Run Configurations(실행 구성), New Run Configuration(새로운 실행 구성)을 선택합니다. -
[새로 만들기] - 유휴 탭에서 실행기: 자동을 선택한 다음 .NET을 선택합니다.
-
명령 상자에 애플리케이션의 이름, 생성할 Amazon S3 버킷의 이름, 버킷을 생성할 AWS 리전의 ID(예:
s3 my-test-bucket us-east-2)를 입력합니다. -
Run(실행)을 선택합니다.
기본적으로 이 실행기는 .NET에
s3/bin/Debug/netcoreapp3.1디렉터리의s3.dll파일을 실행하도록 지시합니다.결과를 다음 출력과 비교합니다.
Creating a new bucket named 'my-test-bucket'... Created the bucket named 'my-test-bucket'. Deleting the bucket named 'my-test-bucket'... Deleted the bucket named 'my-test-bucket'. My buckets now are:
-
9단계: 정리
이 샘플 사용을 완료한 후 AWS 계정에 요금이 계속 부과되지 않도록 하려면 환경을 삭제해야 합니다. 지침은 에서 환경 삭제 AWS Cloud9 단원을 참조하세요.