GCP에서 Terraform으로 Geth 시작
사용법
https://github.com/k2wanko/gcp-geth
git clone
다음 명령을 실행합니다.gcloud auth application-default login
terraform에서 사용하는 로그인입니다.새 프로젝트에서 GCE가 활성화되지 않은 경우 다음 명령을 실행하여 활성화합니다.
실행
gcloud services enable compute.googleapis.com
terraform apply
.project_id
를 묻습니다. 입력하십시오.$ terraform apply
var.project_id
Enter a value: [project_id]
geth attach
terraform apply
성공 후 instance_name
출력되므로 다음 명령을 사용하여 SSH Port Forwarding에서 geth
httpport을 로컬 시스템에 매핑합니다.gcloud config set project [project_id]
gcloud compute ssh [instance_name] -- -N -L 8545:localhost:8545
다른 터미널 실행geth attach
을 열면console에 접근할 수 있습니다.geth attach rpc:http://localhost:8545
geth의 시작 옵션은 main.tf에 기록되어 있으니 적당히 덮어쓰고 사용하십시오.해설
지금부터 해설main.tf의 내용을 시작하겠습니다.
기본 개념은'GCP의 무료 테두리로 수납'이기 때문에 GKE가 아닌 GCE를 사용했다.
우선 GCE의 무료 상자는 아래 3개 구역
f1-micro
의 실례와 30GB의 HDD Storage, 1GB의 외부 네트워크 전송량이다.이것은 매달 무료로 사용할 수 있다.us-west1
을 선택했다.구역 내의 구역은 어디든지 사용할 수 있습니다.shuffle를 이용하여 세 군데에서 무작위로 선택하세요.
resource "random_shuffle" "zone" {
input = ["us-west1-a", "us-west1-b", "us-west1-c"]
result_count = 1
}
다음은 인스턴스 설정입니다.google_compute_instance를 사용하여 GCE 인스턴스를 생성합니다.resource "google_compute_instance" "geth" {
name = "geth-${random_integer.instance_id_suffix.id}"
machine_type = "f1-micro"
boot_disk {
initialize_params {
size = 30
type = "pd-standard"
image = "cos-cloud/cos-stable"
}
}
name
에 인스턴스 이름이 설정되어 있습니다.machine_type
는 무료 서류 설정f1-micro
이다.boot_disk
size
는 GB로 설정됩니다.무료 최대 한도액30
을 설정했다.type
는pd-standard
인데 이것도 무료 테두리를 위해 고정된 것이다.네트워크를 통해 HDD를 사용합니다.image
어떤 OS를 사용하는지에 대해 이번 Docker는 Geth를 이용하기 때문에'Container-Optimized OS'를 사용한다.Container-Optimzed OS 정보
Container-Optimzed OS는 Docker 컨테이너를 실행하기에 가장 적합한 GCE용 OS입니다.
GCE 기능의 metadata에 필요한 설정만 추가하면 Docker 컨테이너를 빠르게 실행하고 OS 업데이트도 자동으로 할 수 있다.
metadata = {
cos-metrics-enabled = true
google-logging-enabled = true
user-data = <<EOF
#cloud-config
write_files:
- path: /etc/systemd/system/ethereum.service
permissions: 0644
설정cos-metrics-enabled
은 클라우드 모니터에 인스턴스의 메트릭을 기록할 수 있습니다.google-logging-enabled
Google에서 준비한flumentd를 시작하여 실례적인 로그를 Cloud Logging으로 내보냅니다.user-data
에는 Docker 용기를 시스템의 서비스로 설정하는 cloud-config가 기술되어 있다.Geth의 볼륨을 설치하기 전에
/var/ethereum
를 선택한 것은 COS의 제한으로 인해 영구화하려는 데이터를 /home
또는 /var
에 저장해야 하기 때문입니다.저는 /opt
파 또는 /etc
파입니다. 주의하세요.재부팅하면 데이터가 사라집니다.자세한 내용은 문서를 확인하세요.
Reference
이 문제에 관하여(GCP에서 Terraform으로 Geth 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/k2wanko/articles/b308dc4bddbdb0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)