Build on AWS Weekly - S1 E2 - Terraform으로 블록 깨기

Build On Weekly의 에피소드 2에 오신 것을 환영합니다! 🥳 오늘은 Terraform과 그것으로 물건을 만드는 것에 관한 것입니다. 즉, 이 에피소드에서는 일부 Terraform Magic을 사용하여 EC2에서 실행되는 Minecraft 서버를 구축했습니다.

여기 dev.to에 게시하여 쇼 노트, 링크, 소셜, 코드 및 라이브 스트림 중에 언급된 기타 사항을 여러분과 공유할 것입니다! 🚀

질문, 피드백 또는 의견이 있으면 이 게시물의 댓글에 자유롭게 남겨주세요! 😇



에피소드를 놓치더라도 걱정하지 마세요! 우리는 모든 에피소드의 녹음을 이 유튜브에 업로드할 것입니다! 좋아요와 구독 버튼을 꼭 눌러주세요! 🥹

매주 배포됨





지난 주의 뉴스, 블로그 게시물 및 흥미로운 정보를 살펴보겠습니다.

토론 링크:

2022년 7월 21일입니다. 오늘은 Infracost의 더 많은 소식이 있습니다. Blazor WebAssembly의 블로그 게시물을 확인하고 있습니다. AWS 오픈 소스 CloudScape, Google은 C++를 대체하는 실험적인 새로운 언어인 Carbon을 출시하고 ML GPU 프로그래밍을 독학합니다!

이것은 또 다른 버전이었습니다 - 매주 배포됨

토론 링크:
  • 이제 이 Infracost 플러그인을 사용하여 Visual Studio 코드에서 바로 Terraform 템플릿의 비용을 볼 수 있습니다. https://github.com/infracost/vscode-infracost
  • 일부 dotnet으로 웹 응용 프로그램을 구축하려고 합니까? Blazor WebAssembly가 아마도 당신을 위한 것일 것입니다. 우리 동료는 ASP.NET Core Blazor WebAssembly 프레임워크를 사용할 때 몇 가지 첫 번째 단계에 대한 블로그 게시물을 작성했습니다: Medium Blog post
  • 여기 AWS에서 사용하는 것과 동일한 디자인 시스템으로 제품을 구축하려는 경우 사용자 경험 구축을 위한 오픈 소스 솔루션인 CloudScape를 확인하십시오. https://cloudscape.design/
  • Carbon Language - C++의 실험적 후속 버전: GitHub repo
  • 기계 학습이 재미있습니까? 이 멋진 노트북으로 초보자 GPU 프로그래밍을 배워 보세요: GitHub repo

  • 주간 빌드 - 코드형 인프라, Terraform 및 Minecraft





    오늘 Jacquie와 Darko는 IaC(Infrastructure as Code), 관심을 가져야 하는 이유, 접근 방법, 시작하는 데 필요한 사항에 대해 논의했습니다.

    시작에 대해 말하자면, 이 에피소드에서 우리는 Terraform을 사용하여 EC2에서 실행되는 Minecraft 서버에서 구축하는 도전에 착수했습니다.

    목표는 AWS에서 실행되는 간단한 EC2 가상 머신을 만들고 여기에 Minecraft를 실행하는 데 필요한 모든 소프트웨어를 설치 및 구성하는 것이었습니다.

    또한 GNU 화면을 사용하여 Minecraft 실행을 모니터링합니다. 그리고 SSH를 사용하는 대신 AWS Systems Manager - 세션 관리자를 사용하여 시스템에 로그인합니다.

    다음은 우리가 빌드한 코드입니다.

    # Setting up the AWS Terraform provider
    terraform {
      required_providers {
        aws = {
          source  = "hashicorp/aws"
          version = "~> 4.22"
        }
      }
    }
    
    provider "aws" {
      profile = "default"
      region  = "us-west-2"
    }
    
    # Just a variable with the URL to the Minecraft server JAR (this changes over time)
    variable "mojang_server_url" {
      type    = string
      default = "https://launcher.mojang.com/v1/objects/e00c4052dac1d59a1188b2aa9d5a87113aaf1122/server.jar"
    }
    
    # Security - we need to allow a specific port to our EC2 instance
    resource "aws_security_group" "minecraft" {
      ingress {
        description = "Minecraft port"
        from_port   = 25565
        to_port     = 25565
        protocol    = "tcp"
        cidr_blocks = ["0.0.0.0/0"]
      }
      egress {
        description = "Send Anywhere"
        from_port   = 0
        to_port     = 0
        protocol    = "-1"
        cidr_blocks = ["0.0.0.0/0"]
      }
      tags = {
        Name = "Minecraft Security Group"
      }
    }
    
    # EC2 Instance - THIS is where our Minecraft server runs
    resource "aws_instance" "minecraft" {
      ami                         = "ami-098e42ae54c764c35"
      instance_type               = "t2.xlarge"
      vpc_security_group_ids      = [aws_security_group.minecraft.id]
      associate_public_ip_address = true
    ## This role is specific to my account, so make sure to attach an IAM role relevant to your setup.
      iam_instance_profile        = "SSMEC2Role"
      root_block_device {
        volume_size = 30
      }
    ## This is a bash script that will be executed during the first launch of the Virtual Machine, and it sets up all we need to run Minecraft
      user_data = <<-EOF
        #!/bin/bash
        sudo yum -y update
        sudo rpm --import https://yum.corretto.aws/corretto.key
        sudo curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
        sudo yum install -y java-17-amazon-corretto-devel.x86_64
        wget -O server.jar ${var.mojang_server_url}
        java -Xmx1024M -Xms1024M -jar server.jar nogui
        sed -i 's/eula=false/eula=true/' eula.txt
        screen -d -m java -Xmx1024M -Xms1024M -jar server.jar nogui
        EOF
      tags = {
        Name = "Minecraft Server"
      }
    }
    output "instance_ip_addr" {
      value = aws_instance.minecraft.public_ip
    }
    


    토론 링크:
  • 코드형 인프라: Wiki page
  • 테라포밍: Terraform documentation
  • 빌드 기반이 되는 Github 저장소: GitHub repo
  • Minecraft 서버 다운로드 URL: Where you can find the server URL
  • AWS SSM - 세션 관리자: Docs page
  • GNU 화면: Website

  • 🐦 호스트와 게스트에게 연락:

    재키:
    다르코:

    좋은 웹페이지 즐겨찾기