LoginSignup
2
0

More than 1 year has passed since last update.

AWS Elastic BeanstalkでEC2インスタンスをデフォルトVPC以外のVPCに作成する方法

Posted at

はじめに

AWS ElasticBeanstalkとは、Webアプリケーションのデプロイとスケーリングを迅速に実施するのを目的とした開発者向けのサービスです。Webアプリケーションは、Elastic Beanstalkが管理するEC2インスタンス上にデプロイが行われ、このEC2インスタンスはElastic Beanstalk上で特に何も設定しなければ、デフォルトVPC(AWSアカウントを作成するとデフォルトで用意されているVPC)のサブネット上に作成されます。ですが、デフォルトVPC以外のVPC環境にElastic BeanstalkのEC2インスタンスを作成したい場合もあるかと思いますので、本記事ではその場合の手順をご紹介します。

VPC環境の事前準備

今回は、事前に下記のVPC環境を用意しました。

  • VPC
    • VPC名:my-vpc-01
    • アドレス範囲:10.0.0.0/16
  • パブリックサブネット
    • サブネット名:my-puclib-subnet-01
    • アドレス範囲:10.0.1.0/24
    • 配置先AZ:ap-northeast-1a
  • インターネットゲートウェイ
    • インターネットゲートウェイ名:my-igw
  • ルートテーブルの修正

Elastic Beanstalkを使用したアプリケーションのデプロイ

1. Elastic Beanstalkコンソールを表示
AWSコンソールでサービス検索を行い、Elastic Beanstalkのコンソールを表示します。表示後、右側にある「アプリケーションの作成」ボタンをクリックします。
eb01.png

2. アプリケーション名の入力
下記画面の「アプリケーション名」の箇所に任意のアプリケーション名を入力します。今回は、My-ebapplというアプリケーション名にします。
eb02.png

3. プラットフォームとアプリケーションコードの選択
下記画面にてアプリが稼働するプラットフォームとアプリケーションコードを選択します。今回は、Pythonのサンプルアプリケーションを動かすことにします。
eb03.png
ここで、「アプリケーションの作成」ボタンを押すと、Elastic BeanstalkはデフォルトVPCに対して、サンプルアプリケーション稼働用のEC2インスタンスを作成しにいってしまいますので、今回は「より多くのオプションの設定」ボタンを押して、ネットワーク関連の設定画面を探します。

4. ネットワークの設定
「ネットワーク」カテゴリーにおける「編集」ボタンをクリックします。
eb09.png
すると下記のような画面が表示され、VPCやインスタンスの設定項目上に、事前準備していたVPCやサブネットを選択することができます。
eb10.png
今回はデータベースは使用しないので、「データベース設定」の箇所にはチェックは入れず、右下の「保存」ボタンをクリックします。
eb11.png
前の画面に戻って、「ネットワーク」カテゴリーを見ると、VPCやサブネットなどが表示されていることを確認できます。
eb12.png

5. その他の設定を確認
今回使用するEC2インスタンスは、下記画面に表示されている無料利用範囲内のものを使用します。「編集」ボタンをクリックすれば、インスタンスタイプなどを自由に変更することもできます。
eb05.png

また、Elastic Beanstalkが作成するEC2インスタンスにSSH接続できるように、仮想マシンのキーペアを登録しておきます。下記の「セキュリティー」カテゴリーにおける「編集」ボタンをクリックします。
eb06.png

下記のような画面が表示されるので、「仮想マシンアクセス許可」の「EC2キーペア」で表示されるキーを選択します。対応する秘密鍵がPC上に存在していることを確認ください。その後、右下の「保存」ボタンをクリックします。
eb07.png
前の画面における「セキュリティー」カテゴリーの「仮想マシンキーペア」の箇所に値が入ったことが確認できます。
eb08.png

6. アプリケーションのデプロイ
下記画面の右下にある「アプリの作成」ボタンをクリックします。
eb13.png
アプリケーションのデプロイに向けたElastic Beanstalkの環境作成が始まります。
eb14.png
作成には数分かかりますが、順調に進んでいることが確認できます。
eb16.png
最終的に下記の画面が表示されれば、Elastic Beanstalkの環境作成が終わり、アプリケーションのデプロイは完了です。
eb17.png

7. サンプルアプリケーションの稼働確認
下記Elastic Beanstalkコンソールの左側にある「環境」をクリックすると、右側の「すべての環境」のところに今回作成した環境が表示されます。記載のURLをクリックするとサンプルアプリケーションをチェックすることができます。
eb19.png
サンプルアプリケーションは下記のように表示されていればOKです。
eb18.png

8. 作成したEC2インスタンスへのSSH接続確認
Elastic Beanstalkにより作成されたEC2インスタンスは、下記画面の右側に表示されているものになります。
eb20.png
EC2インスタンスのパブリックIPアドレスは、13.230.86.212と表示されていますので、このIPアドレスを使用してSSH接続を行います。

[testuser@localhost ~]$ ssh -i ./.ssh/aws-eb-key ec2-user@13.230.86.212
The authenticity of host '13.230.86.212 (13.230.86.212)' can't be established.
ECDSA key fingerprint is SHA256:mmddvJeAvzlU3mfKcdhkI7v2+GkNY5L9Ure4k1Xg3bY.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '13.230.86.212' (ECDSA) to the list of known hosts.
  _____ _           _   _      ____                       _        _ _
 | ____| | __   ___| |_(_) ___| __ )  ___  __ _ _ __  ___| |_ __ _| | | __
 |  _| | |/ _ \/ __| __| |/ __|  _ \ / _ \/ _\ | '_ \/ __| __/ _\ | | |/ /
 | |___| | (_| \__ \ |_| | (__| |_) |  __/ (_| | | | \__ \ || (_| | |   <
 |_____|_|\__,_|___/\__|_|\___|____/ \___|\__,_|_| |_|___/\__\__,_|_|_|\_\

 Amazon Linux 2 AMI

 This EC2 instance is managed by AWS Elastic Beanstalk. Changes made via SSH
 WILL BE LOST if the instance is replaced by auto-scaling. For more information
 on customizing your Elastic Beanstalk environment, see our documentation here:
 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

[ec2-user@ip-10-0-1-58 ~]$ 

問題なくSSH接続することも確認できました。Elastic Beanstalkの文字がでかでかと表示されているのもなかなか味わい深いです。

おわりに

今回は、デフォルトVPC以外のVPCに対して、AWS Elastic Beanstalkのアプリケーションデプロイ先のEC2インスタンスを作成するための手順を紹介しました。私自身はアプリ開発未経験のインフラSEですが、AWSは開発者向けのサービスが豊富なため、これを機会にアプリの勉強もしていこうと思います。

2
0
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
2
0