AWS Elastic Load Balancer (ELB) は、開発者がトラフィックを複数のインスタンスとコンテナに分散して高可用性とスケーラビリティを実現できるように設計されたマネージド負荷分散サービスです。この記事では、Go 言語で AWS Elastic Load Balancer を使用する方法に関する完全なガイドを提供します。学習内容:
AWS Elastic Load Balancer には 3 種類のロード バランサーが用意されています。
ロード バランサーのタイプを選択するときは、アプリケーションのニーズと特性に基づいて選択する必要があります。
ELB を使用する前に、AWS アカウントを持っており、Amazon EC2 サービスが有効になっていることを確認する必要があります。次に、AWS コンソールで Application Load Balancer (ALB) を作成して構成します。
ステップ 1: AWS コンソールにログインし、[Elastic Load Balancer] を選択します。
ステップ 2: [ロード バランサーの作成] ボタンをクリックします。
ステップ 3: 「」を選択します。 Application Load Balancer" "ロード バランサーを入力して名前を付けます。
ステップ 4: ロード バランサーのリスナーを構成し、処理するプロトコルとポートを選択します。
ステップ 5: ターゲット グループを追加して構成します。 、ロード バランサー サーバーのバックエンド サービスを指定します
ステップ 6: 作成と構成を完了し、ロード バランサーのステータスを確認し、サービスが正常に実行されていることを確認します
ELB を作成して構成したら、Go 言語での負荷分散に ELB の使用を開始できます。この例では、一連のバックエンド インスタンスを作成し、これらのインスタンスにトラフィックを転送すると想定しています。
まず、AWS SDK for Go を使用する必要があります。これは、AWS サービス操作を実行するための公式 Go 言語ライブラリです。インストール方法については公式ドキュメントを参照してください。
依存関係パッケージを導入します:
import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ec2" )
次に、AWS 構成と証明書情報をロードする必要があります:
sess, err := session.NewSession(&aws.Config{ Region: aws.String("us-west-2"), // your AWS region }) if err != nil { // handle error } svc := ec2.New(sess)
次に、「DescribeInstances」メソッドを使用して、ターゲット インスタンスを指定し、「RegisterTargets」メソッドを使用してターゲット インスタンスをターゲット グループに登録します。
result, err := svc.DescribeInstances(nil) if err != nil { // handle error } var targets []*elbv2.TargetDescription for _, reservation := range result.Reservations { for _, instance := range reservation.Instances { targets = append(targets, &elbv2.TargetDescription{ Id: aws.String(*instance.InstanceId), Port: aws.Int64(80), // your instance port }) } } _, err = svcELB.RegisterTargets(&elbv2.RegisterTargetsInput{ Targets: targets, TargetGroupArn: aws.String("your-target-group-arn"), // your target group ARN }) if err != nil { // handle error }
最後に、HTTP クライアントを使用してロード バランサーの DNS 名にリクエストを送信し、値を取得します。ロードバランサーの:
client := &http.Client{ Timeout: time.Second * 10, } resp, err := client.Get("http://your-load-balancer-url") if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } fmt.Println(string(body))
上記の手順により、AWS Elastic Load Balancer を使用して Go 言語でロード バランシングを行うことができます。
概要
AWS Elastic Load Balancer は、高可用性、耐障害性、スケーラビリティ、自動化を実現するために使用できる強力な負荷分散サービスです。この記事では、Go 言語で AWS ELB を使用するための完全なガイドを紹介します。開発者にとって役立つことを願っています。
以上がGo での AWS Elastic Load Balancer の使用: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。