おっさん社内SEエンジニアの勉強ブログ

勉強記録のブログとなります。

SAA学習-EC2-Elastic IP

今回のテーマ:Elastic IP

パブリックIPアドレス

  • EC2を停止し、起動するとIPアドレスが動的に変化する
  • EC2を停止し、起動後も同じパブリックIPアドレスを使用する際(静的化する)ために付与するIPアドレスElastic IPとなる。
  • システムを実装する際パブリックIPアドレスでIP連携をする際、静的なIPアドレスを採用するケースがある

実際の手順

  • マネージメントコンソール-EC2-ネットワーク&セキュリティ-Elastic IPの順に選択し、Elastic IPアドレスの割り当てをクリック

f:id:In-houseSE:20210401062054p:plain

  • リージョンは付与する先のリージョンを選択し、割り当てをクリック

f:id:In-houseSE:20210401062219p:plain

f:id:In-houseSE:20210401062339p:plain

f:id:In-houseSE:20210401062518p:plain

f:id:In-houseSE:20210401062708p:plain

移行は付与したElastic IP経由で接続を行う。

今回のテーマは以上です。

補足: 検証終了後はElastic IPの削除を忘れずに対応しましょう。

  • マネージメントコンソール-EC2-ネットワーク&セキュリティ-Elastic IPの順にクリック

f:id:In-houseSE:20210401063136p:plain

  • Elastic IPを開放したいIPアドレスを選択し、アクション-Elastic IPの解放をクリック

f:id:In-houseSE:20210401063309p:plain

SAA学習-EC2-MySQLサーバーを設定する

今回のテーマ:MySQLサーバーを設定する

今回の概要図:

f:id:In-houseSE:20210329112148p:plain

RDBはセキュリティの観点よりプライベートサブネットに実装することが推奨です。
また、ソフトウェアの更新をインターネット経由で実施するため、
NATゲートウェイをパブリックサブネットに設置しプライベートサブネットからのルーティング設定が必要です。

  • 構成パータン:

① パブリックサブネットのWEBサーバーにDBサーバーのソフトを同居する
② パブリックサブネットとプライベートサブネットに1台ずつEC2を立てて各々ソフトウェアを導入する
③ パブリックサブネットにEC2、プライベートサブネットRDSを立ててEC2にWEBサーバーのソフトウェアを導入する

  • サンプル事例など

①の場合、検証環境を実装やセキュリティ的にリスクを許容できる場合で採用
②の場合、DBへのアクセス面でセキュリティ的制御や特殊なDBパラメータを設定が必要な場合で採用
③の場合、実務上はこの構成がよく採用

cf)WEBサーバーとDBサーバーの機能を分ける構成がよく採用されますが、冗長化のしやすさや構造単一点を抑止する狙いとなります。

AWSの管理するサービスの違い

AWSのサービスにはアンマネージド型とマネージド側が存在します。

サービス種別 利用サービス 管理概要
アンマネージド型 EC2 ユーザー側で管理作業をする
マネージド型 RDS 管理作業はAWS側で実装してくれる

実装時に使用するLinuxコマンド群

yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
yum install mysql-community-server -y 
systemctl start mysqld
systemctl enable mysqld
cat /var/log/mysqld.log | grep localhost
mysql –u root -p

MySQLコマンド群

ALTER USER root@localhost IDENTIFIED BY ‘パスワード’;
create database udemy;
show databases;

DBサーバーの実装

f:id:In-houseSE:20210329132853p:plain

DBサーバインスタンス作成時については留意点のみで記載します。

  • OSはAmazonLinux
  • インスタンスタイプはt2.micro
  • VPCはプライベートサブネット
  • ストレージはデフォルトのまま
  • タグはNameをDB-SV-1a
  • セキュリティグループは以下のようにします。

f:id:In-houseSE:20210329133343p:plain

VPCからNATゲートウェイを再度作成し、ルートテーブルを設定

NATゲートウェイのおおよその概算料金:3000円/1月程度発生するため、検証時で使用する場合は無難です。

実装方法については過去掲載の以下を参照ください。

AWS認定学習記録-VPC-NATゲートウェイ - おっさん社内SEエンジニアの勉強ブログ

