DigitalOcean을 사용하여 인프라를 확장하는 방법

DigitalOcean을 사용하여 인프라를 확장하는 방법

2022-06-01 last update

5 minutes reading Scaling
Digital Ocean과 API 액세스의 간단한 인터페이스와 완전한 루트 접근을 통해 자동 설정을 만들 수 있는 절호의 기회이며 필요에 따라 자신을 확장할 수 있습니다.당신은 데이터의 수요를 만족시키기 위해 당신의 사이트를 자동으로 확대하거나 축소할 수 있습니다.
이 API를 사용하면 수직과 수평 신축성을 실현할 수 있으며 bash 스크립트만 사용하면 접근할 수 있습니다.모든 다른 방울에 공개 키가 있는 관리 방울을 만드는 것이 좋습니다.이것은 rsync로 웹 페이지를 업데이트하고 다른 물방울에 명령을 보내며 Nagios, NRPE, SNMPD의 중요한 정보를 조회할 수 있도록 합니다.서버의 CPU 사용률이 85% 에 달하는 경우 두 배의 RAM (수직 확장) 또는 클론 (수평 확장) 을 생성하여 원하는 방식과 시기를 결정하기 위해 논리적 수준을 만들어야 합니다.선택은 가격 효익 분석으로 독자가 결정한다.
다음은 bash 스크립트입니다. 시작하는 데 사용됩니다.API Access Page로부터 Client\u Key 및 API\u Key를 자신의 변수로 수정했는지 확인 - "새 API 키 생성"을 클릭합니다.
우리의 예는 다음과 같다.
클라이언트 키: A2a9SfT4NeFBl6df5cu42
API 키: mnqWGdu4OfLBwwJPee6cpjkeY70qv9mKicqZYvtHJ

배율 조정기.상해:


#!/상자/bash
#이거 꼭 바꿔야 돼!
Client\u Key=A2a9SfT4NeFBl6df5cu42
API\U 키 = mnqWGdu4OfLBwwJPee6cpjkeY70qv9mKicqZYvtHJ
액체 방울 ()
{
echo "당신의 현재 물방울:"
모든\u 물방울='curl-s'https://api./droplets/?client_id=$Client\u Key&api\u Key=$api\u Key“`
echo$All\u drops | sed-e/,/\n/g | sed-e/{/\n/g | sed-e/}/\n/g | sed-e/“//g”
}
헬리컬 상승()
{
Droplet\u 이름 = 1달러
Size\u ID=2달러
Image\u ID=3달러
Region\u ID=4달러
echo "새 물방울 회전 $droplet\u 이름"
곱슬-s"https://api./droplets/new?name=$Droplet\u Name&size\u id=$size\u id&image\u id=$image\u id®ion\u id=$Region\u id&client\u id=$client\u Key&api\u Key=$api\u Key“
}
크기 조정 ()
{
Droplet\u ID=1달러
Size\u ID=2달러
echo "액체 ID 크기 조정: $droplet\u ID에서 크기 ID: $2"
곱슬-s"https://api./droplets/$Droplet\u ID/크기 조정/?size\u id=$size\u id&client\u id=$client\u Key&api\u Key=$api\u Key“
}
크기 ()
{
크기 = "롤-s"https://api./sizes/?client_id=$Client\u Key&api\u Key=$api\u Key“`
echo$크기 | sed-e/,/\n/g | sed-e/{/g | sed-e/}/g | sed-e/'/g | sed-e/\[\n/g]
}
스냅샷()
{
Droplet\u ID=1달러
Snapshot\u 이름 = 2달러
echo "촬영 이름: $snapshot\u Name 물방울 $1 스냅샷"
곱슬-s"https://api./droplets/$Droplet\u ID/스냅샷/?이름=$스냅샷\u이름 및 클라이언트\uid=$클라이언트\u키와api\u키=$api\u키"
}
go()
{
# 현재 모든 물방울을 표시합니다.Region\u ID: 미국 1개, 암스테르담 2개.
액적
# 할당된 CPU 코어 및 HDD 수와 연관된 RAM 크기 ID 표시 - 참조https://www./pricing
echo "RAM 가능한 물방울 크기:"
치수
# 기존 물방울의 스냅샷 촬영
# 문법: snapshot Droplet\u ID snapshot\uName
# 예를 들어, ID가 "72100"인 물방울 스냅샷을 촬영하려면:
# 스냅샷 72100 도메인.일반 도메인 이름 형식
# 세로 크기 조정 - RAM, CPU, 디스크 추가
# 문법: resize Droplet\u ID New\u Size\u ID
# 예를 들어, 512MB 물방울을 ID가 "72100"인 1GB 물방울로 조정하려면 다음과 같이 하십시오.
# 크기 조정 72100 63
# 수평 줌 - 스냅샷 클론 서버에서
# 문법: spinup Droplet\u Name Size\u ID Image\u ID Region\u ID
# 예를 들어, 512MB의 도메인 클론을 시작합니다.뉴욕 데이터 센터(지역 1)의 이미지 ID가 "12573"인 com 웹 서버:
# 도메인을 회전합니다.com 66 12574 1
}
가다
만약 우리가 Nagios, NRPE, SNMPD의 Nginx/Apache/Memcached 창고를 설정한 웹 서버 droplet을 만들었다고 가정합니다.우리 admin droplet의 SSH 키는/root/에 있습니다.ssh/authorized\u 키와 iptables 규칙이 위치하고 있으며, 관리자droplet만 ssh를 통해 연결할 수 있습니다.관리되는 도메인은 도메인입니다.일반 도메인 이름 형식입니다.
스크립트의 예제 출력은 웹 서버 방울을 보여 줍니다.
번호: 72100
이름: 도메인.일반 도메인 이름 형식
image\u id:12574
size\u id:66
region\u id:1
backups\u active: 비어 있음
ip\U 주소: 192.34.56.29
상태: 활동
Droplet\u ID 72100, Image\u ID (스냅샷) 12574
이 물방울을 스냅하려면 다음 줄에 대한 설명을 취소하고 실행하십시오.
스냅샷 72100 도메인.일반 도메인 이름 형식
도메인이라는 물방울 72100의 스냅샷을 찍다.일반 도메인 이름 형식
{“status”:“OK”,“event\u id”:473473}
이렇게 하면 물방울의 스냅샷을 생성하여 "domain.com"으로 저장합니다.

