Can you modify this terraform script into multiple files and make the changeable values as variables and fix if there any issues?

provider "aws" {
 region = "us-east-1"
}

resource "aws\_key\_pair" "MyKeyPair" {
 key\_name = "MyKeyPair"
 public\_key = "ssh-rsa XXXX"
}

resource "aws\_alb" "alb\_risk-intel" {
 name = "alb\_risk-intel"
 internal = false
 security\_groups = [var.security\_group\_id]
 subnets = [var.subnet\_id]
 
 tags = {
 Name = "alb\_risk-intel"
 }
}

resource "aws\_security\_group" "allow\_public\_access" {
 name = "allow\_public\_access"
 description = "Allow HTTP and HTTPS access from the public internet"
 
 ingress {
 description = "HTTP access from the public internet"
 from\_port = 80
 to\_port = 80
 protocol = "tcp"
 cidr\_blocks = ["0.0.0.0/0"]
 }
 
 egress {
 from\_port = 0
 to\_port = 0
 protocol = "-1"
 cidr\_blocks = ["0.0.0.0/0"]
 }
}

resource "aws\_db\_subnet\_group" "risk-intel" {
 name = "risk-intel"
 subnet\_ids = [var.subnet\_ids]
}

resource "aws\_db\_instance" "risk-intel" {
 identifier = "risk-intel"
 instance\_class = "db.t2.medium"
 allocated\_storage = 20
 db\_subnet\_group\_name = aws\_db\_subnet\_group.risk-intel.name
 storage\_type = "gp2"
 publicly\_accessible = true
 skip\_final\_snapshot = true
 vpc\_security\_group\_ids = [var.security\_group\_id]
}

// Create EFS file system
resource "aws\_efs\_file\_system" "efs-risk-intel" {
 lifecycle\_policy={
 transition\_to\_ia="AFTER\_14\_DAYS"
 }
 encrypted = true
 tags = {
 Name = "MyEFSFileSystem"
 }
}

// Create EFS mount target 
resource "aws\_efs\_mount\_target" "efs-risk-intel" {
 file\_system\_id = aws\_efs\_file\_system.efs-risk-intel.id
 subnet\_id = var.subnet\_id
 security\_groups = [var.security\_group\_id]
}

resource "aws\_elb" "risk-intel" {
 name = "risk-intel-lb"
 availability\_zones = ["us-east-1a", "us-east-1b", "us-east-1c"]
 
 listener {
 instance\_port = 80
 instance\_protocol = "http"
 lb\_port = 80
 lb\_protocol = "http"
 }
 
 health\_check {
 healthy\_threshold = 2
 unhealthy\_threshold = 2
 timeout = 3
 interval = 30
 target = "HTTP:80/"
 }
 
 tags {
 Name = "risk-intel-lb"
 }
}

resource "aws\_instance" "risk-intel-1" {
 ami = var.ami\_id
 instance\_type = "t2.micro"
 key\_name = aws\_key\_pair.MyKeyPair.key\_name
 vpc\_security\_group\_ids = [var.security\_group\_id]
 subnet\_id = var.subnet\_id
 
 tags {
 Name = "risk-intel-1"
 }
 
 lifecycle {
 create\_before\_destroy = true
 }
 
 // connect EFS to ec2
 connection {
 type = "ssh"
 user = "ubuntu"
 private\_key = file(var.private\_key\_file)
 host = self.public\_ip
 }
 
 provisioner "file" {
 source = "path/to/file"
 destination = "/home/ubuntu/test/test.txt"
 }
 
 provisioner "remote-exec" {
 inline = [
 "sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-XXXXXX.efs.us-east-1.amazonaws.com:/ /mnt/efs"
 ]
 }

 // register the ec2 instance to the ALB
 resource "aws\_alb\_target\_group\_attachment" "risk-intel-1" {
 target\_group\_arn = aws\_alb.alb\_risk-intel.arn
 target\_id = aws\_instance.risk-intel-1.id
 port = 80
 }

}

