Menggunakan Template AWS Blockchain untuk Ethereum - AWS Blockchain Templates

AWS Blockchain Templates dihentikan pada 30 April 2019. Tidak ada pembaruan lebih lanjut untuk layanan ini atau dokumentasi pendukung ini akan dilakukan. Untuk pengalaman Blockchain Terkelola terbaikAWS, kami sarankan Anda menggunakan Amazon Managed Blockchain (AMB). Untuk mempelajari lebih lanjut tentang memulai dengan Amazon Managed Blockchain, lihat lokakarya kami tentang Hyperledger Fabric, atau blog kami tentang penerapan node Ethereum. Jika Anda memiliki pertanyaan tentang AMB atau memerlukan dukungan lebih lanjut, hubungi AWS Support atau tim AWS akun Anda.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan Template AWS Blockchain untuk Ethereum

Ethereum adalah kerangka kerja blockchain yang menjalankan kontrak cerdas menggunakan Solidity, bahasa khusus Ethereum. Homestead adalah rilis Ethereum terbaru. Untuk informasi selengkapnya, lihat Dokumentasi Ethereum Homestead dan dokumentasi Solidity.

Tautan ke Peluncuran

Lihat Memulai dengan AWS Blockchain Templates untuk tautan yang akan diluncurkan AWS CloudFormation di Wilayah tertentu menggunakan templat Ethereum.

Opsi Ethereum

Saat Anda mengonfigurasi jaringan Ethereum menggunakan templat, Anda membuat pilihan yang menentukan persyaratan berikut:

Memilih Platform Kontainer

AWS Blockchain Templates menggunakan wadah Docker yang disimpan di Amazon ECR untuk menyebarkan perangkat lunak blockchain. Template AWS Blockchain untuk Ethereum menawarkan dua pilihan untuk Platform Kontainer:

  • ecs —Menentukan bahwa Ethereum berjalan pada cluster Amazon ECS dari instans Amazon EC2.

  • docker-local —Menentukan bahwa Ethereum berjalan pada satu instans EC2.

Menggunakan Platform Amazon ECS Container

Dengan Amazon ECS, Anda membuat jaringan Ethereum di klaster ECS yang terdiri dari beberapa instans EC2, dengan Application Load Balancer dan sumber daya terkait. Untuk informasi selengkapnya tentang penggunaan konfigurasi Amazon ECS, lihat Memulai dengan AWS Blockchain Templates tutorialnya.

Diagram berikut menggambarkan jaringan Ethereum yang dibuat menggunakan template dengan opsi platform kontainer ECS:

Menggunakan Platform Docker-Local

Atau, Anda dapat meluncurkan kontainer Ethereum dalam satu instans Amazon EC2. Semua kontainer berjalan pada satu instans EC2. Ini adalah pengaturan yang disederhanakan.

Diagram berikut menggambarkan jaringan Ethereum yang dibuat menggunakan template dengan opsi platform wadah docker-local:

Memilih Jaringan Ethereum Pribadi atau Publik

Memilih nilai ID Jaringan Ethereum selain 1—4 menciptakan node Ethereum pribadi yang berjalan dalam jaringan yang Anda tentukan, menggunakan parameter jaringan pribadi yang Anda tentukan.

Ketika Anda memilih ID Jaringan Ethereum dari 1-4, node Ethereum yang Anda buat digabungkan ke jaringan Ethereum publik. Anda dapat mengabaikan pengaturan jaringan pribadi dan defaultnya. Jika Anda memilih untuk bergabung dengan node Ethereum ke jaringan Ethereum publik, pastikan bahwa layanan yang sesuai di jaringan Anda dapat diakses oleh internet.

Mengubah Akun Default dan Frasa Mnemonik

Frasa mnemonik adalah kumpulan kata acak yang dapat Anda gunakan untuk menghasilkan dompet Ethereum (yaitu, pasangan kunci pribadi/publik) untuk akun terkait di jaringan apa pun. Frasa mnemonik dapat digunakan untuk mengakses Ether untuk akun terkait. Kami membuat mnemonic default yang terkait dengan akun default yang digunakan template Ethereum.