DBサーバへ接続後各種設定の対応

  • SSHでWEBサーバーへログイン
  • キーペアの作成

コマンド:

touch (キーペアファイル名).pem
vim (キーペアファイル名).pem
  • キーペア権限変更

コマンド:

chmod 400 (キーペアファイル名).pem;ls -l
  • DBサーバーへ接続

コマンド:

ssh (DBサーバーのプライベートIP) -i (キーペアファイル名).pem
  • パッケージのアップデート

コマンド:

sudu su -
yum update -y
  • MySQL関連パッケージのインストール

コマンド:

yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y

結果:

Dependencies Resolved

================================================================================
 Package             Arch   Version
                                  Repository                               Size
================================================================================
Installing:
 mysql80-community-release
                     noarch el7-1 /mysql80-community-release-el7-1.noarch  31 k

Transaction Summary
================================================================================
Install  1 Package

Total size: 31 k
Installed size: 31 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mysql80-community-release-el7-1.noarch                       1/1
  Verifying  : mysql80-community-release-el7-1.noarch                       1/1

Installed:
  mysql80-community-release.noarch 0:el7-1

Complete!
  • MySQL本体のインストール

コマンド:

yum install mysql-community-server -y 

結果:

Transaction Summary
================================================================================
Install  3 Packages (+4 Dependent packages)

Total download size: 573 M
Downloading packages:
warning: /var/cache/yum/x86_64/2/mysql80-community/packages/mysql-community-client-plugins-8.0.23-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Public key for mysql-community-client-plugins-8.0.23-1.el7.x86_64.rpm is not installed
(1/7): mysql-community-client-plugins-8.0.23-1.el7.x86_64. | 237 kB   00:00
(2/7): mysql-community-common-8.0.23-1.el7.x86_64.rpm      | 621 kB   00:00
(3/7): mysql-community-libs-8.0.23-1.el7.x86_64.rpm        | 4.6 MB   00:00
(4/7): mysql-community-libs-compat-8.0.23-1.el7.x86_64.rpm | 1.2 MB   00:00
(5/7): ncurses-compat-libs-6.0-8.20170212.amzn2.1.3.x86_64 | 308 kB   00:00
(6/7): mysql-community-client-8.0.23-1.el7.x86_64.rpm      |  48 MB   00:00
(7/7): mysql-community-server-8.0.23-1.el7.x86_64.rpm      | 518 MB   00:15
--------------------------------------------------------------------------------
Total                                               37 MB/s | 573 MB  00:15
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Importing GPG key 0x5072E1F5:
 Userid     : "MySQL Release Engineering <mysql-build@oss.oracle.com>"
 Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5
 Package    : mysql80-community-release-el7-1.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mysql-community-common-8.0.23-1.el7.x86_64                   1/8
  Installing : mysql-community-client-plugins-8.0.23-1.el7.x86_64           2/8
  Installing : mysql-community-libs-8.0.23-1.el7.x86_64                     3/8
  Installing : ncurses-compat-libs-6.0-8.20170212.amzn2.1.3.x86_64          4/8
  Installing : mysql-community-client-8.0.23-1.el7.x86_64                   5/8
  Installing : mysql-community-server-8.0.23-1.el7.x86_64                   6/8
  Installing : mysql-community-libs-compat-8.0.23-1.el7.x86_64              7/8
  Erasing    : 1:mariadb-libs-5.5.68-1.amzn2.x86_64                         8/8
  Verifying  : ncurses-compat-libs-6.0-8.20170212.amzn2.1.3.x86_64          1/8
  Verifying  : mysql-community-client-8.0.23-1.el7.x86_64                   2/8
  Verifying  : mysql-community-libs-compat-8.0.23-1.el7.x86_64              3/8
  Verifying  : mysql-community-libs-8.0.23-1.el7.x86_64                     4/8
  Verifying  : mysql-community-client-plugins-8.0.23-1.el7.x86_64           5/8
  Verifying  : mysql-community-server-8.0.23-1.el7.x86_64                   6/8
  Verifying  : mysql-community-common-8.0.23-1.el7.x86_64                   7/8
  Verifying  : 1:mariadb-libs-5.5.68-1.amzn2.x86_64                         8/8

