tanish-kr's learning log

Learning output log

Aws

EC2

Amazon EC2 は、AWSが提供する仮想化環境上で稼働する仮想サーバー。EC2の稼働時間によって料金が課金される、従来課金型が基本となる。

EC2の機能

  • インスタンス: 仮想コンピューティング環境
  • Amazon Machine Image(AMI): サーバーに必要なビットをパッケージ化した、インスタンス用に事前に設定されたテンプレート
  • インスタンスタイプ: インスタンス用のCPU、メモリ、ストレージ、ネットワーキングキャパシティーの様々な構成
  • キーペアを使用したインスタンス用の安全なログイン情報(AWSはパブリックキーを保存し、ユーザーはプライベートキーを安全な場所に保存する)
  • インスタンスストアボリューム: インスタンスを停止、休止、または終了するときに削除される一時データ用のストレージボリューム
  • Amazon EBSボリューム: Amazon Elastic Block Store(Amazon EBS) を使用したデータ用の永続化ストレージボリューム
  • リージョンおよびアベイラビリティーゾーン: インスタンスやAmazon EBSボリュームなどのリソース用の複数の物理的な場所
  • セキュリティグループを使用してインスタンスに到達可能で、プロトコル、ポート、ソースIP範囲を指定できるファイアウォール
  • Elastic IPアドレス: 動的クラウドコンピューティング用の静的なIPv4アドレス
  • タグ: Amazon EC2リソースに割り当てることが出液るメタデータ
  • 仮想プライベートクラウド(VPC): AWSクラウドから論理的に分離され、ユーザー独自のネットワークにオプションで接続できる仮想ネットワーク

セットアップ

