File size: 5,914 Bytes
c7df5be
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
#!/bin/bash

# FitTürkAI RAG System - High RAM Google Cloud VM Creator
# CPU Optimized for Maximum Performance

echo "🚀 FitTürkAI için Yüksek RAM'li Google Cloud VM Oluşturucu"
echo "============================================================"

# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# Configuration variables
PROJECT_ID=""
VM_NAME="fitturkrai-high-ram"
ZONE="us-central1-a"
REGION="us-central1"

# RAM Seçenekleri (CPU optimize)
echo -e "${BLUE}📊 Mevcut RAM Seçenekleri:${NC}"
echo "1. n2-highmem-2:  2 vCPU,  16 GB RAM  (~$100/ay)  [Temel]"
echo "2. n2-highmem-4:  4 vCPU,  32 GB RAM  (~$200/ay)  [Önerilen]"
echo "3. n2-highmem-8:  8 vCPU,  64 GB RAM  (~$400/ay)  [Yüksek Performans]"
echo "4. n2-highmem-16: 16 vCPU, 128 GB RAM (~$800/ay)  [Maksimum]"
echo "5. n2-highmem-32: 32 vCPU, 256 GB RAM (~$1600/ay) [Ultra]"
echo "6. m2-ultramem-416: 416 vCPU, 5.9 TB RAM (~$30000/ay) [Extreme - Sadece özel durumlar]"

echo ""
read -p "🔢 Seçiminizi yapın (1-6): " choice

case $choice in
    1)
        MACHINE_TYPE="n2-highmem-2"
        RAM_GB="16"
        ;;
    2)
        MACHINE_TYPE="n2-highmem-4"
        RAM_GB="32"
        ;;
    3)
        MACHINE_TYPE="n2-highmem-8"
        RAM_GB="64"
        ;;
    4)
        MACHINE_TYPE="n2-highmem-16"
        RAM_GB="128"
        ;;
    5)
        MACHINE_TYPE="n2-highmem-32"
        RAM_GB="256"
        ;;
    6)
        MACHINE_TYPE="m2-ultramem-416"
        RAM_GB="5888"
        echo -e "${RED}⚠️  UYARI: Bu çok pahalı bir seçenek! Sadece özel durumlar için.${NC}"
        read -p "Devam etmek istediğinizden emin misiniz? (y/N): " confirm
        if [[ $confirm != "y" ]]; then
            echo "İşlem iptal edildi."
            exit 1
        fi
        ;;
    *)
        echo -e "${RED}❌ Geçersiz seçim! Varsayılan olarak n2-highmem-4 kullanılacak.${NC}"
        MACHINE_TYPE="n2-highmem-4"
        RAM_GB="32"
        ;;
esac

echo -e "${GREEN}✅ Seçilen: ${MACHINE_TYPE} (${RAM_GB} GB RAM)${NC}"

# Project ID kontrolü
if [ -z "$PROJECT_ID" ]; then
    echo ""
    echo -e "${YELLOW}🏗️  Google Cloud Project ID gerekli${NC}"
    read -p "Project ID'nizi girin: " PROJECT_ID
fi

# Disk boyutu seçimi
echo ""
echo -e "${BLUE}💽 Disk Boyutu Seçimi:${NC}"
echo "1. 50 GB   [Temel - Sadece sistem]"
echo "2. 100 GB  [Önerilen - Modeller + veri]"
echo "3. 200 GB  [Yüksek - Büyük veri setleri]"
echo "4. 500 GB  [Maksimum - Çok büyük modeller]"

read -p "Disk boyutunu seçin (1-4): " disk_choice

case $disk_choice in
    1) DISK_SIZE="50" ;;
    2) DISK_SIZE="100" ;;
    3) DISK_SIZE="200" ;;
    4) DISK_SIZE="500" ;;
    *) 
        echo -e "${YELLOW}⚠️  Varsayılan 100GB kullanılacak${NC}"
        DISK_SIZE="100"
        ;;
