AWS Cloud9용 .NET 자습서 - AWS Cloud9

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Cloud9용 .NET 자습서

이 자습서를 사용하면 AWS Cloud9 개발 환경에서 .NET 코드를 실행할 수 있습니다.

이 자습서를 따르고 이 샘플을 생성하면 AWS 계정에 요금이 발생할 수 있습니다. 여기에는 Amazon EC2 및 Amazon S3 같은 서비스에 대한 발생할 수 있는 요금이 포함됩니다. 자세한 내용은 Amazon EC2 요금Amazon S3 요금을 참조하세요.

필수 조건

이 샘플을 사용하기 전에 설정이 다음 요구 사항을 충족하는지 확인하세요.

  • 기존 AWS Cloud9 EC2 개발 환경이 있어야 합니다. 이 샘플에서는 Amazon Linux 또는 Ubuntu 서버를 실행 중인 Amazon EC2 인스턴스에 연결된 EC2 환경이 이미 있다고 가정합니다. 다른 환경 또는 운영 시스템이라면 이 샘플 지침을 관련 도구를 설치하는 데에 적용해야 합니다. 자세한 내용은 AWS Cloud9에서 환경 생성 섹션을 참조하세요.

  • 기존 환경에 대한 AWS Cloud9 IDE가 이미 열려 있습니다. 환경을 열 때 AWS Cloud9은 웹 브라우저에서 환경을 위한 IDE를 엽니다. 자세한 내용은 AWS Cloud9에서 환경 열기 섹션을 참조하세요.

1단계: 필수 도구 설치