Awas

Gunakan akun default dan frase mnemonik terkait hanya untuk tujuan pengujian. Jangan mengirim Eter asli menggunakan kumpulan akun default karena siapa pun yang memiliki akses ke frasa mnemonik dapat mengakses atau mencuri Eter dari akun. Sebagai gantinya, tentukan akun khusus untuk tujuan produksi. Frasa mnemonik yang terkait dengan akun default adalah. outdoor father modify clever trophy abandon vital feel portion grit evolve twist

Prasyarat

Saat Anda mengatur jaringan Ethereum menggunakan AWS Blockchain Template untuk Ethereum, persyaratan minimum yang tercantum di bawah ini harus dipenuhi. Template membutuhkan AWS komponen yang terdaftar untuk masing-masing kategori berikut:

Prasyarat untuk Mengakses Sumber Daya Ethereum

Prasyarat Untuk Platform ECS Untuk Docker-Local

Sebuah key pair Amazon EC2 yang dapat Anda gunakan untuk mengakses instans EC2. Kuncinya harus ada di Wilayah yang sama dengan cluster ECS dan sumber daya lainnya.

Komponen yang menghadap ke internet, seperti host benteng atau penyeimbang beban yang menghadap ke internet, dengan alamat internal tempat lalu lintas diizinkan masuk ke Application Load Balancer. Ini diperlukan dengan platform ECS karena template membuat penyeimbang beban internal untuk alasan keamanan. Ini diperlukan dengan platform docker-local ketika instans EC2 berada di subnet pribadi, yang kami rekomendasikan. Untuk informasi tentang mengonfigurasi host bastion, lihat. Buat Host Bastion

✔ (dengan subnet pribadi)

Prasyarat IAM

Prasyarat Untuk Platform ECS Untuk Docker-Local

Prinsipal IAM (pengguna atau grup) yang memiliki izin untuk bekerja dengan semua layanan terkait.

Profil instans Amazon EC2 dengan izin yang sesuai untuk instans EC2 untuk berinteraksi dengan layanan lain. Untuk informasi selengkapnya, lihat To create an EC2 instance profile.

Peran IAM dengan izin untuk Amazon ECS untuk berinteraksi dengan layanan lain. Untuk informasi selengkapnya, lihat Membuat Peran dan Izin ECS.

Prasyarat Grup Keamanan

Prasyarat Untuk Platform ECS Untuk Docker-Local

Grup keamanan untuk instans EC2, dengan persyaratan berikut:

  • Aturan keluar yang memungkinkan lalu lintas ke 0.0.0.0/0 (default).

  • Aturan masuk yang memungkinkan semua lalu lintas dari dirinya sendiri (grup keamanan yang sama).

  • Aturan masuk yang memungkinkan semua lalu lintas dari grup keamanan untuk Application Load Balancer.

  • Aturan masuk yang memungkinkan HTTP (port 80), EthStats (disajikan pada port 8080), JSON RPC melalui HTTP (port 8545), dan SSH (port 22) dari sumber eksternal tepercaya, seperti IP CIDR komputer klien Anda.

Grup keamanan untuk Application Load Balancer, dengan persyaratan sebagai berikut:

  • Aturan masuk yang memungkinkan semua lalu lintas dari dirinya sendiri (grup keamanan yang sama).

  • Aturan masuk yang memungkinkan semua lalu lintas dari grup keamanan untuk instans EC2.

  • Aturan keluar yang mengizinkan semua lalu lintas hanya ke grup keamanan untuk instans EC2. Untuk informasi selengkapnya, lihat Buat Grup Keamanan.

  • Jika mengaitkan grup keamanan yang sama ini dengan host bastion, aturan masuk yang memungkinkan lalu lintas SSH (port 22) dari sumber tepercaya.

  • Jika host bastion atau komponen lain yang menghadap ke internet berada dalam grup keamanan yang berbeda, aturan masuk yang memungkinkan lalu lintas dari komponen tersebut.