キーペアの作成

  1. Amazon EC2 コンソールにログイン(https://console.aws.amazon.com/ec2/)
  2. ナビゲーションで、キーペア を選択する
  3. キーペアの作成 を選択する
  4. Name(名前) にキーペアの名前を入力する。(最大255文字のASCII文字、先頭または末尾にスペースを含めることはできない)
  5. File Format(ファイル形式)プライベートキーを保存する形式を選択する。
  6. キーペアの作成を選択する
  7. ブラウザから秘密キーファイルがダウンロードされる(一度切り)
  8. SSHクライアントを使用してLinuxインスタンスに接続する場合、プライベートキーファイルにアクセス許可を設定する
$ chmod 400 my-key-pair.pem

セキュリティグループの作成

SSHを利用できるIPアドレスをセキュリティグループで制限する

  1. Amazon EC2 コンソールにログイン(https://console.aws.amazon.com/ec2/)
  2. ナビゲーションバーで、セキュリティグループのリージョンを選択する。キーペアを作成したリージョンと同じリージョンを選択する。
  3. ナビゲーションペインで、Security Groups を選択する。
  4. セキュリティグループの作成 を選択する。
  5. 基本的な詳細 で次の操作を行う a. 新しいセキュリティグループの名前と説明を入力する b. VPC リストで、リージョンのデフォルトVPCを選択する。
  6. インバウンドルールで、インスタンスに到達する特定のトラフィックを許可するルールを作成する
  7. アウトバウンドルール はデフォルトのルールをそのまま適用する
  8. セキュリティグループの作成 を選択する。

EC2インスタンスの利用

インスタンスの起動

  1. Amazon EC2 コンソールを開く
  2. コンソールダッシュボードでLaunch Instanceを選択する
  3. Amazon Machine Image(AMI)を選択する
  4. インスタンスタイプを選択する
  5. インスタンスと詳細の設定で要件に合わせてインスタンスの設定を行う
  6. ストレージの追加でインスタンスに追加のEBSボリュームやインスタンスストアボリュームをアタッチするか、ルートボリュームの設定を編集することが出来る
  7. タグの追加は必要に応じて行う
  8. セキュリティグループの設定でSSHを利用す場合、SSHに対しての設定を追加するか、既存で作成済みのセキュリティグループを選択する

インスタンスタイプ

インスタンスファミリー 利用用途
汎用インスタンス(M2, M3) バランスの取れたCPU、メモリ、ネットワーク性能を備え、汎用的な用途に利用
バーストパフォーマンス(T2, T3, T3a, T4g) 通常時はほとんど負荷は発生しないが、一時的に負荷が発生する開発サーバや小規模システムに利用
コンピューティング最適化(C4, C5, C6) CPU性能が必要なAPサーバ、画像処理等に利用
メモリ最適化(R4, R5, R6, X1e, X2gd, z1d) 大量のメモリが必要なDBサーバ等
ストレージ最適化(D2, D3, H1, I3) 高速なIOPS、大容量のストレージ容量が必要なDBサーバ、ビッグデータの処理等
高速コンピューティング(G4, G3, G2, P2, P3, P4d) GPUやFPGAによる高速処理が必要なグラフィック表示、機械学習等

EC2の購入オプション

  • オンデマンドインスタンス: 起動するインスタンスに対して秒単位で課金される
  • Savings Plans: 1-3年の期間、1時間あたりUSD単位で一定の使用量を契約することにより、コストを削減する
  • リザーブドインスタンス: 1-3年の期間、インスタンスタイプとリージョンを含むインスタンス設定を維持する契約により、コストを削減する
  • スポットインスタンス: 未使用のEC2インスタンスをリクエストすることで、コストを大幅に削減できる
  • ハードウェア専有インスタンス(Dedicated Instance): シングルテナントハードウェアで実行されるインスタンスに対して、時間単位で課金される
  • 専用ホスト(Dedicated Hosts): インスタンスの実行のみを目的とした物理ホストに対しての課金。ソケット単位、コア単位またはVM単位で使用中のソフトウェアライセンスを持ち込むことで、コストを削減する
  • キャパシティー予約: 特定のアベイラビリティーゾーンのEC2インスタンスに対して任意の期間キャパシティーを予約できる

AMI(Amazon マシンイメージ)

インスタンス起動するときに、必ず指定する必要がある。

AMIには次のものが含まれている

  • 1つまたは複数のAmazon Elastic Block Store(Amazon EBS)スナップショット、または、instance-store-backed AMI、インスタンスのボリュームのテンプレート
  • AWSアカウントがAMIを使用してインスタンスを起動可能にするための起動許可
  • インスタンスの起動時にインスタンスにアタッチするボリュームを指定するブロックデバイスマッピング

AMIタイプ

次の特性に基づき、使用するAMIを選択できる

  • リージョン
  • オペレーティングシステム
  • アーキテクチャ
  • 起動許可
  • ルートデバイスのストレージ

起動許可

起動アクセス許可 説明
パブリック 所有者はすべてのAWSアカウントに起動許可を与えます
明示的 所有者は特定のAWSアカウントに起動許可を与えます
暗示的 所有者にはAMIの暗示的起動許可があります

ルートデバイスのストレージ

Amazon EBS-backed AMI or Instance Store-Backed

特徴 Amazon EBS-backed AMI Amazon Instance store-backed AMI
インスタンスの起動時間 通常1分以内 通常5分以内
ルートデバイスのサイズ制限 16TiB 10GiB
ルートデバイスボリューム EBSボリューム インスタンスストアボリューム
データの永続化 デフォルトでは、インスタンスを終了するとルートボリュームは削除される(DeleteOnTerminationフラグ) EBSボリュームにある他のデータは全て、インスタンスの終了後もデフォルトで保持される インスタンスストアボリューム上のデータは、インスタンスの存続中のみ使用できます
変更 インスタンスの停止中に、インスタンスタイプ、カーネル、RAMディスク、およびユーザーデータが変更可能 インスタンスの属性は、インスタンスを削除するまで固定
料金 インスタンスの使用量、EBSボリューム、EBSスナップショットとして保存したAMIに対して料金が発生 インスタンスの使用量やAmazonS3に保存したAMIに対して料金が発生
AMIの作成/バンドル 単一のコマンドまたは呼び出しを使用 AMIツールをインストールして使用する必要がある
停止状態 停止状態になっている場合がある。停止していてもルートボリュームはAmazon EBSに保持される インスタンスが実行中も終了後も、停止状態にすることが出来ない

EC2のストレージ

Amazon EBS(Elastic Block Store)

EC2に仮想的にアタッチされる、ブロックレベルのストレージサービス。インスタンスにアタッチされたEBSボリュームは、インスタンスの有効期限とは無関係に存続する。ボリュームの設定は動的に変更可能。データにすばやくアクセスする必要があり、データを長期に保持する必要がある場合などが利用用途として適している。

EBSボリュームの種類

SSD
  General Puropose SSD   Provisioned IOPS SSD    
ボリュームタイプ gp3 gp2 io2 Block Express io2 io1
耐久性 99.8~99.9%の耐久性 99.8~99.9%の耐久性 99.999%の耐久性 99.999%の耐久性 99.8~99.9%の耐久性
ユースケース 低レイテンシーのインタラクティブなアプリケーション、開発・テスト環境   ミリ秒未満のレイテンシー、持続的なIOPSパフォーマンス、64,000IOPSまたは 1,000MiB/秒を超えるスループット 持続的なIOPSパフォーマンスまたは、16,000IOPS以上のパフォーマンスを必要とするワークロード、I/O集約型のデータベースワークロード  
ボリュームサイズ 1GiB-16TiB   4GiB~64TiB 4GiB-16TiB  
ボリューム辺りの最大IOPS 16,0000   256,000 64,000  
ボリュームあたりの最大スループット 1,000MiB/秒 250MiB/秒 4,000MiB/秒 1,000MiB/秒  
Amazon EBSマルチアタッチ サポート外   サポート対象    
ブートボリューム サポート対象        
汎用SSD

料金とパフォーマンスのバランスに優れている。

Provisioned IOPS SSD

ミッションクリティカルな低レイテンシーまたは高スループットワークロードに適した、高パフォーマンスを提供

HDD
スループット最適化

高いスループットを必要とするアクセス頻度の高いワークロード向けの低コストのHDD

Cold HDD

アクセス頻度の低いワークロード向けの最も低コストのHDD設計