カテゴリ:13.実際にやってみる > 13.8 AWS

(1)AWSについて
EC2(Elastic Compute Cloud)は、仮想サーバを構築することができます。VPSと思ってもいいでしょう。Elasticは「弾力性がある」という意味で、規模を拡大したり数を増減させたりが柔軟なクラウドと考えればいいでしょう。
その他、ストレージサービスのS3(Simple Storage Service)、データベースサービスのRDS(Relational Database Service)があります。※参考ですが、SQLを使わないDBのDynamoDBというものもあります。

(2)アカウントの作成
AWSを利用するには、アカウントを作るところから開始します。
無料枠を使って進めます。ただ、残念なのが、必ずクレジットカード情報を入れる必要があることです。IBMクラウドなどはその必要がありません。なので、偽名などで登録することは実質不可能です。
上記URLの画面右の「まずは無料で始める」をクリックして開始します。
aws1
aws2クレジットカード情報や住所を正しくいれます。たしか、電話番号のSMSによる認証もあったかと思います。
また、アカウント名を作成しますが、ログインには使いません。

(3)ログイン
アカウントができたら、早速ログインしましょう。
①ログイン画面にアクセス
aws3
②メールアドレスとPWでログインをする

③AWS マネジメントコンソール の画面が表示されます。
 ・左上のAWSのアイコンは、ホームボタンのような役割をしています。
 ・サーバを起動するには、真ん中あたりの「ソリューションの構築」の「仮想マシンを起動する」から行います。
 または、上のメニューの「サービス」>「コンピューティング」>「EC2」から起動します。
 ・メニューの「アカウント名(皆さんが設定したもの)」をクリックすると、アカウント管理のメニューになります。
 
(4)最初の設定 ※主にセキュリティ
①接続するサーバの場所を変更
 リージョンとエンドポイントを変更します。
 メニューバーの右の方に、「米国東部 (バージニア北部)」などとなっている部分です。日本に変更しましょう。具体的には、アジアパシフィック (東京)にします。
 ※詳細は以下

②アカウントの設定
メニューバーで、自分のアカウントをクリックして「マイアカウント」

→たくさんあるので、次の節で。

③認証の強化
二段階認証 MFA(Multi-Factor Authentication)を入れる
以下から実施する。
または、「サービス」メニューの「セキュリティ、ID、およびコンプライアンス」>「IAM」を開く
ここで、「ルートアカウントの MFA を有効化」から2段階認証を実行する。
詳しくは、以下

※ログインしたらメールで通知してほしいが、簡単にはできなさそうである。残念

(5)アカウントの設定
メニューバーで、自分のアカウントをクリックして「マイアカウント」
①お支払い通貨の設定
→JPNに変更。手数料が安くなるような噂
aws4
②Billingの設定
それぞれチェック
・電子メールでPDF版請求書を受け取る
・無料利用枠の使用のアラートの受信
・請求アラートを受け取る

(6)請求に関して
①毎月の請求額の確認
 無料で使えるといっても、アカウントが乗っ取られるなどして、大量に使われるリスクもあります。
 請求額の確認は、「マイアカウント」>「Billing」>「請求書」
②リアルタイムの料金を表示
「マイアカウント」>「Cost Management」>「Cost Explorer」
でコストエクスプローラを有効にします。
 少し時間がかかります。 

③請求の上限設定
・「マイアカウント」>「Budgets」で「Create a budget」ボタンを押します。
aws5
・「コスト予算」を選択します。
aws6
間隔:月別、定期予算、で上限を$20に設定しました。
→次のページで80%(Alert threshold)で通知する設定をしました。80という数字は、あらかじめ入っているように見えましたが、自分で設定が必要です。
aws7
④料金計算
EC2の料金は複雑と言われます。コア数やメモリにもよります。不要なインスタンス(サーバ)は停止しておきましょう。(※削除しなくても、停止だけで課金はされないはず)。それ以外に、ストレージ(EBS)や、通信量によっても課金されます。インバウンドの通信は無料のようすだが、Dos攻撃をくらうと同時にアウトバウンドも増えるので、費用が怖い。いわゆるEDoS攻撃である。

(1)EC2でのサーバの構築に関して
今回は、Linux(基本はCentos7)サーバをAWS上に構築します。ローカルにサーバを持つ必要はなく、インストールも不要。とても便利です。

(2)ネットワーク構成とVPC
・作成するサーバは、Amazon上の閉じられたネットワークに配置されます。
・ネットワーク構成に関して、VPCの理解が必須です。
以下のサイトの内容をよく読みましょう。これで概念がわかってもらえると思います。
-------------
Virtual Private Cloud (VPC) は、AWS アカウント専用の仮想ネットワークです。VPC は、AWS クラウドの他の仮想ネットワークから論理的に切り離されており、AWS のリソース(例えば Amazon EC2 インスタンス)を VPC 内に起動できます。VPC の IP アドレス範囲を指定して、サブネットを追加し、セキュリティグループを関連付けて、ルートテーブルを設定できます。
-------------
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html

