【AWS SAA対策 Udemy】EC2
EC2の概要
数分で利用できる仮想サーバー
利用する単位をインスタンスと呼びます。
管理者権限で利用可能
AMIという仕組みを使ってどのOSも使えるようになっている
AZ内にインスタンスを設定する。リージョンは設定できないです。
インスタンスタイプについて
https://gyazo.com/6647cb12153f07ea97c7e9fe71e00404
汎用型
A1、M5、T3
コンピューティング最適化
機械学習で使われる
C5、C6g
メモリ最適化
X1、R5、ハイメモリ
ストレージ最適化
H1、D2、I3
高速コンピューティング
P3、Inf1、G4
グラフィック計算、ブロックチェーンなど
インスタンスの購入方法
オンデマンドインスタンス
定価料金
リザーブドインスタンス
予め、24時間365日稼働が決まっている場合は予め、料金を設定して支配あする事で割引をいただくプランになる
スタンダードとコンバート(柔軟性)タイプがある。
スタンダードはインスタンスファミリー/OS/テナンシー/支払オプションの変更ができません。コンバーティブルはそれらを変更できる柔軟性があるため割引率がスタンダードよりも低くなっています。
コンバートタイプの方が少し割引額が少ない
スケジュールリザーブドインスタンス
1年間にわたり、毎日、毎週または毎月ベースの指定され開始期間および期間で繰り返しキャパシティー予約を購入する
一時的なバッチ処理などに使える
スポットインスタンス
AWSが提供しているEC2全体の使用率によって、料金が変動する価格。いわば市場取引にように価格が変動する
入札価格が現在のスポット価格を上回る場合、スポットインスタンスが作成され、現在のスポット料金で課金されます。スポット価格は多くの場合、オンデマンド価格を大幅に下回ります。したがって、柔軟性があり中断されても問題ないアプリケーションにスポットインスタンスを使用することで、インスタンスコストを最大 90% 低減できます。
物理対応可能なインスタンスもある。
ハードウェア専用インスタンス
専用HWのVPCで実行されるEC2インスタンス
同じAWSアカウントのインスタンスとはHWを共有する可能性がある。
Dedicated Host
E2インスタンス容量を完全のお客様専用として利用できる物理サーバー
Dedicated HostはEC2インスタンス容量を完全に一つのアカウントのユーザー専用として利用できる物理サーバー
Bare Metal
Amazon EC2 ベアメタルインスタンスでは、アプリケーションは基盤となるサーバーの Intel® Xeon® スケーラブルプロセッサとメモリリソースに直接アクセスできます。これらのインスタンスは、ライセンス付与やサポート要件のため、あるいは自前のハイパーバイザーを使用したいと考えているお客様のために非仮想環境で実行する必要のあるアプリケーション、Intel® VT-x などのハードウェアの機能セットへのアクセスが必要なワークロードに最適です。
EC2で利用できるストレージ
インスタンスストア
EC2内にあるストレージ
ECの一時的なデータが保持されて、EC2の停止、終了とともにクリア。無料
Elastic Block Store
EC2を削除してもEBSは保存可能で、SnapshotをS3に保存できる
EC2を使ってWebサーバーとDBサーバーを作成する
パブリックサブネット : webサーバー
プライベートサブネット : DBサーバー
セキュリティグループはSSH、HTTP、HTTPSを設定する’
https://gyazo.com/f41290046ab9cfafdb3166660e723365
EC2インスタンスを起動する際にはPEM形式のファイル(秘密鍵)をダウンロードする。これを認証用のキーペアとして利用する事でEC2インスタンスにアクセスできる。EC2インスタンスへの認証方式を公開鍵認証方式と呼ぶ。
AWSの試験対策というよりは、情報基礎試験ぽい知識
SSHについて
EC2インスタンスにはSSHプロトコルを利用してEC2インスタンスに接続する
SSHはポート番号が22番になっている
EC2にApatchを入れてWebサーバーを立てる
EC2にアクセスして、Apatcheにインストールして、Webサーバーを立てる
サーバーに入ったらApatchが動くようにソフトウェアをインストールして、EC2が起動したら自動でApatchで動かしているWebサーバーも起動するように設定をしておく。
code:md
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
Apatchが起動しているかを確認する
code:md
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since 土 2021-09-25 09:46:20 UTC; 5min ago
Docs: man:httpd.service(8)
Main PID: 6747 (httpd)
Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec: 0 B/sec"
CGroup: /system.slice/httpd.service
├─6747 /usr/sbin/httpd -DFOREGROUND
├─6757 /usr/sbin/httpd -DFOREGROUND
├─6758 /usr/sbin/httpd -DFOREGROUND
├─6759 /usr/sbin/httpd -DFOREGROUND
├─6760 /usr/sbin/httpd -DFOREGROUND
└─6761 /usr/sbin/httpd -DFOREGROUND
パブリック IPv4 アドレスにアクセスすると、ちゃんとhtmlファイルが表示されれいる事を確認する。
因みにhttpsでアクセスしようとすると怒られる。
code:md
# アクセスできる
# アクセスができない
EC2にMySQLを入れてDBサーバーを立てる
パブリックサブネットに立てたEC2インスタンスから、プライベートサブネットに立てたEC2インスタンスのMySQLサーバーにアクセスする。
この為には一時的に プライベートサブネットからインターネットに返す為をNATゲートウェイを通して返す。
今回はEC2にMySQLを入れてDBサーバーを入れるが、RDSサービスを使ってMySQLを使う
普通は1つの中に入れてもいいが、DBはユーザーのデータが入っているのでレイヤーを分ける。
EC2はアンマネージド型になっている
一方でRDSはマネージド型になっている。
EC2にMySQLを入れてアクセスするのが少々大変なので動画や記事を参考にDBサーバーを用意する
MySQLにアクセスするのでセキュリティグループの許可するプロトコルにMYSQL/Auroraでポート番号、3306を追加しておく。
https://gyazo.com/e29c89f421a56263cd46c2f1a62b3c2b
事前にすでに入っているmariadb-libsパッケージが競合化しているとの事だったので、削除してから以下のコマンドを実行する
code:md
sudo yum remove mariadb-libs
Elastic IPの設定
通常、インスタンス作成時に付与したパブリックIPアドレスは、停止すると解除する。
このようなIPアドレスは動的IPアドレスになり、値が変わる。
Elastic IPはインスタンスを停止しても値が変わらないので、サービス間での連携を行う際に良い
ユーザーデータの活用
インスタンスにシェルスクリプトのコードを記述する事でソフトウェアのインストールを自動化する
インスタンスタイプから起動する
インスタンスタイプから選択すると自動的に詳細設定を決めて起動ができる
EC2 起動テンプレートからも、自分用にカスタマイズしたインスタンスタイプを選択できる
ここはいつものEC2から仮想サーバーを立てる時と同じになっている
スポットリクエスト
スポットインスタンスを作ってみる
https://gyazo.com/8cc3373f1624548f8d9e61aff795fa0d
永続的リクエストはスポットインスタンスが終了した際に、自動でインスタンスを作成できる
EBSの概要
EC2インスタンスとともに利用されるブロックストレージになっている
AWSは以下の3つのタイプにストレージタイプあるが
ブロックストレージ
EBS、インスタンスストア
インスタンスストア
EC2の一時的なデータが保存される。EC2が終了するとデータが消える
無料
Elastic Block Store
ネットワークで接続されたブロックレベルのストレージでEc2とは独立して管理されている。
EC2を終了してもデータは消えない
別途、EBSの料金がかかる。
データは永続的に保存できる
他のAZ内のEBSにアクセスできない。同じAZ内でのみ置き換えが可能
EBSはのボリュームタイプは全部で5つある
SSD
(1)汎用SSD
(2)プロビジョンドIOPS
高いI/O性能がある
HDD
(3)スループット最適化 HDD
プロビジョンドIOPSより安価
ビッグデータ
(4)コールドHDD
ログデータなどのバックアップを利用する
(5)Magnetic
旧世代のボリュームになっている
オブジェクトストレージ
安価かつ最も高い耐久性を持っている
デフォルトで複数のAZに冗長構成が取れる
S3、Glacier
ファイルストレージ
ファイル形式でデータを保存できる
EFS
EBSはスナップショットでバックアップを保存できる。
スナップショットはリージョン間を跨いで利用可能
権限を移譲する事で他のアカウントで利用できる
スナップショットとAMIの違い
AMI: EC2インスタンスのOS設定などをイメージとして保持して、新規インスタンス設定に転用する
EBSのSnapshot: ストレージ/FESのその時点の断面のバックアップとして保持するもの
ストレージの復元や複製に利用する
EBS ボリュームのポイントインタイムスナップショットを作成して、新規ボリュームやデータバックアップ用のベースラインとして使用することができます。ボリュームのスナップショットを定期的に作成する場合、スナップショットは増分です。新しいスナップショットは、最後のスナップショット以降に変更されたブロックのみを保存します。
EC2は複数のEBSをアタッチできる
データ ライフサイクルマネージャー
DMLを使ってELB snapshot作成と削除をスケジューリングで管理し作成する事ができます。
Amazon Data Lifecycle Manager は無料で使用できます。ポリシーによって作成およびコピーされたスナップショットにはストレージコストが発生し、高速スナップショット復元などのオプション機能は課金されます。
プレイメントグループ
単一AZ内に複数のインスタンスを論理的にグループ化して、パフォーマンスを向上させたり、耐障害性を上げる。
クラスタープレイスメントグループ
パフォーマンス向上
対応するインスタンスのタイプが限られている。
t2などはできない。
パーティションプレイスメントグループ
ラックを分離する事で、アプリケーション内でのハードウェア障害による影響を隔離して軽減させる
スプレッドプレイスメントグループ
グループをつかってラックで分離する。
プレイスメントグループはすでに起動しているEC2に適用ができない..!
なので、EC2インスタンスを作成する際に、プレイスメントグループを選択して適用させる
グループを作ると 配置グループ項目が表示される。
インスタンスの数を増やす事ができる。