Prasyarat VPC

Prasyarat Untuk Platform ECS Untuk Docker-Local

Alamat IP Elastis, yang digunakan untuk mengakses layanan Ethereum.

Subnet untuk menjalankan instans EC2. Kami sangat merekomendasikan subnet pribadi.

Dua subnet yang dapat diakses publik. Setiap subnet harus berada di Availability Zone yang berbeda satu sama lain, dengan satu di Availability Zone yang sama dengan subnet untuk instans EC2.

Contoh Izin IAM untuk Profil Instans EC2 dan Peran ECS

Anda menentukan ARN profil instans EC2 sebagai salah satu parameter saat Anda menggunakan templat. Jika Anda menggunakan platform kontainer ECS, Anda juga menentukan peran ECS ARN. Kebijakan izin yang dilampirkan pada peran ini memungkinkan sumber daya dan instans AWS di klaster Anda berinteraksi dengan sumber daya AWS lainnya. Untuk informasi lebih lanjut, lihat Peran IAM dalam Panduan Pengguna IAM. Gunakan pernyataan kebijakan dan prosedur di bawah ini sebagai titik awal untuk membuat izin.

Contoh Kebijakan Izin untuk Profil Instans EC2

Kebijakan izin berikut menunjukkan tindakan yang diizinkan untuk profil instans EC2 saat Anda memilih platform kontainer ECS. Pernyataan kebijakan yang sama dapat digunakan dalam platform container docker-local, dengan kunci ecs konteks dihapus untuk membatasi akses.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:CreateCluster", "ecs:DeregisterContainerInstance", "ecs:DiscoverPollEndpoint", "ecs:Poll", "ecs:RegisterContainerInstance", "ecs:StartTelemetrySession", "ecs:Submit*", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents", "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:UpdateItem" ], "Resource": "*" } ] }

Membuat Peran dan Izin ECS

Untuk izin yang dilampirkan pada peran ECS, kami sarankan Anda memulai dengan kebijakan izin ContainerServiceRoleAmazonEC2. Gunakan prosedur berikut untuk membuat peran dan melampirkan kebijakan izin ini. Gunakan konsol IAM untuk melihat sebagian besar up-to-date izin dalam kebijakan ini.

Untuk membuat peran IAM untuk Amazon ECS
  1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Dalam panel navigasi, pilih Roles (Peran), Create role (Buat Peran).

  3. Di bawah Pilih jenis entitas tepercaya, pilih Layanan AWS.

  4. Untuk Choose the service that will use this role (Pilih layanan yang akan menggunakan peran ini), pilih Elastic Container Service.

  5. Di bawah Pilih kasus penggunaan Anda, pilih Layanan Kontainer Elastis, Berikutnya:Izin.

  6. Untuk kebijakan Izin, biarkan kebijakan default (AmazonEC2ContainerServiceRole) dipilih, dan pilih Berikutnya:Tinjau.

  7. Untuk nama Peran, masukkan nilai yang membantu Anda mengidentifikasi peran, seperti ECS. RoleForEthereum Untuk Deskripsi Peran, masukkan ringkasan singkat. Perhatikan nama peran untuk nanti.

  8. Pilih Buat peran.

  9. Pilih peran yang baru saja Anda buat dari daftar. Jika akun Anda memiliki banyak peran, Anda dapat mencari nama peran.

  10. Salin nilai ARN Peran dan simpan sehingga Anda dapat menyalinnya lagi. Anda memerlukan ARN ini saat membuat jaringan Ethereum.

Menghubungkan ke Sumber Daya Ethereum

