3단계: 서브넷에서 인스턴스 시작

6991 단어
서브넷이 퍼블릭이고 서브넷의 해당 인스턴스가 인터넷을 통해 액세스 가능한지 테스트하려면 퍼블릭 서브넷에서 인스턴스를 시작하고 연결합니다. 먼저 인스턴스와 연결할 보안 그룹과 인스턴스에 연결할 키 페어를 생성해야 합니다. 보안 그룹에 대한 자세한 내용은 Control traffic to resources using security groups을 참조하십시오. 키 페어에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서의 Amazon EC2 key Pairs을 참조하십시오.

퍼블릭 서브넷에서 인스턴스를 시작하고 연결합니다.


  • 키 쌍을 생성하고 --query 옵션과 --output 텍스트 옵션을 사용하여 개인 키를 확장자가 .pem인 파일로 직접 파이프합니다.

  • $ aws ec2 create-key-pair --key-name MyKeyPair --query "KeyMaterial" --output text > MyKeyPair.pem
    


    이 예에서는 Amazon Linux 인스턴스를 시작합니다. Linux 또는 Mac OS X 운영 체제에서 SSH 클라이언트를 사용하여 인스턴스에 연결하는 경우 다음 명령을 사용하여 자신만 읽을 수 있도록 프라이빗 키 파일의 권한을 설정합니다.

    $ chmod 400 MyKeyPair.pem
    


  • create-security-group 명령을 사용하여 VPC에서 보안 그룹을 생성합니다.

  • $ aws ec2 create-security-group --group-name SSHAndHTTPccess --description "Security group for SSH and HTTP access" --vpc-id vpc-2f09a348
    



    {
    
     "GroupId": "sg-e1fb8c9a"
    }
    


    authorize-security-group 명령을 사용하여 어디서나 SSH 액세스를 허용하는 규칙을 추가합니다.

    $ aws ec2 authorize-security-group-ingress --group-id sg-e1fb8c9a --protocol tcp --port 22 --cidr 0.0.0.0/0
    


    어디에서나 인바운드 HTTP 트래픽을 허용하는 다른 규칙을 추가합니다.

    $ aws ec2 authorize-securty-group-ingress --group-id sg-e1fb8c9a --protocol tcp --port 80 --cidr 0.0.0.0/0
    


    Note
    If you use 0.0.0.0/0, you enable all IPv4 addresses to access your instance using SSH. This is acceptable for this short exercise, but in production, authorize only a specific IP address or range of addresses.


  • 생성한 보안 그룹과 키 쌍을 사용하여 퍼블릭 서브넷에서 인스턴스를 시작합니다. 출력에서 인스턴스의 인스턴스 ID를 기록해 둡니다. 하나 이상의 인스턴스를 시작하려면 동일한 단계를 수행해야 합니다.

  • Amazon EC2에서 인스턴스를 시작할 때 일반적인 자동 구성 작업을 수행하고 인스턴스가 시작된 후 스크립트를 실행하는 데 사용할 수 있는 인스턴스에 사용자 데이터를 전달할 수 있는 옵션이 있습니다. 두 가지 유형의 사용자 데이터를 Amazon EC2에 전달할 수 있습니다: 셸 스크립트 및 cloud-init 지시문.

    이 데이터를 일반 텍스트, 파일(명령줄 도구를 사용하여 인스턴스를 시작하는 데 유용함) 또는 base64 인코딩 텍스트(API 호출용)로 시작 마법사에 전달할 수도 있습니다. 간단한 웹 서버를 만들고 구성하는 다음 스크립트를 사용하여 셸 파일을 만듭니다.

    #!/bin/bash
    # User data for new EC2 instances
    # install httpd (Linux 2 version)
    yum update -y
    yum install -y httpd
    systemctl start httpd
    systemctl enable httpd
    echo "<h1>Hello World!</h1> <h1>This is $(hostname -f)</h1>" > /var/www/html/index.html
    


    다음 명령은 쉘 파일을 사용하여 스크립트를 지정하는 방법을 보여줍니다. file:// 접두사를 사용하여 파일을 지정해야 합니다.

    $ aws ec2 run-instances --image-id ami-03ededff12e34e59e --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-e1fb8c9a --subnet-id subnet-b46032ec --user-data file://my_script.sh
    


    Note
    In this example, the AMI is an Amazon Linux 2 AMI in the US East (N. Virginia) Region. If you're in a different Region, you'll need the AMI ID for a suitable AMI in your Region. For more information, see Finding a Linux AMI in the Amazon EC2 User Guide for Linux Instances.


  • 인스턴스에 연결하려면 인스턴스가 running 상태여야 합니다. 인스턴스가 사용자 데이터의 지시문을 시작하고 실행할 수 있도록 충분한 시간을 허용한 다음 지시문이 의도한 작업을 완료했는지 확인하십시오. 다음 명령을 사용하여 인스턴스의 상태 및 IP 주소를 설명합니다.

  • $ aws ec2 describe-instances --instance-id i-0146854b7443af453 --query "Reservations[*].Instances[*].{State:State.Name,Address:PublicIpAddress}"
    


    다음은 예제 출력입니다.

    [
       [
          {
            "State": "running",
            "Address": "52.87.168.235"
          }
       ]
    ]
    


    이 예에서는 웹 브라우저에서 공용 IP 주소를 입력합니다.

    http://52.87.168.235
    


    "Hello World"메시지와 인스턴스의 IP 주소가 표시되어야 합니다.
  • 인스턴스가 실행 중 상태이면 다음 명령을 사용하여 Linux 또는 Mac OS X 컴퓨터에서 SSH 클라이언트를 사용하여 인스턴스에 연결할 수 있습니다.

  • $ ssh -i "MyKeyPair.pem" [email protected]
    


    Windows 컴퓨터에서 연결하는 경우 다음 지침을 따르십시오. Connecting to your Linux instance from Windows using PuTTY .

    좋은 웹페이지 즐겨찾기