esac

# VM oluşturma komutu
echo ""
echo -e "${BLUE}🚀 VM oluşturuluyor...${NC}"

# Startup script içeriği
STARTUP_SCRIPT="#!/bin/bash
# FitTürkAI Setup Script
apt-get update && apt-get upgrade -y
apt-get install -y python3 python3-pip python3-venv git htop tree curl wget

# Python environment setup
python3 -m pip install --upgrade pip
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

# Clone repository (replace with your repo)
# git clone https://github.com/YOUR_USERNAME/FitTurkAI-RAG.git /home/ubuntu/FitTurkAI-RAG
# chown -R ubuntu:ubuntu /home/ubuntu/FitTurkAI-RAG

# System optimizations for high RAM
echo 'vm.swappiness=10' >> /etc/sysctl.conf
echo 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf
sysctl -p

# Install monitoring tools
apt-get install -y iotop nethogs

echo 'FitTürkAI VM setup completed!' >> /var/log/startup-script.log
"

# VM oluştur
gcloud compute instances create $VM_NAME \
    --project=$PROJECT_ID \
    --zone=$ZONE \
    --machine-type=$MACHINE_TYPE \
    --network-interface=network-tier=PREMIUM,stack-type=IPV4_ONLY,subnet=default \
    --metadata="startup-script=$STARTUP_SCRIPT" \
    --maintenance-policy=MIGRATE \
    --provisioning-model=STANDARD \
    --service-account=default \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --tags=fitturkrai,http-server,https-server \
    --create-disk=auto-delete=yes,boot=yes,device-name=$VM_NAME,image=projects/ubuntu-os-cloud/global/images/ubuntu-2204-jammy-v20240319,mode=rw,size=$DISK_SIZE,type=projects/$PROJECT_ID/zones/$ZONE/diskTypes/pd-balanced \
    --no-shielded-secure-boot \
    --shielded-vtpm \
    --shielded-integrity-monitoring \
    --labels=purpose=ml,project=fitturkrai \
    --reservation-affinity=any

if [ $? -eq 0 ]; then
    echo -e "${GREEN}✅ VM başarıyla oluşturuldu!${NC}"
    echo ""
    echo -e "${BLUE}📋 VM Bilgileri:${NC}"
    echo "  Ad: $VM_NAME"
    echo "  Tip: $MACHINE_TYPE"
    echo "  RAM: ${RAM_GB} GB"
    echo "  Disk: ${DISK_SIZE} GB"
    echo "  Zone: $ZONE"
    echo ""
    
    # IP adresini al
    EXTERNAL_IP=$(gcloud compute instances describe $VM_NAME --zone=$ZONE --format='get(networkInterfaces[0].accessConfigs[0].natIP)')
    echo -e "${GREEN}🌐 External IP: $EXTERNAL_IP${NC}"
    echo ""
    
    echo -e "${BLUE}🔗 Bağlantı Komutları:${NC}"
    echo "  SSH: gcloud compute ssh $VM_NAME --zone=$ZONE"
    echo "  SSH Direct: ssh ubuntu@$EXTERNAL_IP"
    echo ""
    
    echo -e "${YELLOW}⏳ VM'nin hazır olması için ~2-3 dakika bekleyin${NC}"
    echo -e "${BLUE}📦 Sonraki adımlar:${NC}"
    echo "1. SSH ile bağlanın"
    echo "2. Repository'yi klonlayın"
    echo "3. FitTürkAI sistemini kurun"
    
    # SSH bağlantısı sor
    echo ""
    read -p "🔌 Şimdi SSH ile bağlanmak ister misiniz? (y/N): " connect_now
    if [[ $connect_now == "y" ]]; then
        echo "SSH bağlantısı kuruluyor..."
        gcloud compute ssh $VM_NAME --zone=$ZONE
    fi
    
else
    echo -e "${RED}❌ VM oluşturma başarısız!${NC}"
    exit 1
fi