일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 차분 백업
- 전체 백업
- 리눅스
- Role
- key/value
- 커널 파라미터
- 유닉스
- 백업
- secret engines
- SSH OTP
- IAC
- 앤서블
- 구성관리
- vault agent
- hashicorp
- 시스템
- kv
- SHR
- 자동화
- 통합 풀 백업
- 파일시스템
- 인프라
- Vault
- devops
- REST API
- DATA 백업
- auth methods
- backend storage
- Secret Engine
- VIRT
- Today
- Total
클라우드 아카이브
01. Terraform으로 AWS에 RHEL 7 생성 본문
1. 개요
본 포스팅에서는 프로비저닝 도구인 테라폼을 사용하여 AWS에 RHEL 7 서버 1개를 생성하는 실습을 진행하겠습니다.
2. 사전 학습
- 테라폼의 개념과 특징 (테라폼을 사용하여 AWS에 EC2 생성)
3. 실습 : 테라폼으로 EC2 및 EBS 생성
《시스템 구성도》
EC2를 생성한 다음 해당 노드에 EBS를 구성/연결하겠습니다.
1. 생성할 EC2 코드 작성
[요구사항]
- OS : RHEL 7
- Mem : 2GB
- CPU : 1 Core
테라폼의 개념과 특징 (테라폼을 사용하여 AWS에 EC2 생성)에 작성한 코드에서 ami 및 instance_type만 수정하겠습니다. 그리고 생성할 EC2에 외장 스토리지를 생성 및 연결하기 위해 해당 ami 및 인스턴스 타입을 확인할 수 있는 방법은 AWS 웹 콘솔에 있는 AWS Marketplace에 접속하면 됩니다. 접속 방법을 모르시는 분들은 링크를 클릭해주시면 됩니다.
resource "aws_instance" "my_ec2_node" {
ami = "ami-0708fd0ae9a663e02" # RHEL 7
instance_type = "t2.small" # Memory 2 GB
key_name = aws_key_pair.ec2_admin_key.key_name
associate_public_ip_address = true # give a Public IP
# include VPC Security Group
vpc_security_group_ids = [
aws_security_group.allow_SSH.id
]
tags = {
Name = "my-ec2-node"
}
}
# 방화벽 22번 포트 오픈
resource "aws_security_group" "allow_SSH" {
name = "allow_ssh_from_all"
description = "Allow SSH port from all"
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
cidr_blocks = [ "0.0.0.0/0"]
from_port = -1
protocol = "-1"
to_port = -1
}
}
2. EC2에 연결할 EBS 코드 작성
[요구사항]
- 기밀 급은 아니지만, 크리티컬한 데이터를 저장한다고 가정 : 한국 내에 해당 스토리지가 위치
- 스토리지의 용량은 200GB로 지정
- 데이터는 암호화되어 저장되어야 함
resource "aws_ebs_volume" "ec2-volume" {
availability_zone = "ap-northeast-2a"
size = 200
encrypted = true
tags = {
Name = "oracle-volume"
}
}
resource "aws_volume_attachment" "attach-my-ebs-volume-with-ec2" {
device_name = "/dev/sdb"
volume_id = "${aws_ebs_volume.ec2-volume.id}"
instance_id = "${aws_instance.my_ec2_node.id}"
}
AWS에 EC2 및 200GB 용량의 스토리지를 생성했습니다. 이제 해당 노드에 접속하여 파티셔닝 및 LVM 구성 작업을 진행하겠습니다.
3. EC2에 등록할 SSH 키 지정
EC2에 비대칭키 알고리즘 방식을 통해 SSH 인증하기 위해서는 공개키를 등록해주어야 합니다. 새로 생성한 공개키를 EC2와 공유하기 위해 아래와 같이 리소스를 등록해줍니다.
resource "aws_key_pair" "ec2_admin_key" {
key_name = "ec2_admin"
public_key = file("~/.ssh/ec2_admin.pub")
}
4. 프로비저닝 이행
작성한 코드 디렉토리에서 아래 CLI 명령어를 수행하면 해당 실습이 완료됩니다.
$ terraform apply
마무리
테라폼을 사용하여 EC2 및 EBS를 구성하는 실습을 진행했습니다. 다음 포스팅에서는 해당 노드에 접속하여 LVM을 수동으로 구성하는 방법, 앤서블을 사용하여 코드 베이스로 구성하는 방법을 나누어 제작하겠습니다.
'워크플레이스 > IaC를 이용한 LVM 구성' 카테고리의 다른 글
[LVM] RHEL 7에 LVM 및 파일시스템 구성 - 수동 version (2) (0) | 2021.10.19 |
---|---|
테라폼을 사용하여 RHEL 7에 LVM 및 파일시스템 구성 - 수동 version (1) (0) | 2021.10.18 |
[IaC][LVM] IaC를 이용한 LVM 구성 작업 설명 (0) | 2021.10.13 |