Installed:
  mysql-community-libs.x86_64 0:8.0.23-1.el7
  mysql-community-libs-compat.x86_64 0:8.0.23-1.el7
  mysql-community-server.x86_64 0:8.0.23-1.el7

Dependency Installed:
  mysql-community-client.x86_64 0:8.0.23-1.el7
  mysql-community-client-plugins.x86_64 0:8.0.23-1.el7
  mysql-community-common.x86_64 0:8.0.23-1.el7
  ncurses-compat-libs.x86_64 0:6.0-8.20170212.amzn2.1.3

Replaced:
  mariadb-libs.x86_64 1:5.5.68-1.amzn2

Complete!
  • MySQLサービスの起動

コマンド:

systemctl start mysqld

結果はエラーがないこと

systemctl enable mysqld

結果はエラーがないこと

  • MySQLの起動ログの確認(初期パスワードの確認)

コマンド:

cat /var/log/mysqld.log | grep localhost

結果:

2021-03-29T04:59:17.588062Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: gpZgI0es05*C

コマンド:

mysql -u root -p

結果:

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.23

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
  • MySQLのパスワード変更(パスワードの文字列は、英数字、大文字小文字、記号を1つ含む必要があります。)

コマンド:

ALTER USER root@localhost IDENTIFIED BY 'パスワード';

失敗例:

mysql> ALTER USER root@localhost IDENTIFIED BY 'test123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql>

成功例:

mysql> ALTER USER root@localhost IDENTIFIED BY 'gpZgI0es05*C';
Query OK, 0 rows affected (0.00 sec)

mysql>
  • DBの作成

コマンド

create database (データベース名);

成功例:

mysql> create database testdb;
Query OK, 1 row affected (0.01 sec)

mysql>
  • DBの作成後の確認

コマンド:

show databases;

結果例:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.01 sec)

mysql>

検証確認後、NATゲートウェイ、ElasticIPの開放を実施します。

今回のテーマは以上です。

SAA学習-EC2-Apacheサーバーを設定

今回のテーマ:Apacheサーバーを設定

実施概要

  • EC2インスタンスにアクセスし必要なソフトウェアの更新
  • ApacheサーバーをインストールしWEBサーバーとして起動
  • Apacheを利用し、WEBサイトを作成し表示

実際の手順

  • マネージメントコンソールよりパブリックIPをコピーし、SSHログイン(ec2-user)

f:id:In-houseSE:20210329105520p:plain

  • root権限に変更 コマンド:
sudo su -
  • 必要なソフトウェアの更新 コマンド:
yum update -y

更新概要

Installed:
  kernel.x86_64 0:4.14.225-169.362.amzn2

Updated:
  ec2-net-utils.noarch 0:1.4-43.amzn2
  ec2-utils.noarch 0:1.2-43.amzn2
  glibc.x86_64 0:2.26-43.amzn2
  glibc-all-langpacks.x86_64 0:2.26-43.amzn2
  glibc-common.x86_64 0:2.26-43.amzn2
  glibc-locale-source.x86_64 0:2.26-43.amzn2
  glibc-minimal-langpack.x86_64 0:2.26-43.amzn2
  kernel-tools.x86_64 0:4.14.225-169.362.amzn2
  libcrypt.x86_64 0:2.26-43.amzn2

Complete!
  • Apacheサーバーをインストール

コマンド

 yum install httpd -y

更新概要

Installed:
  httpd.x86_64 0:2.4.46-1.amzn2

Dependency Installed:
  apr.x86_64 0:1.6.3-5.amzn2.0.2
  apr-util.x86_64 0:1.6.1-5.amzn2.0.2
  apr-util-bdb.x86_64 0:1.6.1-5.amzn2.0.2
  generic-logos-httpd.noarch 0:18.0.0-4.amzn2
  httpd-filesystem.noarch 0:2.4.46-1.amzn2
  httpd-tools.x86_64 0:2.4.46-1.amzn2
  mailcap.noarch 0:2.1.41-2.amzn2
  mod_http2.x86_64 0:1.15.14-2.amzn2