resource "aws\_instance" "risk-intel-2" {
 ami = var.ami\_id
 instance\_type = "t2.micro"
 key\_name = aws\_key\_pair.MyKeyPair.key\_name
 vpc\_security\_group\_ids = [var.security\_group\_id]
 subnet\_id = var.subnet\_id
 
 tags {
 Name = "risk-intel-2"
 }
 
 lifecycle {
 create\_before\_destroy = true
 }
 
 // connect EFS to ec2
 connection {
 type = "ssh"
 user = "ubuntu"
 private\_key = file(var.private\_key\_file)
 host = self.public\_ip
 }
 
 provisioner "file" {
 source = "path/to/file"
 destination = "/home/ubuntu/test/test.txt"
 }
 
 provisioner "remote-exec" {
 inline = [
 "sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-XXXXXX.efs.us-east-1.amazonaws.com:/ /mnt/efs"
 ]
 }

 // register the ec2 instance to the ALB
 resource "aws\_alb\_target\_group\_attachment" "risk-intel-2" {
 target\_group\_arn = aws\_alb.alb\_risk-intel.arn
 target\_id = aws\_instance.risk-intel-2.id
 port = 80
 }

}
이 테라폼 스크립트를 여러 파일로 수정하고 변경 가능한 값을 변수로 만들고 문제가 있는 경우 수정할 수 있나요?공급자 "aws" { region = "US-EAST-1"}resource "aws\_key\_pair" "MyKeyPair" { 키\_이름 = "내키쌍" 공개\_키 = "ssh-rsa XXXX"}resource "aws\_alb" "alb\_risk-intel" { name = "alb\_risk-intel" 내부 = 거짓 보안\_그룹 = [var.security\_group\_id] 서브넷 = [var.subnet\_id]  태그 = { 이름 = "alb\_risk-intel" }}resource "aws\_security\_group" "allow\_public\_access" { 이름 = "허용\_공개\_액세스" 설명 = "퍼블릭 인터넷에서 HTTP 및 HTTPS 액세스 허용"  ingress { description = "공용 인터넷에서 HTTP 액세스" from\_port = 80 to\_port = 80 프로토콜 = "tcp" cidr\_blocks = ["0.0.0.0/0"] }  egress { from\_port = 0 to\_port = 0 protocol = "-1" cidr\_blocks = ["0.0.0.0/0"] }}resource "aws\_db\_subnet\_group" "risk-intel" { name = "위험-인텔" subnet\_ids = [var.subnet\_ids] }}resource "aws\_db\_instance" "risk-intel" { 식별자 = "위험-인텔" 인스턴스\_클래스 = "db.t2.medium" 할당된\_스토리지 = 20 db\_subnet\_group\_name = aws\_db\_subnet\_group.risk-intel.name storage\_type = "gp2" 공개\_액세스 가능 = 참 SKIP\_FINAL\_SNAPSHOT = TRUE vpc\_security\_group\_ids = [var.security\_group\_id]}// EFS 파일 시스템 생성resource "aws\_efs\_file\_system" "efs-risk-intel" { lifecycle\_policy={ transition\_to\_ia="AFTER\_14\_DAYS" } encrypted = true tags = { 이름 = "MyEFS파일시스템" }}// EFS 마운트 대상 생성 resource "aws\_efs\_mount\_target" "efs-risk-intel" { file\_system\_id = aws\_efs\_file\_system.efs-risk-intel.id 서브넷\_id = var.subnet\_id 보안\_그룹 = [var.security\_group\_id] }}리소스 "AWS\_ELB" "위험-인텔" { 이름 = "위험-인텔-엘비" 가용성\_zones = ["us-east-1a", "us-east-1b", "us-east-1c"]  리스너 { instance\_port = 80 인스턴스\_프로토콜 = "http" lb\_port = 80 lb\_protocol = "http" }  health\_check { healthy\_threshold = 2 불건강\_임계값 = 2 timeout = 3 interval = 30 target = "HTTP:80/" }  태그 { 이름 = "위험-인텔-lb" }}리소스 "aws\_instance" "위험-인텔-1" { ami = var.ami\_id 인스턴스\_type = "t2.micro" 키\_이름 = aws\_key\_pair.MyKeyPair.key\_이름 vpc\_security\_group\_ids = [var.security\_group\_id] 서브넷\_id = var.subnet\_id  태그 { 이름 = "위험-인텔-1" }  수명 주기 { create\_before\_destroy = true }  // EFS를 ec2에 연결 연결 { 유형 = "ssh" 사용자 = "우분투" private\_key = file(var.private\_key\_file) host = self.public\_ip }  프로비저너 "파일" { 소스 = "경로/파일" 대상 = "/home/ubuntu/test/test.txt" }  프로비저너 "원격 실행" { 인라인 = [ "sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-XXXXXX.efs.us-east-1.amazonaws.com:/ /mnt/efs" ] } // ec2 인스턴스를 ALB에 등록합니다. resource "aws\_alb\_target\_group\_attachment" "risk-intel-1" { target\_group\_arn = aws\_alb.alb\_risk-intel.arn target\_id = aws\_instance.risk-intel-1.id port = 80 }}resource "aws\_instance" "risk-intel-2" { ami = var.ami\_id 인스턴스\_type = "t2.micro" 키\_이름 = aws\_키\_pair.MyKeyPair.키\_이름 vpc\_security\_group\_ids = [var.security\_group\_id] 서브넷\_id = var.subnet\_id  태그 { 이름 = "위험-인텔-2" }  수명 주기 { create\_before\_destroy = true }  // EFS를 ec2에 연결 연결 { 유형 = "ssh" 사용자 = "우분투" private\_key = file(var.private\_key\_file) host = self.public\_ip }  프로비저너 "파일" { 소스 = "경로/파일" 대상 = "/home/ubuntu/test/test.txt" }  프로비저너 "원격 실행" { 인라인 = [ "sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-XXXXXX.efs.us-east-1.amazonaws.com:/ /mnt/efs" ] } // ec2 인스턴스를 ALB에 등록합니다. resource "aws\_alb\_target\_group\_attachment" "risk-intel-2" { target\_group\_arn = aws\_alb.alb\_risk-intel.arn target\_id = aws\_instance.risk-intel-2.id port = 80 }}