Elastic Beanstalk Go プラットフォームを使用する - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Elastic Beanstalk Go プラットフォームを使用する

このトピックでは、Elastic Beanstalk で Go アプリケーションを設定、構築、実行する方法について説明します。

AWS Elastic Beanstalk は、Go プログラミング言語のさまざまなバージョンの多数のプラットフォームブランチをサポートしています。完全なリストについては、AWS Elastic Beanstalk プラットフォームドキュメントの「Go」を参照してください。

シンプルな Go アプリケーションは、2 つの方法でアプリケーションをデプロイすることができます。

  • アプリケーションのメインパッケージを含む application.go という名前のルートの出典ファイルに出典バンドルを提供します。Elastic Beanstalk は、次のコマンドを使用してバイナリを構築します。

    go build -o bin/application application.go

    アプリケーションが構築されると、Elastic Beanstalk はポート 5000 で起動します。

  • [application] という名前のバイナリファイルに出典バンドルを提供します。バイナリファイルは、ソースバンドルのルートまたは出典バンドルの bin/ ディレクトリにあります。application バイナリファイルを両方の場所に配置すると、Elastic Beanstalk は bin/ ディレクトリのファイルを使用します。

    Elastic Beanstalk は、ポート 5000 でこのアプリケーションを起動します。

どちらの場合も、サポートされている Go プラットフォームブランチでは、 というファイルにモジュール要件を指定することもできますgo.mod。詳細については、Go ブログの Migrating to Go Modules を参照してください。

より複雑な Go アプリケーションは、2 つの方法でアプリケーションをデプロイすることができます。

  • アプリケーションの出典ファイルを含む出典バンドルを、Buildfile および Procfile とともに設定します。Buildfile にはアプリケーションを構築するためのコマンドが含まれ、Procfile にはアプリケーションを実行するための指示が含まれます。

  • アプリケーションのバイナリファイルを含む出典バンドルを、Procfile とともに設定します。Procfile には、アプリケーションを実行するための指示が含まれます。

Go プラットフォームには、静的アセットを提供し、トラフィックをアプリケーションに転送するためのプロキシサーバーが含まれています。アドバンストなシナリオでは、デフォルトのプロキシ設定を拡張または上書きできます。

Elastic Beanstalk Linux ベースのプラットフォームを拡張するさまざまな方法の詳細については、「Elastic Beanstalk Linux プラットフォームの拡張」を参照してください。

Go 環境の設定

Go プラットフォーム設定では、Amazon EC2インスタンスの動作を微調整できます。Elastic Beanstalk コンソールを使用して、Elastic Beanstalk 環境の Amazon EC2インスタンス設定を編集できます。

Elastic Beanstalk コンソールを使用して、Amazon S3 へのログローテーションを有効にでき、アプリケーションが環境から読むことができる変数を設定します。

Elastic Beanstalk コンソールで Go 環境を設定するには
  1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [更新、モニタリング、ログ] の設定カテゴリで、[編集] を選択します。

ログオプション

[Log Options (ログオプション)] セクションには、2 つの設定があります。

  • インスタンスプロファイル – アプリケーションに関連付けられた Amazon S3 バケットへのアクセス許可が付与されているインスタンスプロファイルを指定します。

  • Amazon S3 へのログファイルのローテーションを有効にする – アプリケーションの Amazon EC2インスタンスのログファイルをアプリケーションに関連付けられた Amazon S3 バケットにコピーするかどうかを指定します。

静的ファイル

パフォーマンスを向上させるには、静的ファイル セクションを使用して、ウェブアプリケーション内の一連のディレクトリから静的ファイル ( HTMLやイメージなど) を提供するようにプロキシサーバーを設定できます。ディレクトリごとに、仮想パスをディレクトリマッピングに設定します。プロキシサーバーは、指定されたパスのファイルに対するリクエストを受け取ると、アプリケーションにリクエストをルーティングする代わりにファイルを直接  処理します。