Complete!
  • Apacheを利用し、簡易WEBサイトを作成するため必要なページを作成

  • サイト表示用のディレクトリへ移動

コマンド

cd /var/www/html/
  • ファイルの存在確認

コマンド

ls
  • WEBページのテキストを作成

コマンド

nano index.html

cf) 個人的にはtouch index.htmlでファイルを作成し、vimで編集する方なれているためそちらで実施します。

実際の編集概要(下記はtouch index.htmlで作成後、vimで編集した際の画面)

f:id:In-houseSE:20210329110746p:plain

コマンド

systemctl start httpd

コマンド

systemctl enable httpd
  • WEBサイトの起動をするため、ブラウザよりパブリックIPのアドレスを入力する。

f:id:In-houseSE:20210329111144p:plain

きちんと表示されていればOKとなります。

今回のテーマは以上です。

SAA学習-EC2-公開鍵認証方式/SSH通信

今回のテーマ:公開鍵認証方式/SSH通信

キーペアの作成

EC2インスタンスの認証

この鍵を使用した認証を公開鍵認証方式とする。

公開鍵認証方式

公開鍵認証方式という基本的な暗号方式を採用します。
以下は使用する際の鍵になります。

秘密鍵:自分自身だけが所有しており、そのデータや領域が自分のものだと表明するための鍵
公開鍵秘密鍵を利用する対象となる相手に共有することを目的とした公開されて鍵

公開鍵認証方式まとめ

SSH

SSH接続

SSHプロトコルを利用しEC2インスタンスに安全な接続を実施
概略図としては下記になります。

f:id:In-houseSE:20210325134134p:plain

SSHとは

利用項目 説明
SSH (Secure Shell) クライアントとリモートマシン感の通信を暗号化するプロトコル
SSHコマンド SSH方式によってリモートマシン上で実行するコマンド。
SSHクライアント SSHによるリモートマシン操作を支援するコマンドプロンプトのソフトウェア

コマンド書式

ssh [オプション] ホスト名 [コマンド]

SSHのまとめ

今回のテーマは以上です。

補足:

Tips:AWS破産したというニュース

【魚拓】AWSから120万円の高額請求が来た話

内容的に自身で作成した鍵ファイルを悪用されるため管理はアクセス制限が可能な環境に保管しておきましょう。

SAA学習-EC2-ECインスタンスを起動

今回のテーマ:EC2インスタンスを起動

構成図

f:id:In-houseSE:20210324143030p:plain

実施内容

  • マネージメントコンソール-EC2と検索し、クリック

f:id:In-houseSE:20210324143651p:plain

全容画面は下記の通り

f:id:In-houseSE:20210324143905p:plain

f:id:In-houseSE:20210324144326p:plain

  • インスタンスのOSイメージを選択し、選択をクリック(今回はAmazonLinux2を使用)

f:id:In-houseSE:20210324144540p:plain

  • インスタンスのCPUとメモリを決めるファミリアーを選択し、次のステップ:インスタンスの詳細の設定をクリック(今回は無料枠のt2.microを使用)

f:id:In-houseSE:20210324144708p:plain

  • ネットワークなどの各種設定を行い、次のステップ:ストレージの追加をクリック(変更するものを記載)
設定項目 設定値
ネットワーク 前回までに作成したVPC
サブネット パブリックサブネット1a
自動割り当てパブリックIP 有効

f:id:In-houseSE:20210324145542p:plain

f:id:In-houseSE:20210324145605p:plain

cf)ファミリアーでtシリーズを使用する場合の留意点
CPUの使用料をクレジットという単位でリソースを管理し消費します。
消費しきった場合をバーストといいます。バーストした状態で使用すると利用しているサーバが重くなります。
携帯電話などの回線使用量を超過した際のような「重い!」という状態です。

cf)ユーザーデータの活用時
事前にサーバーに実装しておきたい項目をシェルで設定するとOS起動時に反映されます。
標準化するスクリプトを用意しておき実装時に使用すると実装誤りなどを抑止できかと考えてます。
応用として「Ansible」というOSSよりサーバーを実装することが可能ですがその辺はいずれ公開していきます。

  • HDDを追加する設定となり、内容を仕様通り設定したら、次のステップ:タグの追加をクリック