이 단계에서는 이 샘플을 실행하는 데 필요한 .NET SDK를 환경에 설치합니다.

  1. .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를 설치합니다.

  2. Amazon Linux의 경우 AWS Cloud9 IDE의 터미널 세션에서 다음 명령을 실행하여 최신 보안 업데이트 및 버그 수정 사항이 설치되었는지 확인하고 .NET SDK에 필요한 libunwind 패키지를 설치합니다. (터미널 세션을 새로 시작하려면 메뉴 모음에서 Window(창), New Terminal(새 터미널)을 선택합니다.)

    sudo yum -y update sudo yum -y install libunwind

    Ubuntu Server의 경우 AWS Cloud9 IDE의 터미널 세션에서 다음 명령을 실행하면 최신 보안 업데이트 및 버그 수정 사항이 설치되어 있는지 확인할 수 있습니다. (터미널 세션을 새로 시작하려면 메뉴 모음에서 Window(창), New Terminal(새 터미널)을 선택합니다.)

    sudo apt -y update
  3. 다음 명령을 실행하여 환경으로 .NET SDK 설치 프로그램을 다운로드합니다.

    wget https://dot.net/v1/dotnet-install.sh
  4. 다음 명령을 실행하여 현재 사용자가 설치 프로그램 스크립트 실행 파일을 생성합니다.

    sudo chmod u=rx dotnet-install.sh
  5. 다음 명령을 실행하여 .NET SDK를 다운로드해 설치하는 설치 프로그램 스크립트를 실행합니다.

    ./dotnet-install.sh -c Current
  6. PATH에 .NET SDK를 추가합니다. 이렇게 하려면 환경에 대한 셸 프로필(예: .bashrc 파일)에서 다음과 같이 환경에 대한 PATH 변수에 $HOME/.dotnet 하위 디렉터리를 추가합니다.

    1. vi 명령을 사용하여 편집을 위해 .bashrc 파일을 엽니다.

      vi ~/.bashrc
    2. Amazon Linux의 경우 아래쪽 화살표 또는 j 키를 사용하여 export PATH로 시작하는 행으로 이동합니다.

      Ubuntu Server의 경우 G를 입력하여 파일의 마지막 행으로 이동합니다.

    3. 오른쪽 화살표 또는 $ 키를 사용하여 해당 행의 끝으로 이동합니다.

    4. i 키를 눌러서 삽입 모드로 전환합니다.-- INSERT ---가 표시 화면의 끝에 나타납니다.

    5. Amazon Linux의 경우 :$HOME/.dotnet을 입력하여 $HOME/.dotnet 하위 디렉터리를 PATH 변수에 추가합니다. 반드시 콜론 문자(:)를 포함해야 합니다. 이제 이 행은 다음과 같습니다.

      export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.dotnet

      Ubuntu Server의 경우 오른쪽 화살표 키를 누르고 Enter 키를 두 번 누른 다음 파일 끝에 직접 다음 행을 입력합니다.

      export PATH=$HOME/.dotnet:$PATH
    6. 파일을 저장합니다. 이렇게 하려면 Esc 키를 누릅니다. 표시 화면 끝에서 -- INSERT ---가 사라집니다. (파일에 쓰고 나서 파일을 종료하기 위해 :wq를 입력하고 나서 Enter를 누릅니다.

  7. .bashrc 파일을 소싱하여 .NET SDK를 로드합니다.

    . ~/.bashrc
  8. --help 옵션을 지정한 상태로 .NET CLI를 실행하여 .NET SDK가 로드되었는지 확인합니다.

    dotnet --help

    성공하면 추가 사용법 정보와 함께 .NET SDK 버전 번호가 표시됩니다.

  9. 환경에서 .NET SDK 설치 프로그램 스크립트를 더 이상 유지하지 않으려면 다음과 같이 해당 파일을 삭제할 수 있습니다.

    rm dotnet-install.sh

2단계(선택 사항): Lambda 함수에 대한 .NET CLI 확장 설치

이 자습서에는 필요하지 않지만, Amazon.Lambda.Tools 패키지도 설치하는 경우 .NET CLI를 사용하여 AWS Lambda 함수 및 AWS Serverless Application Model 애플리케이션을 배포합니다.

  1. 이 패키지를 설치하려면 다음 명령을 실행합니다.

    dotnet tool install -g Amazon.Lambda.Tools
  2. 이제 설치된 Lambda 도구를 가리키도록 PATHDOTNET_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 hello cd hello

이전 명령은 여러 파일을 포함하는 obj 하위 디렉터리와 추가 독립 실행형 파일을 hello 디렉터리에 추가합니다. 다음 키 파일 두 개에 유의해야 합니다.

  • hello/hello.csproj 파일에는 콘솔 애플리케이션 프로젝트에 대한 정보가 들어 있습니다.

  • hello/Program.cs 파일에는 실행할 애플리케이션의 코드가 들어 있습니다.

4단계: 코드 추가

이 단계에서는 애플리케이션에 코드를 추가합니다.

AWS Cloud9 IDE의 [환경(Environment)] 창에서 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단계: 코드 빌드 및 실행

이 단계에서는 프로젝트 및 관련 종속 항목을 바이너리 파일 세트(실행 가능한 애플리케이션 파일 포함)로 빌드합니다. 그런 다음 애플리케이션을 실행합니다.

  1. IDE에서 다음과 같이 .NET용 빌더를 생성합니다.

    1. 메뉴 모음에서 Run, Build System, New Build System(실행, 빌드 시스템, 새 빌드 시스템)을 선택합니다.

    2. My Builder.build 탭에서 탭의 내용을 다음 코드로 바꿉니다.

      { "cmd" : ["dotnet", "build"], "info" : "Building..." }
    3. File, Save As(파일, 다른 이름으로 저장)를 선택합니다.

    4. Filename(파일 이름).NET.build를 입력합니다.

    5. Folder(폴더)/.c9/builders를 입력합니다.

    6. Save를 선택합니다.

  2. 편집기에 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의 버전을 나타냅니다. 설치한 버전에 따라 폴더 이름에 다른 번호가 표시될 수 있습니다.

  3. 다음과 같이 .NET용 실행기를 생성합니다.

    1. 메뉴 모음에서 Run, Run With, New Runner(실행, 실행 도구, 새 실행기)를 선택합니다.

    2. My Runner.run 탭에서 탭의 내용을 다음 코드로 바꿉니다.

      { "cmd" : ["dotnet", "run", "$args"], "working_dir": "$file_path", "info" : "Running..." }
    3. File, Save As(파일, 다른 이름으로 저장)를 선택합니다.

    4. Filename(파일 이름).NET.run를 입력합니다.

    5. Folder(폴더)/.c9/runners를 입력합니다.

    6. Save를 선택합니다.

  4. 다음과 같이 추가할 두 정수(예: 59)를 지정하여 애플리케이션을 실행합니다.

    1. 편집기에 Program.cs 파일의 내용이 표시된 상태로, Run(실행), Run Configurations(실행 구성), New Run Configuration(새로운 실행 구성)을 선택합니다.

    2. [새로 만들기] - 유휴 탭에서 실행기: 자동을 선택한 다음 .NET을 선택합니다.

    3. Command(명령) 상자에 hello 5 9를 입력합니다.

    4. 실행을 선택합니다.

      기본적으로 이 실행기는 .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단계: AWS SDK for .NET을 사용하는 .NET 콘솔 애플리케이션 프로젝트 생성 및 설정

이 샘플을 응용해 AWS SDK for .NET을 사용하여 Amazon S3 버킷을 생성하고 사용 가능한 버킷을 나열한 다음 방금 생성한 버킷을 삭제합니다.

이 새 프로젝트에서는 AWS SDK for .NET에 대한 참조를 추가합니다. AWS SDK for .NET은 .NET 코드에서 Amazon S3와 같은 AWS 서비스와 상호 작용할 수 있는 편리한 방법을 제공합니다. 그런 다음 환경에서 AWS 자격 증명 관리를 설정할 수 있습니다. AWS SDK for .NET는 AWS 서비스와 상호 작용하기 위해서 이런 자격 증명이 필요합니다.

프로젝트를 만들려면

  1. .NET 콘솔 애플리케이션 프로젝트를 생성합니다. 이렇게 하려면 사용할 콘솔 애플리케이션 프로젝트 템플릿 유형 및 프로그래밍 언어를 지정하여 new 명령과 함께 .NET CLI를 실행합니다.

    -n 옵션은 프로젝트가 s3라는 새 디렉터리로 출력됨을 나타냅니다. 그런 다음 해당 디렉터리로 이동합니다.

    dotnet new console -lang C# -n s3 cd s3
  2. AWS SDK for .NET에 Amazon S3 패키지에 대한 프로젝트 참조를 추가합니다. 이렇게 하려면, NuGet의 Amazon S3 패키지 이름을 지정하여 add package 명령으로 .NET CLI를 실행합니다. (NuGet은 .NET용 패키지의 생성, 호스팅 및 사용 방식을 정의하고 이러한 각 역할에 사용할 도구를 제공합니다.)

    dotnet add package AWSSDK.S3

    Amazon S3 패키지에 대한 프로젝트 참조를 추가하면 NuGet에서 AWS SDK for .NET의 나머지에 대한 프로젝트 참조도 추가합니다.

    참고

    NuGet의 다른 AWS 관련 패키지의 이름 및 버전의 경우, NuGet 웹 사이트의 NuGet packages tagged with aws-sdk를 참조하십시오.

AWS 자격 증명 관리를 설정하는 방법

AWS SDK for .NET를 사용하여 AWS 서비스를 호출할 때마다 호출과 함께 AWS 자격 증명 세트를 제공합니다. 이러한 자격 증명은 AWS SDK for .NET가 해당 호출을 할 수 있는 적절한 권한이 있는지 여부를 결정합니다. 자격 증명으로 적절한 권한이 확인되지 않는 경우 호출이 실패합니다.

환경에 자격 증명을 저장하려면 AWS Cloud9의 환경에서 AWS 서비스 호출의 지침을 따른 다음 이 주제로 돌아옵니다.

자세한 내용은 AWS SDK for .NET 개발자 가이드에서 AWS 자격 증명 구성을 참조하세요.

7단계: AWS SDK 코드 추가

이 단계에서는 Amazon S3와 상호 작용하는 코드를 추가하여 버킷을 생성하고 생성된 버킷을 삭제한 다음 사용 가능한 버킷의 목록을 나열합니다.

AWS Cloud9 IDE의 [환경(Environment)] 창에서 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 코드 빌드 및 실행

이 단계에서는 프로젝트 및 관련 종속 항목을 바이너리 파일 세트(실행 가능한 애플리케이션 파일 포함)로 빌드합니다. 그런 다음 애플리케이션을 실행합니다.

  1. 프로젝트를 빌드합니다. 이렇게 하려면 편집기에 s3/Program.cs파일의 내용이 표시된 상태로 메뉴 모음에서 Run, Build(실행, 빌드)를 선택합니다.

  2. 다음과 같이 생성할 Amazon S3 버킷 이름과 및 버킷을 생성할 AWS 리전의 ID를 지정하여 애플리케이션(예: my-test-bucketus-east-2)을 실행합니다.

    1. 편집기에 s3/Program.cs 파일의 내용이 여전히 표시된 상태로, Run(실행), Run Configurations(실행 구성), New Run Configuration(새로운 실행 구성)을 선택합니다.

    2. [새로 만들기] - 유휴 탭에서 실행기: 자동을 선택한 다음 .NET을 선택합니다.

    3. [명령(Command)] 상자에서 애플리케이션의 이름, 생성할 Amazon S3 버킷의 이름, 그리고 버킷을 생성할 AWS 리전의 ID를 입력합니다(예: s3 my-test-bucket us-east-2).

    4. 실행을 선택합니다.

      기본적으로 이 실행기는 .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에서 환경 삭제 단원을 참조하세요.