2022.04.08
AWSでEC2を利用してClusterを作成してみた
こんにちは。次世代システム研究室のB.V.Mです。外国人で言葉遣いが間違いましたらご容赦ください。宜しくお願いします。
今期もクラウドに関する記事ですが、GoogleクラウドじゃなくてAWSでEC2を利用してClusterを作成してみました。
簡単な仕組みでロードバランサーにアクセスして仮想サーバーにindexページにアクセスします。
目次
1. AWS
IT業界でとても有名なAWSです。サービスが多くて現在300サービスが提供されています。もちろんクラウドコンピューティングの分野でトップのはだと言えます。
1.1 注意点
予算の設定
予算の設定は簡単なことですが、とても重要です。意外と大きな料金が発生することを防ぐために、着手まえに予算を設定した方が良いと思います。
予算設定はこちらから設定できます。
利用しない分注意
使用量により請求されるので、利用しない分を停止削除注意したほうが良いです。意外とお金かかってしまうケースが珍しくないと思います。
2. EC2
Amazonに書いてあるのは: Amazon Elastic Compute Cloud (Amazon EC2) は、Amazon Web Service (AWS) クラウドでスケーラブルなコンピューティングキャパシティーを提供します。Amazon EC2 の使用により、ハードウェアに事前投資する必要がなくなり、アプリケーションをより速く開発およびデプロイできます。Amazon EC2 を使用すると、必要な数 (またはそれ以下) の仮想サーバーの起動、セキュリティおよびネットワーキングの構成、ストレージの管理ができます。Amazon EC2 は、要件変更や需要増に応じてスケールアップまたはスケールダウンできるため、トラフィック予測の必要性を軽減できます。
簡単に言うのは:
EC2 = Infrastructure as a Service (IAAS)
主に提供されている機能は:
- 仮想サーバー(EC2)
- 仮想ドライブ(EBS)
- ロードバランサー(ELB)
- 自動スケーリンググループ(ASG)
です。本記事はEC2、ELBについて紹介しようと思います。
2.1 EC2インスタンスタイプ
EC2インスタンスタイプが多いです。使用目的により様々な仮想サーバータイプを提供されています。
https://aws.amazon.com/jp/ec2/instance-types/
AWSには次の命名規則があります。
例:t3.2xlarge
•t:インスタンスクラス
•3:生成(AWSは時間の経過とともにそれらを改善します)
•2xlarge:インスタンスクラス内のサイズ
Webサーバーやコードリポジトリなどの多様なタイプに分けているので使用するのさい要求により優先順位を決めます。
•計算力
•メモリー
•ネットワーキング
•ディスク容量
•その他
t2.microは無料で使用できるため、この記事では、汎用EC2インスタンスであるt2.microを使用します
2.2 EC2インスタンス作成
AWSのconsoleにEC2サービスにアクセスして画像のように簡単にインスタンスが作成できます。
今回はt2.microタイプを使用するので「Step 2: Choose an Instance Type」にてt2.microタイプを選びます。
作成の後このようなインスタンスが作成しました。
3つインスタンスを作りました。初めのインスタンスが停止しています。2つインスタンスが動いています。表示されるのは上記の画像のように表示されます。
2.3 EC2インスタンスにSSH
要求:
-
-
- EC2インスタンスのPublicIP
- EC2インスタンスにてport22(SSH仕様のポート)を開きます。
- AWS pem ファイル(「AWS pem 取得」を検索したら出ると思います。)
- インタネット。(もちろんですね。)
-
PublicIPを確認ところ:
EC2インスタンスにアクセスコマンドは下記のようになります。デフォルトユーザーはec2-userになります。
~/projects/aws-course ❯ ssh -i myfirstinstanceEC2.pem [email protected] ✘ INT 09:45:25 Last login: Wed Mar 30 05:54:20 2022 from natter.interq.or.jp __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/ [ec2-user@ip-172-31-14-25 ~]$
アクセスできました!次にhttpdをインストールして簡単なindexファイルを作成します。
sudo yum update -y sudo yum install -y httpd sudo systemctl start httpd sudo systemctl enable httpd sudo su - echo "<h1>Take instance Hello Word from $(hostname -f)</h1>" > /var/www/html/index.html
ウェブブラウザにhttp://54.92.82.201/アクセスしたら
3. ELB (Elastic Load Balancing)
ELB(Elastic Load Balancer)はマネージドロードバランサーです
•AWSはロードバランサー機能を保証します
•AWSは、アップグレード、メンテナンス、高可用性を処理します
•AWSは、いくつかの設定ノブのみを提供します
•独自のロードバランサーをセットアップするのにかかる費用は少なくなりますが、作業が大幅に増えます(メンテナンス、統合)
3.1 ELB利用してロードバランサー作成
EC2の管理画面で「Load Balancers」を選択して(位置は左下)ロードバランサーを作成します。
1. 「Application Load Balancer」を選択します。HTTP・HTTPS対応用のLoad Balencer(LB)です。
2. 「Load balancer name」を設定します。「test-load-balancer」を設定しました。
3. 「target groups」をCtrl+Clickしてtarget groupを作成します。
ターゲットタイプはインスタンスタイプを選びます。
インスタンスをロードバランサーと繋がります。インスタンスを選択して、「Include as pending bellow」ボタンをクリックします。「Create target group」ボタンをクリックします。
4. 「Create new security group」をCtrl+Clickして新しい画面で新しいセキュリティグループを作成します。
5. ロードバランサー作成画面に戻って、さっき作成したターゲットグループとセキュリティグループを選択して、下記のようにレビューところが確認できます。
作成後しばらく待つとロードバランサーがActive状態になって使用できます。
3.2 結果確認
作成したのロードバランサーのDNSをコピーしてウェブブラウザで開きます。
http://test-load-balancer-1731489543.ap-northeast-1.elb.amazonaws.com/
(テストした後、LBとインスタンスを削除しましたので、上記のリンクにアクセスできていないです。)
インスタンス1にアクセス結果:
インスタンス1にアクセス結果:
ロードバランサーにアクセスする時画像のようにIPアドレスの変更によりインスタンス1あるいはインスタンス2にアクセスしていることがわかりました。
4. 感想
AWSのEC2にてインスタンスを作成して、アクセスしてみました。簡単に作成、アクセスできてそして無料体験もできてよかったです。そして、ロードバランサーを設定するのもとても簡単です。今後もいろいろなサービスを調査したいと思います。
参考リンク
最後に
次世代システム研究室では、グループ全体のインテグレーションを支援してくれるアーキテクトを募集しています。インフラ設計、構築経験者の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ募集職種一覧からご応募をお願いします。 皆さんのご応募をお待ちしています。
グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。
Follow @GMO_RD