Adds langfuse ec2 and api key to code
This commit is contained in:
57
infra/langfuse-terraform/main.tf
Normal file
57
infra/langfuse-terraform/main.tf
Normal file
@@ -0,0 +1,57 @@
|
||||
# ──────────────────────────────────────────────
|
||||
# Security Group
|
||||
# ──────────────────────────────────────────────
|
||||
resource "aws_security_group" "langfuse" {
|
||||
name = var.sg_name
|
||||
description = "Allow defined ports for Langfuse"
|
||||
vpc_id = var.vpc_id
|
||||
|
||||
dynamic "ingress" {
|
||||
for_each = var.allowed_ports
|
||||
content {
|
||||
from_port = ingress.value
|
||||
to_port = ingress.value
|
||||
protocol = "tcp"
|
||||
cidr_blocks = ["3.14.44.224/32"]
|
||||
}
|
||||
}
|
||||
|
||||
egress {
|
||||
from_port = 0
|
||||
to_port = 0
|
||||
protocol = "-1"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
|
||||
tags = merge(var.tags, {
|
||||
Name = var.sg_name
|
||||
})
|
||||
}
|
||||
|
||||
# ──────────────────────────────────────────────
|
||||
# EC2 Instance
|
||||
# ──────────────────────────────────────────────
|
||||
resource "aws_instance" "langfuse" {
|
||||
ami = data.aws_ami.ubuntu.id
|
||||
instance_type = var.instance_type
|
||||
subnet_id = var.subnet_id
|
||||
vpc_security_group_ids = [aws_security_group.langfuse.id]
|
||||
associate_public_ip_address = true
|
||||
key_name = var.key_name != "" ? var.key_name : null
|
||||
|
||||
user_data = templatefile("${path.module}/user_data.sh.tftpl", {
|
||||
langfuse_repo_url = var.langfuse_repo_url
|
||||
langfuse_web_port = var.langfuse_web_port
|
||||
ebs_device_name = var.ebs_device_name
|
||||
})
|
||||
|
||||
root_block_device {
|
||||
volume_size = var.root_volume_size
|
||||
volume_type = var.root_volume_type
|
||||
delete_on_termination = true
|
||||
}
|
||||
|
||||
tags = merge(var.tags, {
|
||||
Name = var.instance_name
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user