Docker環境を取り扱うためのAWS環境のセットアップ手順と、AWS環境へのデプロイを実施し、その構成の学習を目的とします。
最終目標としてDocker環境をサーバにデプロイし、本運用を見越したDocker環境でのリリースを実施します。
環境
・Windows 10
・VSC version 1.83.1
・Docker Desktop
・AWS
Docker環境を取り扱うためのAWS環境のセットアップ手順と、AWS環境へのデプロイを実施し、その構成の学習を目的とします。
最終目標としてDocker環境をサーバにデプロイし、本運用を見越したDocker環境でのリリースを実施します。
・Windows 10
・VSC version 1.83.1
・Docker Desktop
・AWS
最初にDocker環境をデプロイするためのサーバーを用意します。
AWSコンソールにログインし、EC2環境の作成を実施します。
まずはEC2を用意するためのVPCを構築します。
構成としてはVPC配下にシンプルなパブリックサブネットにEC2を配置する形で実現します。
本来であればサーバーに直接接続できてしまうのはセキュリティリスクになるため、プライベートサブネットに作成し、ポートの穴あけを実施するべきですが、今回は動作確認用なので、パブリックサブネットに配置します。
VPCを新規作成から、VPCに必要項目を入力していきます。
この時にデフォルトのリージョンが東京以外になっている可能性があるので、リージョンをアジアパシフィック(東京)ap-northeast-1に変更しておきます。
VPC名をdocker-deploy-testとし、IPv4 CIDRは10.0.0.0/24とします。
その他項目は任意のため今回は省略し、VPCを作成します。
VPCを作成したら、次にサブネットを作成します。
VPC>サブネットからサブネットを新規作成します。
VPC IDには先ほど作成したdocker-deploy-testを指定し、サブネット名はocker-deploy-test-subnet1とします。
アベイラビリティゾーンは適当でも大丈夫ですが、今回はアジアパシフィック(東京)ap-northeast-1aとしておきます。
サブネットのCIDRブロックは10.0.0.0/28とします。
次にインターネットゲートウェイを作成します。
現状だと外部からの通信を受け付けない状態になっているので、サブネットに紐づけたルートテーブルにインターネットゲートウェイを紐づける必要があります。
サブネットを作成した際にデフォルトでルートテーブルが作成され、そちらがメインルートになっていますが、今回はそちらを編集していきます。
まず、先にVPC>インターネットゲートウェイから、インターネットゲートウェイを作成します。
名前はdocker-deploy-test-igにしました。
次にこちらをルートテーブルに紐づけます。
VPC>ルートテーブルから作成したVPCに紐づいているルートテーブルを選択し、名前をdocker-deploy-test-rtにします。
その後、ルートテーブルのルートを編集し、インターネットゲートウェイ用のルーティングを追加します。
この状態で先ほど作成したVPCのアタッチされているメインテーブルを確認すると、インターネットゲートウェイがルーティングされるようになっています。
次にEC2を作成します。
インスタンスを起動からEC2の作成を実施します。
インスタンス新規作成時にEC2にログインするために必要なキーペアの指定を求められるので、先にキーペアを作成しておきます。
画面中央付近にキーペアの項目があるので、こちらから新規でキーペアを作成します。
名前はdocker-deploy-test-keyとし、鍵の種類はRSA、形式はpemで作成します。
キーペアが作成出来たら、続いてインスタンスの設定をしていきます。
インスタンス名はdocker-deploy-test-ec2とします。
マシンイメージは無料利用枠で利用できるAmazon Linux2 2023 AMIにします。
インスタンスタイプも同様に無料利用枠で利用することができるt2.microにします。
続いてネットワークの設定ですが、VPC、サブネットは先ほど作成したそれぞれを割り当て、パブリック IP の自動割り当てはオンに設定します。
セキュリティグループが未作成のため、新規作成を選択し、名前はdocker-deploy-test-sgとしました。
インバウンドルールはSSH接続用の22番ポートとHTTP接続用の80番ポートにそれぞれ自分のIPからのみ接続をできるように設定しました。
そのほかの項目はデフォルトのままインスタンスを起動します。
ssh -i ~/.ssh/{キーペアの名前} ec2-user@{インスタンスのパブリックIPアドレス}
# Enable extra metadata options by default
[automount]
enabled= true
root= /mnt/
options= "metadata,umask=22,fmask=11"
mountFsTab= false
# Enable DNS – even though these are turned on by default, we'll specify here just to be explicit.
[network]
generateHosts= true
generateResolvConf= true
今回はAWSでサーバを構築し、ログインする手順まで実施しました。
次回は前回作成したDocker環境をAWS EBSを使用してデプロイを実施するところまでやりたいと思います。