이 물방울을 512MB에서 1GB로 수직으로 줄이려면 다음 줄을 취소하고 실행하십시오.
크기 조정 72100 63
물방울 ID: 72100을 크기 ID: 63으로 조정
{“status”:“OK”,“event\u id”:473530}
이 물방울을 수평으로 축소하려면 이 줄에 주석을 지우고 Scaler를 실행하여 새 물방울을 회전합니다.상해:
도메인을 회전합니다.com 66 12574 1
새로운 액적역을 회전하다.일반 도메인 이름 형식
{“status”:“OK”,“droplet”:{“id”:72124,“name”:“domain.com”,“image\u id”:12574,“size\u id”:66,“event\u id”:473545}}
최신 DigitalOcean 물방울 크기 및 ID:
신분증
이름
66
512MB
63
1GB
62
2GB
64
4GB
65
8GB
61
16GB
육십
32GB
칠십
48GB
칠십
48GB
69
64GB
68
96GB
최근 Digital Ocean은 512MB의 RAM과 CPU 코어 1개가 장착된 최소 한 방울로 SSD 드라이브로 업그레이드되었습니다.다음은 1GB RAM 및 CPU 코어 1개입니다.백엔드에서 Nginx를 실행하고 PHP-FPM에서 PHP 요청을 처리하며 Nginx 앞에서 Varnish 캐시를 실행할 수 있습니다.
Nginx와 PHP+FPM을 사용하는 Varnish 캐시의 기준 테스트는 초당 420개의 요청을 표시하고, Nginx와 PHP-FPM은 각각 초당 22.25개의 요청을 제공합니다.
액체로 말하자면 재미있는 자기 복제 VM의 개념도 있다.호스트는 과부하를 인식하고 클론 자체를 결정하여 DNS 사이클에 클론을 추가할 수 있습니다.이를 실현하는 방법은 매우 많은데 가장 간단한 방법은 SNMPD와 Nagios를 이용하여 데이터를 윤문하는 것이다.
모든 VM에 공개 키가 있는 배열 VM을 설정할 수도 있습니다.자동화 정도는 당신의 상상력과 복잡성에 대한 갈망에 달려 있다.
복제할 데이터 방울에는 Nagios, SNMPD, NRPE, SSH 키 등 필요한 모니터링 도구가 있습니다.새 컨텐트를 이 서버에 동기화하여 프로세스를 더욱 자동화할 수 있습니다.웹 페이지를 업로드하고crontab를 사용하여 모든 동기화를 완성하는 관리 프로그램을 설정할 수 있습니다.이 관리 방울은 모든 방울에 키를 놓아야 하며, 이 관리 방울의 IP 주소에서만 SSH 포트를 사용할 수 있습니다.이 관리자에 OpenVPN을 연결할지 여부를 결정합니다.
스냅샷부터 새 웹 서버를 회전하려면 서버를 교대 상태로 두어야 합니다.이것은 DNS 순환, Nginx 역방향 에이전트, 전용 부하 평형기 설정 등을 통해 실현할 수 있다.선택은 인프라 요구 사항과 예산에 따라 달라집니다.
브라트 하미토프