f:id:In-houseSE:20210324150417p:plain

  • タグを付与して次のステップ:セキュリティグループの設定をクリック(用途を見やすくするためNameタグを付与して名称を入れておきます。)

f:id:In-houseSE:20210324150655p:plain

cf)タグの種別などの関連ドキュメント
タグエディター - AWS Resource Groupsとタグ

  • 新しいセキュリティグループでセキュリティグループ名、説明を記入し必要なポートを設定後、確認と作成をクリック

セキュリティグループ名:web-server-sg
説明:web-server-sg

セキュリティグループの内訳

タイプ プロトコル ポート範囲 ソース 説明
SSH TCP 22 カスタム 0.0.0.0/0
HTTP TCP 80 カスタム 0.0.0.0/0
HTTPS TCP 443 カスタム 0.0.0.0/0

f:id:In-houseSE:20210324151357p:plain

  • 設定を確認し、起動をクリック

f:id:In-houseSE:20210324151525p:plain

f:id:In-houseSE:20210324151704p:plain

  • 正常に起動されることを確認

今回のテーマは以上です。

補足: 業務で使用するポイントを箇条書きですが、補足しておきます。

  • 運用時は状態のチェックするためにステータスを確認
  • インスタンスの操作より終了=削除となるため留意
  • インスタンスのタイプ変更はたまに実施
  • セキュリティグループで追加するものをアタッチなどは汎用的に実施
  • IAMはアカウント自身のアクセス権限が厳格ならば提供前に付与
  • プライベートアドレスについては、実装時の規約で決まっているならば固定のアドレスを使用(使わない方が汎用性はあります)

SAA学習-EC2-EC2で学ぶToDoおよびEC2の概要

現在進捗はUdemyのカリキュラム数ですと85/311となります。
まだまだ先は長いですが無理のない範囲でゆっくり理解していければと考えてます。
ある程度記事がたまって夏の賞与で受け取ったら自身のサイトを開設し、そちらを本運営にできればと考えてます。

今回のテーマ:EC2で学ぶToDoおよびEC2の概要

カリキュラムの整理

項目 内容
EC2の概要 EC2の基本的な機能や仕組み
EC2インスタンスを起動 EC2インスタンスを新規に起動し、インスタンスの各種情報を確認
公開鍵認証方式 EC2インスタンスの認証方式である公開鍵認証方式を確認
SSHを学ぶ EC2インスタンスに接続する際に利用するSSHプロトコルの仕組みを学ぶ
Apacheサーバーを構築 EC2インスタンスApacheサーバーを構築し、簡易WEBサイトを作成
MySQLサーバーを構築 プライベートサブネットにEC2インスタンスMySQLサーバーを構築
Elastic IPの設定 EC2インスタンスIPアドレスを固定する方法
ユーザーデータの活用 シェルスクリプトを利用したEC2インスタンスの起動時の自動設定を実装
スポットインスタンスの設定 スポットインスタンスをリクエストする仕組み
インスタンスタイプからの起動 インスタンスタイプから目的のインスタンスを探し、インスタンスを起動
起動テンプレートの設定 インスタンスを起動する設定を起動テンプレートに保存し管理
Savings Plansの利用 Savings Plansの購入方法
リザーブインスタンスの購入 リザーブインスタンスの購入方法
専用ホストの利用 専用ホストの割り当て方法
キャパシティ予約の利用 キャパシティ予約の設定方法
AMIの活用 既存のインスタンスAMIを取得し、そのAMIからインスタンスを起動
また、AMIをコピーし別リージョンでインスタンスを起動
AWS Image Builderの活用 AWS Image Builderを利用しAMIの更新管理を実施するパイプラインを作成
EBSの概要 EBSの基本的な機能や仕組み
EBSボリュームの作成 新規にEBSボリュームを作成し、既存のEC2インスタンスにアタッチ
EBSのスナップショットの活用 EBSからスナップショットを取得し、EBSを復元
DLM(Data Lifecycle Management)の活用 DLMによりスナップショット取得をスケジューリング
プレイスメントグループの活用 複数院スタンうに対し、プレイスメントグループを設定

