☁️

【AWS】EC2とDockerでHello Worldしてみる

2023/11/29に公開

AWSの入門として、少し触ってみる

以下を参考にさせてもらった。
初学者の私でも動画視聴と並行して進めることができた。
https://youtu.be/HvrIPQ77xRY?si=Rtps3MMPzwWImQZP

①VPCの設定

VPCって何?教えてWikipediaさん

仮想プライベートクラウドは、パブリッククラウド内に作成される論理的に隔離されたユーザー独自のスペースである。

ふーん、まずは大枠を作るのね。

IPv4 CIDRとは?

使用可能なIPアドレスの範囲を設定するものらしい。
今回は、RFC1918に従いVPCのIPv4CIDRには「192.168.1.0/24」を設定した。

http://www.faqs.org/rfcs/rfc1918.html

②サブネットの作成

VPC内に部屋を作るイメージ。
VPCより小さくしたいのでIPv4CIDRには「192.168.1.0/25」を設定した。

③インターネットゲートウェイの作成

今回設定しているVPCがどこを通って外とやりとりするのかを定義する。
玄関のドアみたいなイメージ。
VPCにアタッチすることでVPCが密室でなくなる。

④EC2サーバを作成

VPC内のサブネットに置くためにサーバを建てる。
構成は参照動画に従い、以下にする。

  • AMI:Amazon Linux 2 Kernel 5.10 AMI 2.0.20231116.0 x86_64 HVM gp2
  • インスタンス:t2.micro

ファイアウォールの設定

ネットワーク設定の「編集」からファイアウォールを作成する。
VPCとかサブネットがデフォルト設定なので忘れずに先ほど作成したものに変更する。
※詳細は動画参照


キーペアの生成

キーペアを生成しておく。参考

今回、AMIがLinuxなのでSSHでEC2に入ることになる。
その際に、このキーをAWSに認知させておくことで、ログインできるようにするらしい。
(公開鍵暗号方式ですね)

また、こんな感じで読み出しと書き込みの権限を与えておこう

chmod 600 Downloads/my-key-20231127.pem 

chmod 600の600ってなんやねん

ここまでで部品の作成は終了。

⑤ルーティングの作成

ここからは部品を組み合わせていく。

ルーティングの規則を設定する

  • VPCの範囲「192.168.1.0/24」では好きに通信可能
  • 外に出る時は③で作成したゲートウェイを通る



この規則を②で作成したサブネットに適用する

⑥EC2にSSH接続し、適当なhtmlファイルを置く

④で設定したEC2サーバには以下でSSH接続を行う。

ssh -i [キーペアファイルパス] ec2-user@[EC2サーバのパブリックIPv4アドレス]

// 例) ssh -i Downloads/my-key-20231127.pem ec2-user@54.242.155.157

あとはdockerを入れて起動して...

sudo yum -y install docker
↓
sudo service start docker

適当なディレクトリを作成して...

mkdir hello-docker

なんかhtml作って書いて...

hello-docker¥hello.html
hello from docker at EC2!

nginx用の設定をして...

hello-docker¥dockerfile
FROM nginx
COPY ./hello.html /usr/share/nginx/html

dockerコンテナをビルドして...

sudo build -t hello-docker-ec2

dockerコンテナを起動すれば...

sudo docker run --rm -d -p 80:80
// 「-p 80:80」: 80番ポートを利用する設定

先ほど作成したhello.htmlファイルの内容が表示されました!

まとめ

非常に平易な例を通して、ハンズオン形式で学ぶことができた。
クラウドの知識は応用情報等で知ってはいたが、知っているに留まっていたので手を動かすことの重要性を感じた。
今後は利用機会も増えると思うので、設計も含め知見を深めておきたい。

Discussion