設定ファイルまたは、Elastic Beanstalk コンソールを使用した静的ファイルの設定の詳細については、「静的ファイルの提供」を参照してください。

環境プロパティ

環境プロパティセクションでは、アプリケーションを実行している Amazon EC2インスタンスで環境設定を指定できます。環境プロパティは、キーバリューのペアとしてアプリケーションに渡されます。

Elastic Beanstalk で実行される Go 環境内では、os.Getenv 関数を使用して環境変数にアクセスできます。たとえば、次のコードを使用して可変数に API_ENDPOINT という名前のプロパティを読み取ることができます。

endpoint := os.Getenv("API_ENDPOINT")

詳細については、「環境プロパティとその他のソフトウェアの設定」を参照してください。

Go 設定の名前空間

設定ファイルを使用して、設定オプションを設定し、デプロイの間、他のインスタンス設定タスクをパフォーマンスできます。設定オプションは、Elastic Beanstalk サービスまたは使用できるプラットフォームで定義し、名前空間に整理できます。

Go プラットフォームは、プラットフォーム固有の名前空間を定義しません。aws:elasticbeanstalk:environment:proxy:staticfiles 名前空間を使用して、静的ファイルを配信するようにプロキシを設定できます。詳細と例については、「静的ファイルの提供」を参照してください。

Elastic Beanstalk には、環境をカスタマイズするための多数の設定オプションが用意されています。設定ファイルに加えて、コンソール、保存された設定、EB 、CLIまたは を使用して設定オプションを設定することもできます AWS CLI。詳細については、「設定オプション」を参照してください。

Elastic Beanstalk Go 環境で Amazon Linux AMIプラットフォームバージョン (Amazon Linux 2 より前) を使用している場合は、このセクションの追加情報をお読みください。

メモ
  • このトピックの情報は、Amazon Linux AMI () に基づくプラットフォームブランチにのみ適用されますAL1。AL2023/AL2 プラットフォームブランチは、以前の Amazon Linux AMI (AL1) プラットフォームバージョンと互換性がなく、異なる構成設定 が必要です

  • 2022 年 7 月 18 日、Elastic Beanstalk は Amazon Linux AMI (AL1) に基づくすべてのプラットフォームブランチのステータスを廃止 に設定します。現在および完全にサポートされている Amazon Linux 2023 プラットフォームブランチへの移行の詳細については、「Elastic Beanstalk Linux アプリケーションを Amazon Linux 2023 または Amazon Linux 2 に移行する」を参照してください。

設定ファイルを使用して、設定オプションを設定し、デプロイの間、他のインスタンス設定タスクをパフォーマンスできます。設定オプションは、Elastic Beanstalk サービスまたは使用できるプラットフォームで定義し、名前空間に整理できます。

注記

このトピックの情報は、Amazon Linux AMI () に基づくプラットフォームブランチにのみ適用されますAL1。AL2023/AL2 プラットフォームブランチは、以前の Amazon Linux AMI (AL1) プラットフォームバージョンと互換性がなく、異なる構成設定 が必要です

Amazon Linux AMI Go プラットフォームは、すべてのプラットフォーム でサポートされている名前空間に加えて、1 つのプラットフォーム固有の設定名前空間をサポートします。名前空間 aws:elasticbeanstalk:container:golang:staticfiles により、ウェブアプリケーションのパスを、静的コンテンツをコンテナするアプリケーションの出典バンドルのフォルダにマッピングするオプションを定義できます。

たとえば、この設定ファイルは、プロキシサーバーに staticimages フォルダのファイルを、/images のパスで配信するように指示します。

例 .ebextensions/go-settings.config
option_settings: aws:elasticbeanstalk:container:golang:staticfiles: /html: statichtml /images: staticimages

Elastic Beanstalk には、環境をカスタマイズするための多数の設定オプションが用意されています。設定ファイルに加えて、コンソール、保存された設定、EB 、CLIまたは を使用して設定オプションを設定することもできます AWS CLI。詳細については、「設定オプション」を参照してください。