EC2とは

数分で利用可能な重量課金(時間~秒単位)で利用可能な仮想サーバー

  • 起動・ノード追加・削除・マシンスペック変更が数風んで可能
  • CPUは汎用的なIntelを採用
  • 管理者権限で利用可能
  • WindowsLinuxなどのほとんどのOSをサポート
  • OSまでは提供されるタイプを選択することで自動設定されOSより上のレイヤーを自由に利用可能
  • 独自のAmazon Machine ImageにOS設定を作成し、保存して再利用が可能

利用する単位をインスタンスと呼び、任意のAZにインスタンスを立ち上げてサーバーとして利用する

EC2のセットアップは下記のように実施

1.利用するAMI(OS)を選択
2.インスタンスタプ(メモリとCPU)を選択
3.ストレージ(ハードディスク種類とサイズ)を選択
4.セキュリティグループを選択
5.SSHキーペアを設定

AMIイメージ

AMIイメージはOSセッティング方式を選択

  • AWSが提供
  • 3rdparty(他ベンダー)が提供しているものを購入
  • 自作のAMIを利用

インスタンスタイプ

呼び方

f:id:In-houseSE:20210317081429p:plain

インスタンスファミリー

ユースケースに応じてインスタンスタイプを選択

項目 選定ファミリー 理由
汎用 A1、M5、T3など バランスの取れたコンピューティング、メモリ、ネットワークリソースを提供し様々なワークロードに使用。
WEBサーバーやコードリポジトリなどインスタンスリソースを同じ割合で使用するアプリに最適
コンピューティング最適化 C5、C6gなど 高パフォーマンスプロセッサが必要なコンピューティングバウンドなアプリケーションに利用
バッチ処理、メディアトランスコード、高性能WEBサーバー、ハイパフォーマンスコンピューティング、科学モニタリング、専用ゲームサーバーおよび広告エンジン、機械学習推論
メモリ最適化 X1、R5、ハイメモリ、z1dなど メモリ内の大きいデータセットを処理するワークロードに対して高速なパフォーマンスに最適なインスタンス
データベースサーバ※1
ストレージ最適化 H1、D2、I3など ローカルストレージの大規模セットに対する高いシーケンシャル読み取りおよび書き込みアクセスを必要とするワークロード用。
ストレージ最適化インスタンスの前提は数万IOPSもので低レイテンシーなランダムI/Oオペレーションに最適
高速コンピューティング P3、Inf1,G4(GPU)、F1(FPGA)など 高速コンピューティングではハードウェアアクセラレーター(コンプロセッサ)を使用し、浮動小数点計算、グラフィック処理、データパターン照合などの機能をCPUで実行するソフトウェアに最適
ブロックチェーンアプリケーションで採用

※1.データベースを実装する場合、AWSのマネージドサービスでRDSの採用がベースとなりますが、
業務アプリケーションの仕様でパラメータ設定ができない場合はEC2を立てて通常のMWをインストールする

cf)ワークロード:クラウドアプリケーションを構成するリソースとコードのコレクション

インスタンスの購入方式

インスタンスの購入方式に応じて割引価格が提供されるため、用途に応じて割引価格を利用することが重要

購入方式 概要
オンデマンドインスタンス ・通常のインスタンス購入方式
長期契約なしで、コンピューティング性能に対し病態んで支払う。ライフサイクルを完全に制御できるため、起動・停止・休止・開始・再起動・終了をするか任意で決定できる
リザーブインスタンス Amazonリザーブインスタンス(RI)は1年または3年の期間利用を予約することで、通常のオンデマンド料金に比べて大幅な割引価格が適用される
・特定のAZまたはリージョンで利用するキャパシティーを予約できる2つのタイプがある
スケジュールドリザーブインスタンス 1年間にわたり毎日、毎週、毎月ベースの指定された開始時間および期間で繰り返しキャパシティ予約を購入し、必要な時に使用できる
・継続的には実行されないが定期的なスケジュールで実行されるワークロードに利用する
スポットンスタンス ・オンデマンド価格より低価格で利用できるAWS管理用に保持されているが未使用のEC2インスタンス。ユーザーは未使用のEC2インスタンスを静止状態割引でリクエストできる
・実行時間に柔軟性がある場合や中断できる処理に利用

