
【C級botter道】9話:EC2環境にデプロイする方法の調査①
前回の記事では取引アルゴリズムをローカルPCで動作確認しました。
今回の記事では取引を24時間365日動かすためにAWS-EC2環境にデプロイするための方法を調査します。
デプロイの流れ
デプロイするためには主に下記の流れなのかなと勝手に妄想。
AWS環境にEC2環境を構築
EC2にGithubからコードをクローン
EC2にDockerコンテナを構築
アルゴリズムを起動
2~4に関してはローカル環境とあまり変わらないのかなと考えております。
ただ1.AWS環境にEC2環境を構築の部分がよくわかっていない(プライベートネットワーク?セキュア?)ので調査いたします。
今回はAWS公式ハンズオン動画を基に学習していこうと思います。
ハンズオン教材の選定
うろ覚えの知識ですが、AWS環境にサービスをリリースする際にはパブリック(外部から)とプライベートの環境を分けることが推奨されていた気がします。
上記を学習できそうな”Network編#1 AWS上にセキュアなプライベートネットワーク空間を作成する”を受講いたします。

最終構成図
今回のハンズオンでの最終構成図は以下のようです。

Availability Zone (a)はWebサーバーを立ち上げてそうなので、今回のbotには適さないと推察。
Availability Zone (c)がbotに適した環境だと思っています。恐らく、Pribate subnet-cのEC2(Internal)への接続(インバウンド)はSSH接続のみを許可、アウトバウンドはPublic Subnet-cのNAT gatewayを用いてインターネット空間へ出ていく設定になっているのかなと思います。
上記の推察を頭に入れつつ、ハンズオンを進めていきます。
今回の記事ではハンズオンの内容を参照しつつ、botに利用できそうな部分のみを抜粋していきたいと思います。
Bot用AWS環境
VPCの作成
まずはbot用のVPCを作成します。
マネジメントコンソールより、”VPC”を選択。

続いて、”VPCを作成”をクリック。

今回IPv4 CIDR(このVPCで使えるIPアドレスの範囲のようなもの)20.0.0.0/16と設定します。
※ハンズオンでは10.0.0.0/16を設定しています。
また、VPCの名前はmamuru_bot_vpcとします。

サブネットの作成
続きまして、サブネットの作成を行います。
今回は"Availability Zone C"に"Public Subnet-C"と"Private Subnet-C"を作成します。
VPCのサイドメニューから”サブネット”を選択し、”サブネットを作成”をクリックします。

サブネット作成画面に遷移しますので、VPCとしては先ほど作成した”mamuru_bot_vpc”を選択します。

まず最初に"Public Subnet-C"を作成します。
サブネット名:mamuru_bot_publicsubnet_c
アベイラビリティゾーン:ap-northeast-1c
IPv4サブネット CIDRブロック:20.0.1.0/24

連続でPrivate Subetを作成するために、”新しいサブネットを追加”をクリックする。

まず最初に"Private Subnet-C"を作成します。
サブネット名:mamuru_bot_privatesubnet_c
アベイラビリティゾーン:ap-northeast-1c
IPv4サブネット CIDRブロック:20.0.11.0/24

2つのサブネットが作成できたことが確認できます。

Intenet Gatewayの作成
続きまして、InternetGatewayの作成を行います。
これにより、VPCとインターネットとの間での通信が可能となります。
VPCのサイドメニューから”インターネットゲートウエイ”を選択し、”インターネットゲートウエイの作成”をクリックします。

”mamuru_bot_igw”という名前で作成します。

続いて、作成したインターネットゲートウエイを”mamuru_bot_vpc”にアタッチします。

作成された"mamuru_bot_igw"が”mamuru_bot_vpc”にアタッチされていることが確認できます。

一旦ここまでの状態を整理しようと思います。
構成できた環境は以下です。

まだネットワーク空間を定義したのみで、何もできない状態ですね笑
これからルーティングテーブルや、NAT、EC2を設置することでbotを動かせる環境にしていこうと思います。
まとめ
VPCの作成
サブネットの作成
インターネットゲートウエイの作成
次回はルーティングテーブル、NAT、EC2を作成していこうと思います。