・もう少し詳しく説明します。
以下の画像を見てください。
まず、AWSの中に、ユーザのアカウントに紐づけられたVPCが
作成されます。Regionの中に入っています。
つまり、RegionごとにVPCが作成されます。ですから、北米
で作るサーバと日本で作るサーバは、別のVPC上に作成されます。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/images/default-vpc-diagram.png
・VPCの中で、サーバを構築します。内部からアクセスするプライベートIPアドレスとグローバルIPアドレスが割り当てられます。
IPアドレスは表示されますので、公開サーバとしてアクセスしたい場合は、そのグローバルIPアドレス(またはFQDN)にアクセスします。
※ifconfigで見ると、eth0しかありません。なので、両者は同一のIFであり、グローバルIPアドレスにNATされています。
・確認のため、VPCを見てみましょう。
https://console.aws.amazon.com/vpc/
・ネットワーク(サブネット)も、適宜作成されます。

(3)サーバの構築
前置きが長くなりましたが、サーバを構築してみましょう。
①EC2のダッシュボードを開く
これが、サーバの構築です。
どこのリージョンかを選択した上で、「サービス」
>「コンピューティング」>「EC2」を選択します。

②インスタンスの作成
aws8
「インスタンスの作成」ボタンをクリック。
検索画面で「Windows」と入れれば、WindowsOSが出てきます。
Amazon Linux 2 AMIで作成しましょう。
ちなみに、Amazon Linux 2はCentOS7をベース、Amazon LinuxはCentOS6をベースにしています。

※AMIは、「Amazon マシンイメージ」のことです。

・無料枠の「Amazon Linux 2 AMI (HVM)」を選択します。
aws9


③インスタンスタイプの選択
T2が検証用には向いているでしょう。CPUやメモリによって
nano、microなどが変わりますが、microのt2.microを選びます。

④その他、詳細な設定を進めます。
まあ、デフォルトのままでもいいでしょう。

(⑤セキュリティグループ)
FWの機能が実現できる。
デフォルトでは、外からの通信はSSH以外は全て拒否、内からの通信は全て許可になっています。SSHを止めてしまうと、このサーバに接続できなくなってしまいます。

⑥キーペアの作成
適当に名を付けて作成します。
また、自分がSSHで接続するには必要なので、このキーをファイルとして保存します。
aws10


⑦「インスタンスの作成」
ボタンを押して、作成します。
エラーが出て止まる。
Your request for accessing resources in this region is being validated, and you will not be able to launch additional resources in this region until the validation is complete. We will notify you by email once your request has been validated. While normally resolved within minutes, please allow up to 4 hours for this process to complete. If the issue still persists, please let us know by writing to aws-verification@amazon.com for further assistance.

→しばらくすると接続できます。

(5)SSHでの接続
AWSのコンソール画面から接続する方法があります。
※おそらく、この場合はコンソールにログインしているので、さきほどのキーは不要です。

TeraTermなどの通常のSSHで接続する方法を紹介します。
①TeraTermの起動
②接続先として、作成したインスタンス(サーバ)のグローバルIPアドレスに接続します。
③ユーザ名はec2-user (※デフォルトで作成されているユーザです)、パスワードを入れる必要はありません。RSA/DSA/ECDSA/ED25519鍵を使うのところで、先ほどの秘密鍵を入れて接続します。
aws11
★デフォルトのec2-userは変更すべきという考えもあるので、そこは必要に応じて変更する
④Linuxのコマンドプロンプトが表示されれば、接続成功です。

(6)AWS上での操作
基本的にCentOS7なので、CentOS7のコマンドが実行できます。
以下のコマンドで、rootになっておこう。
$ sudo -i
#
あとは通常のLinuxと同じ

(7)使わないインスタンスは停止しておこう
インスタンスを選択し、「アクション」>「インスタンスの状態」>「停止」で停止します。無駄な料金が
発生しませんし、このサーバには誰もアクセスできません。

(8)作成したインスタンスの削除(サーバの削除)
インスタンスを選択し、「アクション」>「インスタンスの状態」>「終了」で削除します。すぐには消えないかも。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/terminating-instances.html#termination-overview

①インスタンスにもよるが、デフォルトではWebサーバ(httpd)は入っていないと思う。
②yumでインストールしましょう。
http://sm.seeeko.com/archives/15877187.html
③サービスを起動します。
④セキュリティグループでHTTPを許可します。
 インスタンスのセキュリティグループを開き、インバウンドとしてHTTPを許可します。
⑤該当サーバのグローバルIPアドレスにアクセスすれば、Apacheのトップページが見えるはずです。
⑥必要に応じてコンテンツを変更しましょう。
たとえば、/var/www/html 配下にindex.htmlファイルを作り、「Hello!」とでも入力すると、それが表示されます。
※参考
サーバのiptableは使う必要が無い。(効いていないので、全通しだと思われる)。
2重管理の必要はないので、わかりやすいセキュリティグループだけで管理すればいいだろう。

↑このページのトップヘ