翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
QuickStart: Elastic Beanstalk に Go アプリケーションをデプロイする
この QuickStart チュートリアルでは、Go アプリケーションを作成して AWS Elastic Beanstalk 環境にデプロイする手順を示します。
注記
この QuickStart チュートリアルは、デモンストレーションを目的としています。このチュートリアルで作成したアプリケーションを本稼働トラフィックに使用しないでください。
セクション
AWS アカウント
まだ AWS をご利用でない場合は、AWS アカウントを作成する必要があります。サインアップすることによって Elastic Beanstalk とその他の AWS のサービスにアクセスできるようになります。
AWS アカウントが既にある場合は、前提条件 に進むことができます。
AWS アカウントへのサインアップ
AWS アカウント がない場合は、以下のステップを実行して作成します。
AWS アカウントにサインアップするには
https://portal.aws.amazon.com/billing/signup
を開きます。 オンラインの手順に従います。
サインアップ手順の一環として、通話呼び出しを受け取り、電話キーパッドで検証コードを入力するように求められます。
AWS アカウント にサインアップすると、AWS アカウントのルートユーザー が作成されます。ルートユーザーには、アカウントのすべてのAWS のサービスとリソースへのアクセス権があります。セキュリティのベストプラクティスとして、ユーザーに管理アクセスを割り当て、ルートユーザーのみを使用してルートユーザーアクセスが必要なタスクを実行してください。
サインアップ処理が完了すると、AWS からユーザーに確認メールが送信されます。https://aws.amazon.com/
管理アクセスを持つユーザーを作成する
AWS アカウント にサインアップしたら、AWS アカウントのルートユーザー をセキュリティで保護し、AWS IAM Identity Center を有効にして、管理ユーザーを作成します。これにより、日常的なタスクにルートユーザーを使用しないようにします。
AWS アカウントのルートユーザーをセキュリティで保護する
-
ルートユーザー] を選択し、AWS アカウント のメールアドレスを入力して、アカウント所有者として AWS Management Console
にサインインします。次のページでパスワードを入力します。 ルートユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドのルートユーザーとしてサインインするを参照してください。
-
ルートユーザーの多要素認証 (MFA) を有効にします。
手順については、「IAM ユーザーガイド」のAWS アカウント のルートユーザーの仮想 MFA デバイスを有効にする (コンソール)を参照してください。
管理アクセスを持つユーザーを作成する
-
IAM アイデンティティセンターを有効にします。
手順については、「AWS IAM Identity Center ユーザーガイド」の「AWS IAM Identity Center の有効化」を参照してください。
-
IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。
IAM アイデンティティセンターディレクトリ をアイデンティティソースとして使用するチュートリアルについては、「AWS IAM Identity Center ユーザーガイド」の「デフォルト IAM アイデンティティセンターディレクトリを使用したユーザーアクセスの設定」を参照してください。
管理アクセス権を持つユーザーとしてサインインする
-
IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。
IAM Identity Center ユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドのAWS アクセスポータルにサインインするを参照してください。
前提条件
注記
2024 年 10 月 1 日より後に作成された AWS アカウントでは、新しい環境を正常に作成するためのオプションを設定することが一時的に必要です。新しいアカウントと同様に、アカウントがまだ環境を持っていないリージョンでのみ、既存のアカウントは同じアクションを実行する必要があります。詳細については、「テンプレートの起動」を参照してください。
このガイドの手順に従うには、run command のためのコマンドラインターミナルまたはシェルが必要になります。コマンドは、該当する場合、プロンプト記号 ($) と現在のディレクトリの名前が前に付けられて、リストに示されます。
~/eb-project$ this is a command
this is output
Linux および macOS では、任意のシェルとパッケージ管理者を使用できます。Windows では、Linux 用の Windows サブシステムをインストール
EB CLI
このチュートリアルでは、Elastic Beanstalk コマンドラインインターフェイス (EB CLI) を使用します。EB CLI をインストールおよび設定する手順の詳細については、「Elastic Beanstalk コマンドラインインターフェイスをインストールする」および「EB CLI の設定」を参照してください。
ステップ 1: Go アプリケーションを作成する
プロジェクトディレクトリを作成します。
~$ mkdir eb-go
~$ cd eb-go
次に、Elastic Beanstalk を使用してデプロイするアプリケーションを作成します。ここでは、"Hello World" という RESTful ウェブサービスを作成します。
この例では、サービスへのアクセスに使用されるパスに基づいて変更されるカスタマイズされた挨拶を出力します。
このディレクトリに以下のコンテンツで application.go
という名前のテキスト・ファイルを作成します。
例 ~/eb-go/application.go
package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { if r.URL.Path == "/" { fmt.Fprintf(w, "Hello World! Append a name to the URL to say hello. For example, use %s/Mary to say hello to Mary.", r.Host) } else { fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:]) } } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":5000", nil) }
ステップ 2: EB CLI を使用して Go アプリケーションをデプロイする
次に、アプリケーション環境を作成し、設定済みのアプリケーションを Elastic Beanstalk を使用してデプロイします。
環境を作成し、Go アプリケーションをデプロイするには
-
eb init コマンドを使用して EB CLI リポジトリを初期化します。
~/eb-go$
eb init -p go go-tutorial --region us-east-2
Application go-tutorial has been created.このコマンドは、
go-tutorial
という名前のアプリケーションを作成し、ローカルリポジトリを設定して最新の Go プラットフォームバージョンで環境を作成します。 -
(オプション) eb init を再度実行してデフォルトのキーペアを設定し、アプリケーションを実行している EC2 インスタンスに SSH を使用して connect できるようにします。
~/eb-go$
eb init
Do you want to set up SSH for your instances? (y/n):y
Select a keypair. 1) my-keypair 2) [ Create new KeyPair ]1 つのキーペアがすでにある場合はそれを選択するか、またはプロンプトに従ってキーペアを作成します。プロンプトが表示されないか設定を後で変更する必要がない場合は、eb init -i を実行します。
-
環境を作成し、eb create を使用してそこにアプリケーションをデプロイします。Elastic Beanstalk は、アプリケーションの zip ファイルを自動的にビルドし、ポート 5000 で起動します。
~/eb-go$
eb create go-env
Elastic Beanstalk が環境を作成するのに約 5 分かかります。
ステップ 3: Elastic Beanstalk でアプリケーションを実行する
環境を作成するプロセスが完了したら、eb open でウェブサイトを開きます。
~/eb-go$ eb open
お疲れ様でした。Elastic Beanstalk で Go アプリケーションをデプロイしました。これにより、アプリケーション用に作成されたドメイン名を使用してブラウザ Window が開きます。
ステップ 4: クリーンアップする
アプリケーションでの作業が終了したら、環境を終了できます。Elastic Beanstalk は、環境に関連付けられているすべての AWS リソースを終了します。
EB CLI を使用して Elastic Beanstalk 環境を終了するには、次のコマンドを実行します。
~/eb-go$ eb terminate
アプリケーションの AWS リソース
1 つのインスタンスアプリケーションを作成しました。1 つの EC2 インスタンスを持つ簡単なサンプルアプリケーションとして動作するため、ロードバランシングや自動スケーリングは必要ありません。1 つのインスタンスアプリケーションの場合、Elastic Beanstalk は次の AWS リソースを作成します。
-
EC2 インスタンス – 選択したプラットフォームでウェブアプリケーションを実行するよう設定された Amazon EC2 仮想マシン。
各プラットフォームは、それぞれ特定の言語バージョン、フレームワーク、ウェブコンテナ、またはそれらの組み合わせをサポートするための、さまざまなソフトウェア、設定ファイル、スクリプトを実行します。ほとんどのプラットフォームでは、ウェブアプリケーションの前にウェブトラフィックを処理するリバースプロキシとして Apache または nginx のいずれかを使用します。そのプロキシがリクエストをアプリケーションに転送し、静的アセットを提供して、アクセスログとエラーログを生成します。
-
インスタンスセキュリティグループ – ポート 80 上の受信トラフィックを許可するよう設定された Amazon EC2 セキュリティグループ。このリソースでは、ロードバランサーからの HTTP トラフィックが、ウェブ・アプリケーションを実行している EC2 インスタンスに達することができます。デフォルトでは、トラフィックは他のポート上で許可されません。
-
Amazon S3 バケット – Elastic Beanstalk の使用時に作成されるソースコード、ログ、その他のアーティファクトの保存場所。
-
Amazon CloudWatch アラーム – 環境内のインスタンスの負荷を監視する 2 つの CloudWatch アラーム。負荷が高すぎる、または低すぎる場合にトリガーされます。アラームがトリガーされると、Auto Scaling グループはレスポンスとしてスケールアップまたはダウンを行います。
-
AWS CloudFormation スタック – 環境内でリソースを起動して、設定の変更を伝達するために、Elastic Beanstalk は AWS CloudFormation を使用します。リソースは、AWS CloudFormation コンソール
に表示できるテンプレートで定義されます。 -
ドメイン名 – ウェブ・アプリケーションまでのルートとなるドメイン名であり、
subdomain
.region
.elasticbeanstalk.com の形式です。
Elastic Beanstalk は、これらのリソースをすべて管理します。環境を終了すると、Elastic Beanstalk は含まれているすべてのリソースを終了します。
次のステップ
アプリケーションを実行する環境を手に入れた後、アプリケーションの新しいバージョンや、異なるアプリケーションをいつでもデプロイできるようになります。新しいアプリケーションバージョンのデプロイは、プロビジョニングや EC2 インスタンスの再開が必要ないため、非常に素早く行えます。Elastic Beanstalk コンソールを使用して新しい環境を調べることもできます。詳細な手順については、このガイドの「開始方法」の章の「環境を探索する」を参照してください。
1 つ以上のサンプルアプリケーションをデプロイし、ローカルでアプリケーションを開発して実行する準備が整ったら、「Elastic Beanstalk 用の Go 開発環境の設定」を参照します。
Elastic Beanstalk コンソールでデプロイする
Elastic Beanstalk コンソールを使用してサンプルアプリケーションを起動することもできます。詳細な手順については、このガイドの「開始方法」の章の「サンプルアプリケーションを作成する」を参照してください。