스스로 구축하는 AWS 클라우드 인프라 - 기본편을 수강하며 AWS 인프라를 Terraform으로 작성한 내용입니다.
security_group.tf
파일에 아래 내용을 추가# Security group for EFS
resource "aws_security_group" "efs_sg" {
name = "efs-sg"
description = "Security group for efs"
vpc_id = aws_vpc.main.id
tags = {
Name = "efs-sg"
}
}
# Inbound rule allowing NFS
resource "aws_vpc_security_group_ingress_rule" "allow_nfs" {
security_group_id = aws_security_group.efs_sg.id
# Fill in below value with security group whose instance will connect to EFS
referenced_security_group_id = aws_security_group.public_ec2_sg.id
from_port = 2049
ip_protocol = "tcp"
to_port = 2049
}
# Outbound rule allowing all traffic for EFS
resource "aws_vpc_security_group_egress_rule" "allow_all_outbound_traffic_for_nfs" {
security_group_id = aws_security_group.efs_sg.id
cidr_ipv4 = "0.0.0.0/0"
ip_protocol = "-1"
}
referenced_security_group_id
지정NFS
로 2049
포트 사용efs.tf
파일을 만들고 아래와 같이 작성# EFS
resource "aws_efs_file_system" "main" {
performance_mode = "generalPurpose"
throughput_mode = "bursting"
lifecycle_policy {
transition_to_ia = "AFTER_30_DAYS"
}
lifecycle_policy {
transition_to_primary_storage_class = "AFTER_1_ACCESS"
}
tags = {
Name = "vpc-efs-${var.vpc_name}"
}
}
# EFS backup policy
resource "aws_efs_backup_policy" "efs_backup_policy" {
file_system_id = aws_efs_file_system.main.id
backup_policy {
status = "DISABLED"
}
}
# EFS mount target
resource "aws_efs_mount_target" "public_subnet" {
count = length(var.cidr_numeral_public)
file_system_id = aws_efs_file_system.main.id
subnet_id = element(aws_subnet.public.*.id, count.index)
security_groups = [ aws_security_group.efs_sg.id ]
}
aws_efs_mount_target
리소스 사용df -f
sudo yum install amazon-efs-utils -y
/var/www/html/efs
를 마운트 포인트로 설정cd /var/www/html
mkdir efs
sudo mount -t efs -o tls fs-071eafc94bc1e05df:/ efs
cd efs
sudo wget https://s3-web-hosting-chori.s3.us-east-1.amazonaws.com/car.jpg
ip 주소/efs/mycar.html
로 접속하면 웹페이지가 표시됨sudo yum install amazon-efs-utils -y
cd /var/www/html
mkdir efs
sudo mount -t efs -o tls fs-071eafc94bc1e05df:/ efs
efs
디렉토리로 이동하면 다른 EC2 인스턴스에서 다운로드했던 파일을 확인할 수 있음cd efs
ls -al
ip 주소/efs/mycar.html
로 접속하면 웹페이지가 표시됨mycar.html
파일을 수정sudo vi mycar.html