VPC+NLB+ALB+DDoS+DNS
April 17, 2023

SG для работы кластеров БД

SG с такими правилами можно использовать для создания любого кластера БД в облаке. Будут открыты только необходимые для работы БД и вспомогательные порты.

Создадим правила для прохождения трафика в SG. Создадим новую SG, откроем весь исходящий трафик, а входящий трафик кастомизируем.
Здесь открырты порты для:

PostgreSQL
ClickHouse
YDB
MySQL
MongoDB
Redis
Kafka
Elasticsearch
Dataproc
export FOLDER=$(yc config get folder-id)
export NETWORK=$(yc vpc network get cameda-test --format json | jq -r '.id')
yc vpc sg create --name cam-db \
"--rule" "description=access all egress port,direction=egress,from-port=1,to-port=65535,protocol=any,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=access 22 port,direction=ingress,port=22,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=access 53 port,direction=ingress,port=53,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=access 80 port,direction=ingress,port=80,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=access 443 port,direction=ingress,port=443,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=PostgreSQL,direction=ingress,port=6432,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=ClickHouse,direction=ingress,port=8443,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=ClickHouse,direction=ingress,port=9440,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=ClickHouse,direction=ingress,port=9000,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=ClickHouse,direction=ingress,port=8123,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=YDB,direction=ingress,port=2135,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=MySQL,direction=ingress,port=3306,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=MongoDB,direction=ingress,port=27017,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=MongoDB,direction=ingress,port=27018,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Redis,direction=ingress,port=6379,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Redis,direction=ingress,port=6380,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Redis,direction=ingress,port=26379,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Kafka,direction=ingress,port=9091,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Kafka,direction=ingress,port=9092,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Elasticsearch,direction=ingress,port=9200,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=YARN,direction=ingress,port=8188,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=YARN,direction=ingress,port=8088,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Zeppelin,direction=ingress,port=8890,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Spark,direction=ingress,port=18080,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Oozie,direction=ingress,port=11000,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=MapReduce,direction=ingress,port=19888,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Livy,direction=ingress,port=8998,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Hive,direction=ingress,port=10002,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=Hadoop,direction=ingress,port=9870,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=HBase,direction=ingress,port=16010,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
"--rule" "description=HBase,direction=ingress,port=8085,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
--network-id $NETWORK --description "Default access" --folder-id $FOLDER --async
export SG=$(yc vpc sg get cam-db --format=json | jq -r '.id')