LoginSignup
4
9

More than 3 years have passed since last update.

Elastic BeanstalkにSpring Bootアプリケーションをデプロイ

Last updated at Posted at 2019-03-30

Spring Bootを使ったJavaアプリケーションをElastic Beanstalk(AWSのPaaS)上にデプロイする手順をざっくりおさらいします。
初投稿なので、至らないところもあるかとは思いますが、ご了承ください。

BeanstalkへのデプロイはAWSのコンソールからでもできるのですが、今回はCIツールからも実行したいので、CLI(EB CLI)を使います。

前提

今回はBeanstalkの設定手順を説明します。
SpringBootアプリの作成については割愛します。
ビルドツールはgradleです。

環境

Mac OSX10.14.3

EB CLIのインストール

homebrewでBeanstalkのCLIをインストールします。

$ brew install awsebcli

AWS CLIのインストール

Access KeyとSecret Access Keyの設定を保存するためにAWSのCLIもインストールします。

$ brew install awscli

アクセスキー設定

$ aws configure
AWS Access Key ID [None]: {アクセスキーを入力}
AWS Secret Access Key [None]: {シークレットアクセスキーを入力}

プロジェクト設定

デプロイはプロジェクトのディレクトリで行います。

$ cd workspace/ebdemo/demo

初めにプロジェクトの設定です。

$ eb init

対話型で設定していきます。

リージョン
Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-south-1 : Asia Pacific (Mumbai)
7) ap-southeast-1 : Asia Pacific (Singapore)
8) ap-southeast-2 : Asia Pacific (Sydney)
9) ap-northeast-1 : Asia Pacific (Tokyo)
10) ap-northeast-2 : Asia Pacific (Seoul)
11) sa-east-1 : South America (Sao Paulo)
12) cn-north-1 : China (Beijing)
13) cn-northwest-1 : China (Ningxia)
14) us-east-2 : US East (Ohio)
15) ca-central-1 : Canada (Central)
16) eu-west-2 : EU (London)
17) eu-west-3 : EU (Paris)
18) eu-north-1 : EU (Stockholm)
(default is 3): 9
アプリケーション
Select an application to use
1) [ Create new Application ]
(default is 1):

Enter Application Name
(default is "demo"):
Application demo has been created.
プラットフォーム→SpringBootの場合はJava
Select a platform.
1) Node.js
2) PHP
3) Python
4) Ruby
5) Tomcat
6) IIS
7) Docker
8) Multi-container Docker
9) GlassFish
10) Go
11) Java
12) Packer
(default is 1): 11

Select a platform version.
1) Java 8
2) Java 7
(default is 1):
SSH
Cannot setup CodeCommit because there is no Source Control setup, continuing with initialization
Do you want to set up SSH for your instances?
(Y/n): Y

Select a keypair.
1) key
2) [ Create new KeyPair ]
(default is 2): 2

デプロイ

デプロイの前にアプリケーションのjarをプロジェクトルートにコピーします。

$ cp build/libs/demo-0.0.1-SNAPSHOT.jar .

デプロイします。

$ eb create
Enter Environment Name
(default is demo-dev):
Enter DNS CNAME prefix
(default is demo-dev):

Select a load balancer type
1) classic
2) application
3) network
(default is 2):

数分かかります。

動作確認

動いてます。

$ curl http://demo-dev.ap-northeast-1.elasticbeanstalk.com
Hello, World!

2回目以降のデプロイ

2回目以降は以下のコマンドだけでデプロイできます。
SSH、アクセスキー等設定しておけば、CIツールから自動デプロイ可能です。

$ gradle clean build test
$ cp build/libs/demo-0.0.1-SNAPSHOT.jar .
$ eb deploy

追記

application.propertiesに下記の設定が必要なようです。

server.port=5000
4
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
9