기록

AWS EC2 사용자 데이터를 이용한 도커 설치 및 실행 가이드 본문

DevOps

AWS EC2 사용자 데이터를 이용한 도커 설치 및 실행 가이드

youngyin 2024. 11. 12. 15:12

1. 시작하면서

Amazon EC2는 매우 유연한 클라우드 컴퓨팅 환경을 제공하며, 초기 설정을 사용자 데이터(User Data)로 자동화할 수 있는 강력한 기능을 가지고 있습니다. 이 글에서는 EC2 인스턴스를 Ubuntu 환경에서 사용자 데이터를 통해 자동으로 도커를 설치하도록 설정하는 방법에 대해 설명하겠습니다. 또한, 이 과정의 각 단계를 이미지로 설명해 이해를 돕겠습니다.

2. EC2 인스턴스 개요 및 사용자 데이터란?

EC2 인스턴스를 생성할 때, AWS에서 제공하는 **사용자 데이터(User Data)**를 활용해 초기 설치 및 설정을 자동으로 진행할 수 있습니다. 이를 통해 서버 운영에 필요한 소프트웨어를 인스턴스 시작과 동시에 자동으로 설치하고 구성할 수 있어 운영의 효율성을 높일 수 있습니다.

3. EC2 인스턴스 생성 절차

먼저 AWS 콘솔에 로그인하고 EC2 인스턴스를 생성하는 기본 절차를 따라갑니다. 원하는 인스턴스 타입과 AMI를 선택하고, 네트워크 설정을 완료한 후, 인스턴스를 구성할 단계에서 사용자 데이터를 입력할 수 있는 섹션이 나타납니다. 여기에서 도커 설치 스크립트를 작성해 넣을 것입니다.

 

아래에서는 ubuntu server 24.04 LTS 버전을 테스트용으로 생성해보겠습니다. 

 

t2.micro 유형의 인스턴스를 선택하고, 볼륨을 30GiB로 선언했습니다. 

 

키 페어를 생성하거나 선택한 후에, 사용자 데이터에 아래처럼 도커를 설치하는 스크립트를 입력합니다.

4. 사용자 데이터에 포함할 수 있는 정보들

사용자 데이터에는 초기 서버 설정과 관련된 여러 작업을 포함할 수 있습니다. 예를 들어:

  • 필수 패키지 설치: 서버 운영에 필요한 필수 소프트웨어(예: curl, git 등)를 설치하는 명령어.
  • 도커 설치: 컨테이너화를 통해 애플리케이션을 쉽게 배포하기 위한 도커 설치 스크립트.
  • 원격환경 설정: SSH 키 설치나 방화벽 규칙 설정 등 원격 액세스 환경을 설정하는 작업.
  • 애플리케이션 설치 및 설정: 기본적인 웹 서버(Apache, Nginx) 설치 또는 특정 애플리케이션 배포.

사용자 데이터에 너무 많은 작업을 포함하게 되면 초기 설치가 실패할 확률이 높아질 수 있습니다. 특히 네트워크 연결에 의존하거나 시간이 오래 걸리는 작업은 실패를 유발할 수 있습니다. 이러한 작업들은 사용자 데이터로 설정하기보다는 인스턴스 시작 후 별도로 스크립트를 실행하는 방법을 고려하는 것이 좋습니다.

 

예를 들어, 다음과 같이 Ubuntu Desktop을 설치하는 명령어를 사용자 데이터에 포함하였더니, 오래걸리는 작업이어서 그런지 설치에 실패했습니다.

apt-get install -y ubuntu-desktop

 

이 명령어는 설치 시간이 오래 걸리고 많은 패키지를 다운로드해야 하므로, 초기 설정에서 실행하는 경우 실패할 가능성이 큽니다. 이러한 작업은 인스턴스가 안정적으로 실행된 이후에 수동으로 실행하는 것이 좋습니다.

5. 사용자 데이터 스크립트 작성하기

이제 도커를 자동으로 설치하는 사용자 데이터 스크립트를 작성해 보겠습니다. Ubuntu 기반 인스턴스에서 도커를 설치하려면 다음과 같은 사용자 데이터를 입력합니다:

#!/bin/bash
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y docker-ce

 

이 스크립트는 인스턴스가 시작될 때 자동으로 실행되어, 도커를 설치하고 시작하며, 부팅 시 자동으로 실행되도록 설정합니다. 중요한 점은 사용자 데이터 스크립트가 인스턴스 초기 부팅 시 한 번만 실행된다는 것입니다.

 

사용자 데이터는 인스턴스가 부팅되면서 자동으로 실행되지만, 이 과정이 완료될 때까지 기다린 후에야 인스턴스가 "완전히 준비되었다"고 표시됩니다. 즉, 사용자 데이터가 실행되면서 도커가 설치될 동안에는 인스턴스의 상태가 "Initialising"으로 나타날 수 있습니다. 이 과정이 완료되면 도커가 성공적으로 설치되고 인스턴스가 준비 상태가 됩니다.

6. 도커 설치 확인하기

인스턴스가 준비되면 SSH를 통해 접속하여 도커가 제대로 설치되었는지 확인해 볼 수 있습니다. 다음 명령어를 사용하여 도커 버전을 확인할 수 있습니다:

docker --version

이 명령어를 실행했을 때 도커의 버전 정보가 출력되면, 사용자 데이터 스크립트가 성공적으로 실행된 것입니다.

7. 마무리: 사용자 데이터의 중요성

EC2 인스턴스를 생성하면서 사용자 데이터를 사용하는 것은 인프라 설정을 자동화하는 매우 유용한 방법입니다. 특히 도커와 같은 중요한 소프트웨어를 인스턴스가 시작될 때마다 자동으로 설치하고 설정할 수 있어 관리 효율성을 크게 높일 수 있습니다. 이 과정을 통해 DevOps의 기본적인 자동화를 체험할 수 있으며, 확장된 자동화 스크립트 작성에도 도전해볼 수 있습니다.

하지만 사용자 데이터에 오래 걸리는 작업을 포함할 경우 초기 설치가 실패할 수 있으므로, 이러한 작업들은 인스턴스 시작 후 별도로 실행하는 방법이 더 안정적일 수 있습니다. 이를 고려해 사용자 데이터를 구성하면 실패 확률을 줄이고 인프라의 신뢰성을 높일 수 있습니다.

Comments