Setelah tumpukan root yang Anda buat dengan template menunjukkan CREATE_COMPLETE, Anda dapat terhubung ke sumber daya Ethereum menggunakan konsol. AWS CloudFormation Cara Anda terhubung tergantung pada platform kontainer yang Anda pilih, ECS atau docker-local:

  • ECS —Tab Output dari tumpukan root menyediakan tautan ke layanan yang berjalan pada Application Load Balancer. URL ini tidak dapat diakses secara langsung karena alasan keamanan. Untuk terhubung, Anda dapat mengatur dan menggunakan host bastion untuk koneksi proxy ke mereka. Untuk informasi selengkapnya, lihat Koneksi Proxy Menggunakan Host Bastion di bawah ini.

  • docker-local —Anda terhubung menggunakan alamat IP instans EC2 hosting layanan Ethereum seperti yang tercantum di bawah ini. Gunakan konsol EC2 untuk menemukan EC2-IP-address dari instance yang dibuat template.

    • EthStats—Gunakan http://EC2-IP-address

    • EthExplorer—Gunakan http://EC2-IP-Alamat: 8080

    • EthJsonRpc—Gunakan http://EC2-IP-Alamat: 8545

    Jika Anda menentukan subnet publik untuk Ethereum Network Subnet ID (Daftar Subnet VPC untuk digunakan dalam template), Anda dapat terhubung secara langsung. Klien Anda harus menjadi sumber terpercaya lalu lintas masuk untuk SSH (port 22), serta port yang terdaftar. Ini ditentukan oleh Grup Keamanan EC2 yang Anda tentukan menggunakan Template AWS Blockchain untuk Ethereum.

    Jika Anda menentukan subnet pribadi, Anda dapat mengatur dan menggunakan host bastion untuk koneksi proxy ke alamat ini. Untuk informasi selengkapnya, lihat Koneksi Proxy Menggunakan Host Bastion di bawah ini.

Koneksi Proxy Menggunakan Host Bastion

Dengan beberapa konfigurasi, layanan Ethereum mungkin tidak tersedia untuk umum. Dalam kasus tersebut, Anda dapat terhubung ke sumber daya Ethereum melalui host benteng. Untuk informasi selengkapnya tentang host bastion, lihat Linux Bastion Host Architecture di Panduan Mulai Cepat Linux Bastion Host.

Host bastion adalah instance EC2. Pastikan persyaratan berikut terpenuhi:

  • Instans EC2 untuk host bastion berada dalam subnet publik dengan Auto-assign Public IP diaktifkan dan yang memiliki gateway internet.

  • Host bastion memiliki key pair yang memungkinkan koneksi ssh.

  • Host bastion dikaitkan dengan grup keamanan yang memungkinkan lalu lintas SSH masuk dari klien yang terhubung.

  • Grup keamanan yang ditugaskan ke host Ethereum (misalnya, Application Load Balancer jika ECS adalah platform container, atau host EC2 instance jika docker-local adalah platform container) memungkinkan lalu lintas masuk pada semua port dari sumber dalam VPC.

Dengan pengaturan host bastion, pastikan bahwa klien yang terhubung menggunakan host bastion sebagai proxy. Contoh berikut menunjukkan pengaturan koneksi proxy menggunakan Mac OS. Ganti BastionIP dengan alamat IP instans bastion host EC2 dan MySshKey.pem dengan file key pair yang Anda salin ke host bastion.

Pada baris perintah, ketik yang berikut ini:

ssh -i mySshKey.pem ec2-user@BastionIP -D 9001

Ini mengatur penerusan port untuk port 9001 pada mesin lokal ke host benteng.

Selanjutnya, konfigurasikan browser atau sistem Anda untuk menggunakan proxy SOCKS untuklocalhost:9001. Misalnya, menggunakan Mac OS, pilih System Preferences, Network, Advanced, pilih SOCKS proxy, dan ketik localhost: 9001.

Menggunakan FoxyProxy Standar dengan Chrome, pilih Alat Lainnya, Ekstensi. Di bawah FoxyProxy Standar, pilih Detail, Opsi ekstensi, Tambahkan Proksi Baru. Pilih Konfigurasi Proxy Manual. Untuk Host atau IP Address type localhost dan untuk tipe Port 9001. Pilih proxy SOCKS? , Simpan.

Anda sekarang harus dapat terhubung ke alamat host Ethereum yang tercantum dalam output template.