AWS 練習めも1

2020年3月25日

■参考サイト
ドットインストール
https://dotinstall.com/lessons/basic_aws/9502


■目標
1.構築→壊す→構築→壊す、、を繰り返して
AWSを理解する

2.Linuxのコマンドやシェルの復習
AmazonLinuxインスタンスを操作して、Linuxのコマンド
やシェルなどを復習する

3.Oracleの練習
RDSでOracleを選択して、Oracleの理解を進める

1、2、3とAWSを通じて、
AWS」、「Linux」、「Oracle」「プログラミング」
と一石四鳥を狙う


■注意点
ElasticIPとRDSは従量課金制

■目標構成

   putty
    |
  Internet
    |
   ELB
    |
  ----
  |  |
 EC2-1 EC2-2
  |  |
  ----
    |
    RDS


■手順
0.Putty事前インストール

1.ASWアカウントを作成

2.1台目のEC2を作成

AWS管理コンソールにログイン
・EC2選択
・東京リージョン選択
・AMIは、AmazonLinux選択(スペックは最小)
・AZは東京の1a選択
・作成(少し待つ)


・電源保護:チェックON
・タグ名:MyWeb1
秘密鍵:tachibana(.pem)
・セキュリティグループ:デフォルト名
   →80、HTTP、0.0.0.0/0追加
・起動
・「インスタンス」メニュー移動:pending確認
 →Runnning待つ
 →StatsuChecks待つ


インスタンスのURL(パブリックDNS)をコピー
・ブラウザで参照
  →未接続のはず(HTTPDプロセス起動してない為)
インスタンスの「停止」と「削除」を間違わない事!
・EBSに移動
・アタッチしたボリュームを確認
  →あとでスナップショット取得する


・作成したインスタンス選択
・右クリック→接続★
  →スタンドアロン SSH クライアント
SSHコマンドをコピー
  例:
  ssh -i "taxxxa.pem" ec2-user@xxx.ap-northeast-1.compute.amazonaws.com


・pemキーをPuttyにコピー??
Puttyで接続する(URL(パブリックDNS)で?)
  →pemキーをChmodしておく(後で)
  →Puttyキー作成★
  ・鍵をインポート、PEMキー選択
  ・パスフレーズ:Sxxxo1xx4
  ・秘密鍵の保存→Sxxxo1xx4.ppk
https://recipe.kc-cloud.jp/archives/25
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/putty.html
Puttyで接続
  →SSH→認証→先ほどのPPKファイルを選択
  →コネクションはパブリックDNS(又はElasticIP指定)
  →セッション一覧に保存
 ユーザ:ec2-user
 パスフレーズ:Sxxxo1xx4
 →LoginOK(のはず)

・以下実行
・sudo yum update
・sudo yum -y install httpd php mysql
・sudo service httpd start
・sudo chkconfig httpd on
・sudo vim /var/www/html/index.html
<html>
hell!
</html>
php -v
mysql --version
・ブラウザで正常性確認
  →hello!表示を確認


・Webサーバが出来たので、この時点のイメージ作成
インスタンスを選択
  →イメージ→イメージの作成(★注、サーバシャットダウンされる)
  イメージ名:MyWeb1Image
・EBSに移動
  →スナップショットに移動、作成中を確認
・イメージに移動
  →AMIに移動、作成中を確認


・ネットワーク&セキュリティに移動
  →ElasticIPに移動
・ElasticIPアドレスの割り当てをクリック(★従量課金)
・Action→関連付け→インスタンスに関連付けする
・ブラウザでIPアドレスでのhello!を確認
・確認後、IP関連付けを解放
・使わないなら、IPを解放(★従量課金)


・バックアップ(スナップショット)を取得
・EBSに移動
  →スナップショットの作成を選択
・名前(説明):MySnap1
  →作成されている事を確認
・(参考)このバックアップをインスタンス作成のAMIイメージとして
使う場合:
  →スナップショット選択
  →右クリック→イメージの作成
・(参考)インスタンスのスペック変更:
インスタンスを停止→右クリック→インスタンスタイプの変更
→変更したら、起動して変更反映


・RDSを選択
・東京リージョンの確認
・データベースの作成クリック
・標準作成→MySQL→無料利用枠を選択
・DBインスタンス識別子:MyDBinstance
・マスターユーザ名:dbuser
・ますわーパスワード:Sxxxo1xx4
・マルチAZ:NO(冗長構成にはしない、、★お金かかる)
インスタンスサイズ:最小構成
→色々入力後、データベースの作成クリック
アベイラビリティゾーンは勝手にWebサーバインスタンス
同じになる(EC2と同じAZでないとアクセスできない★)
・(参考)VPCはここでは、、設定されてるけど、、言及しない


・EC2からデータベースへの接続
・作成したDBインスタンスを選択
・エンドポイントとポート(★接続に必要)
  mydbinstance.cxxxc.ap-northeast-1.rds.amazonaws.com
・ポート
  3306(デフォルト)
・EC2からの接続、、、セキュリティグループを変更するのがベター
  →EC2と同じに
・EC2インスタンスを選択→起動
Putty画面から下記を入力、DBに接続
  # mysql -h [先ほどのRDSのエンドポイント指定] -u dbuser -p
(セキュリティグループ、、、デフォルト??)
・DB一覧を確認
  # show databases;


3.2台目のEC2とELBを作成し負荷分散システムを構築
・MyWeb1のイメージを作成
・作成したイメージから2台目を作成する

・MyWeb1を選択
・右クリック→イメージ→イメージの作成
  →イメージ名:MyWeb2Image
・作成したMyWeb2Imageを選択→右クリック→起動
・ウィザードに沿って各項目を適宜選択
・AZは先ほどとは違うのを選択★(xx-1cを選択)
・タグの追加:MyWeb2
・セキュリティグループ
  HTTP、80を追加
  既存のセキュリティグループを選択★
・キーペア:既存を使用★(tachibana)
・正常性確認
・作成したMyWeb2のパブリックDNSをコピー
・ブラウザに入力してHello!表示を確認


・ELBを作成
・ロードバランシングを選択
・ロードバランサを選択→ロードバランサの作成クリック
・以前の世代を選択→作成クリック
・ロードバランサ名:MyLoadBalancer
・ウィザードに沿って進める★(適宜独自判断!)
・タグの追加:Name、MyLB

・OutOfService→InServiceになったらLB作成OK

・LBへの接続
・説明→DNS名→Aレコードを選択コピー
・ブラウザで入力して開く
  →Hello!の表示を確認
 ★MyWeb1か2かどちらが表示されているか等、
  気になる人はApacheのログとか調べて、って解説の人コメント


以上で終了


【参考】
参考としてS3の紹介のURLあった
https://dotinstall.com/lessons/basic_aws/9515
https://dotinstall.com/lessons/basic_aws/9516
参考として料金の確認
https://dotinstall.com/lessons/basic_aws/9517

 

■疑問点

・キーペアを削除できない

参考

https://teratail.com/questions/243509

http://blog.serverworks.co.jp/tech/2020/01/10/post-77961/

 

・セキュリティグループとかVPCとか削除していいの?

  →削除したけど、、、。デフォルトでAWSが用意?課金は?


以上