リザーブインスタンスの特徴

利用期間を長期予約することで割引されるインスタンス

項目 スタンダート コンバーティブル
利用期間 1年(40%)
3年(60%)
1年(31%)
3年(54%)
AZ/インスタンスサイズ/ネットワークタイプ変更可否 有り 有り
インスタンスファミリー/OS/テナンシー/支払いオプションの変更可否 なし 有り
リザーブインスタンスプレイスでの販売可否 可能 今後可能となる予定
ユースケース ・一定した状態使用料が可能なワークロード
・災害対策などキャパシティ予約が可能なアプリケーション

物理対応可能なインスタンス

物理サーバーにインスタンスを起動し制御可能なタイプのインスタンス 利用用途によって費用が変わるインスタンス

ハードウェア占有インスタンス

Dedicate Host

  • EC2インスタンス容量を完全に専用として利用できる物理サーバー
  • サーバーにバインドされた既存ソフトウェアライセンスを利用可能
  • V2V移行でソフトウェアラインセンスを使用

Bare Metal

  • アプリケーションが基盤となるサーバーのプロセッサーとメモリに直接アクセス可能なインスタンス
  • AWSの各種サービスとの連携が可能でOSが直接下層のハードウェアにアクセス可能

ストレージの選択

EC2で直接利用できるストレージ(HDD)はインスタンスストアと自分で設定するEBSの2種

インスタンスストア

  • ホストコンピュータに内蔵されたディスクでEC2と不可分のブロックレベルの物理ストレージ
  • EC2の一時的なデータが保持され、EC2の停止・終了と共にクリアされる
  • 無料

Elastic Bloc Store(EBS)

  • ネットワークで接続されたブロックレベルのストレージでEC2とは独立し管理される
  • EC2をTerminateしてもEBSは保存可能で、SnapshotをS3に保持可能
  • 有料

今回のテーマ以上です。

追伸: マークダウン形式で表がうまく記述できないので、要研究ですねぇ。

SAA学習-VPC-VPC小テスト

今回のテーマ:VPC小テスト

設問1:
CIDRのうち512個のIPアドレスを設定するCIDR設定

回答:
10.0.0.0/23

設問2:
パブリックサブネットを設置するために櫃よな設定

回答:
インターネットゲートウェイをルートテーブルに設定

設問3:
NATゲートウェイの特徴

回答:
NATゲートウェイはプライベートサブネットからインターネットへアクセスを可能にするため、パブリックサブネットに設置する

設問4:
ユーザー独自にVPCを設定する前にEC2インスタンスを立ち上げる場合、VPCはどのような設定になるか

回答:
単一のデフォルトVPCにパブリックサブネットが1つデフォルトで設定される

設問5:
ネットワークACLの特徴

回答:
ステートレス

cf)返されたトラフィックルールによって明示的に許可が必要(ステートレス)

設問6:
Direct Connectの特徴で誤っているもの

回答:
Direct Connect デバイスを自社データセンターに設置して接続

cf)AWS Direct ConnectのパートナーまたはISPと連携し、ユーザーのデータセンター、オフィス、またはコロケーション環境からAWS Direct Connectロケーションに接続

設問7:
VPCエンドポイントのゲートウェイ型の特徴

回答:
VPC内部から直接外のサービスと通信する

cf)Gateway型はサブネットに特殊なルーティングを設定し、VPC内部から直接外のサービスと通信します。

設問8:
VPC peeringの特徴で誤っているもの

回答: VPCであればすべてのリージョン間で異なるVPC間のピア接続も可能

cf)2020年2月時点では一部のリージョン間に限られています。中国リージョンは政治的な理由もあり、その他のリージョンとは接続できないようになっています。

設問9:
VPC Flow Logsの特徴について誤っているもの

回答:
セキュリティグループだけでaccepted/rejectされたトラフィックログを取得

cf)セキュリティグループだけではなくNACLのルールも対象

設問10:
NACLの特徴

回答:
番号の順番通りに適用

今回のテーマは以上です。