平凡エンジニアによる平凡ブログ

平凡インフラエンジニアがスキルアップを目指してプログラミングやクラウドやサーバといったインフラのアウトプットをしていきます!

【AWS】ELBの特徴と概要についてまとめてみる

今回のテーマ

今回はAWSのサービスの一つであるELBについて
概要をまとめることにする。

目次

  • ELBとは
  • ELBの特徴 -まとめ

ELBとは

ELBの正式名称は「Elastic Load Balancing」で
ELBはAWS内で使用することができるロードバランサです。
公式より引用すると以下の通り記載されています。

Elastic Load Balancing は、受信したトラフィックを複数の
アベイラビリティーゾーンの複数のターゲット (EC2 インスタンス、コンテナ、IP アドレスなど)   
に自動的に分散させます。  

登録済みターゲットの正常性を監視し、正常なターゲットにのみトラフィックをルーティングします。

もう少し簡潔にすると正常なターゲットのみに均等に通信を分散してくれる
機能のことです。

ロードバランサは主に実務でも
冗長化されたWEBサーバに対して、クライアントの通信を分散させることで
負荷を分散化させたり、障害が発生しているサーバに対して通信させず
もう一台のサーバに振り分けたりするために使用されます。

ELBの特徴

ELBの特徴は以下の点が挙げられる。

正常なターゲットのみ通信をルーティングさせる

ヘルスチェック(正常性確認)を随時行い、異常を検知したターゲットには
通信をルーティングしない。

自動でスケールアップ

設定したターゲットの数とその負荷によって
自動でELBをスケールアップもしくはスケールダウンする。

従量課金

AWSと同様に使用した分のみ課金される。

まとめ

  • ELBはAWSクラウド上で使用されるロードバランサのこと
  • ターゲットを指定し、アクセスの負荷分散を行うことができる
  • 異常が出たターゲットには通信をしないようにすることで 可用性を高めて、稼働率を上げることができる
  • 自動でスケールアップ、スケールダウンするのでターゲットの増減対応が可能
  • 従量課金

参考文献・URL

特徴 - Elastic Load Balancing | AWS

【AWS】EBSの特徴(容量拡張、可用性、暗号化)

今回のテーマ

EBSの容量拡張、可用性、暗号化というテーマで
箇条書きでまとめることにする。

前回

前回はEBSの概要についてまとめている。

【AWS】EBSの概要について - 平凡エンジニアによる平凡ブログ

目次

  • EBSの容量拡張
  • EBSの可用性と耐久
  • EBSの暗号化

EBSの容量拡張

EBSの容量と変更については以下の特徴が挙げられる。

  • 容量の拡張はできるが、縮小はできない
  • 同一のボリュームの容量を変更した場合、6時間は次の変更ができない
  • 1ボリュームあたり最大16TBまで拡張可能
  • 基本はオンラインで対応可能。
  • ただし現行世代以外だとインスタンスの停止やEBSのデタッチが必要な場合がある
  • 何度でも拡張は可能
  • ボリューム拡張後はOSのファイルシステムの拡張も必要

EBSの可用性と耐久

EBSの可用性と耐久についての特徴は以下の通りである。

  • EBSは内部的にはAZ内で複製されている
  • そのため月の可用性は99.99%(ほとんど継続して稼働している)
  • 故障の可能性を考えてSnapShotでバックアップを取得する運用が必要
  • バックアップからリストアする場合はスナップショットから新規EBSを作成する

EBSの暗号化

最後に暗号化については以下の通りです。

  • EBS全体を暗号化するオプション設定がある
  • 設定を行った場合はそこから作成される
  • 既存のEBSを暗号化するにはスナップショットを暗号化して
    そこから新規EBSを作成する

学習文献

【AWS】EBSの概要について

今回のテーマ

今回はEC2インスタンスで使用されるストレージ領域である EBSの概要についてまとめることにする

目次

  • EBSとは
  • EBSの特徴
  • EBSの種類
  • Snapshotについて
  • まとめ

EBSとは

AWS公式では以下の通り記載されています。

Amazon Elastic Block Store (EBS) は、Amazon Elastic Compute Cloud (EC2) と共に使用するために設計された、スループットトランザクションの両方が集中するどんな規模のワークロードにも対応できる、使いやすい高性能なブロックストレージサービスです。

つまりEC2インスタンスにアタッチされて使用されるブロックストレージのことをいいます

EBSの特徴

ブロックストレージには別にインスタンスストアがありますが
インスタンスストアと比較してのEBSの違いは以下の点になります。

またAZ(アベイラリティゾーン)内にあるEC2インスタンスであれば
EBSを付け替えることも可能という特徴もあります。

EBSの種類

EBSの種類には大きくSSD,HDD,マグネティックに分けられ
以下のボリュームタイプがある。

名称 特徴
汎用SSD 最も一般的なSSD
アプリケーションリソースを保存
プロビジョンドIOPS 最も性能が良い
高いI/O性能
  • HDD
名称 特徴
スループットHDD 高いスループット
大容量のデータ
コールドHDD アクセス頻度が低いログ、アーカイブ
  • マグネティック(Magnetic)
名称 特徴
マグネティック 旧世代のボリュームでは使用できない
アクセス頻度の低いワークロード(アプリに必要なコードやリソースの集まり)

Snapshotについて

EBSをバックアップする際にはSnapshotを使ってバックアップする。 特徴としては以下が挙げられる。

  • SnapshotはS3に保存される
  • SnapshotからEBSを復元時は別のAZにも復元できる
  • Snapshot作成時に圧縮される。圧縮後のサイズに課金される

まとめ

  • EBSはEC2インスタンスにアタッチして使用されるブロックストレージ
  • EBSはネットワークで独立しており、データの永久保存が可能
  • EBSのボリュームタイプには5種類ある。
  • EBSのバックアップにはSnapshotが使用される
参考URL

Amazon EBS(EC2 ブロックストレージボリューム)| AWS

学習文献

【AWS】Lambdaの基本について(関数、トリガー、プログラム)

今回のテーマ

AWSのサーバレス機能であるLambdaの概要をまとめます。

目次

  • Lambdaとは
  • Lambdaに必要な設定
  • まとめ

Lambdaとは

Lambdaとは公式では以下のように説明されています。

AWS Lambda は、サーバーのプロビジョニングや管理の必要なしにコードを実行できるコンピューティングサービスです。

簡単にいうとアプリケーションの処理をサーバ等の環境を準備せず
ソースコードのみで実行させることができるサービスです。

本来であれば、EC2インスタンスを作成し、サーバ上に使用する言語や使用するツール等などをインストールするといった環境構築が必要になりますが その環境をLambdaが提供することができます。

サーバを必要としていない(準備しない)という意味でサーバレスな機能
と表現されています。

Lambdaに必要な設定

Lambdaには関数という単位で作成され、関数には プログラムトリガーの設定が必要です。

「トリガーにより関数が実行されてプログラムが処理されます」

AWS上の画面ではまず関数を作成して、その関数内でトリガーと
プログラムを設定していくことになります。

以下はmyfunctionという名前で関数作成後の画面です。 「トリガーを追加」の箇所でトリガーを、下部の関数コードにて実行するプログラムを記載します。 f:id:satoru103:20210202232622p:plain

使用例としては例えばS3に画像がアップロードされた場合に別のS3にファイルがアップロードされる関数を作成しようとすると以下の設定が必要です。

1.トリガー

該当のS3にファイルがアップロードされる

2.プログラム

該当のS3にファイルが保存される。

その他、Lambdaにはメモリ、タイムアウトの時間、IAMロールの設定なども 設定が必要だが、今回は省く

まとめ

  • Lambdaとはインフラ環境を用意せずにコードを用意するのみで処理を 実行することができるサーバレスなアプリケーションである
  • Lambdaには関数という単位を作成し、トリガーとプログラムを設定する必要がある

今回はLamdbaの基本をまとめたが、次回はその他設定項目であったり
トリガーやプログラムの設定について深堀していきたい

参考

AWS Lambda(イベント発生時にコードを実行)| AWS

学習文献

【AWS】VPCの概要について(1)

今回のテーマ

AWSVPCについて概要をまとめます。
VPCはサービスが多岐にわたるため、何回かに分けてまとめる予定です。

目次

  • VPCとは
  • サブネットの設定
  • サブネット作成時のベストプラクティス
  • まとめ

VPCとは

VPCとは公式で以下の通り説明されている。 説明の通り、AWS内で構築できる仮想ネットワークのことです。

Amazon Virtual Private Cloud (Amazon VPC) は、定義した論理的に分離された仮想ネットワークで AWS リソースを起動できるようにするサービスです。

サブネットの設定

VPCを設定した後にVPC内部でアドレスを分ける場合はサブネット
を設定する。 主な特徴としては以下の通りである。

  • VCP内では最大200サブネットを作成できる(拡張可)
  • サブネット内に仮想ルータが作成されて、この仮想ルータが ネットワークACLやルートテーブルの機能を果たしている。

サブネット作成時のベストプラクティス

サブネットを作成する際のAWSのベストプラクティスとして
挙げられているマルチAZという構成がある。

インターネットに接続されるように構成されたパブリックサブネットと 接続できないようにするプライベートサブネットをアベイラリティゾーンにそれぞれ人ずつ構成する方式のことである。

このようにすることで片方の アベイラリティゾーンが万一電源不良などで
落ちた場合でも片方のアベイラリティゾーンで稼働できる。

まとめ

  • VPCとはAWS内で作成できる仮想ネットワークのこと
  • VPC内部でアドレス区間を分けるにはサブネットを使用する
  • サブネットを作成するときはマルチAZ方式で作成するのが ベストプラクティス

参考URL

Amazon VPC(仮想ネットワーク内での AWS リソースの起動)| AWS

学習文献

【Linux】起動しているプロセスを確認する(ps、topコマンド)

今回のテーマ

OSの一つであるLinuxサーバ時に使用するコマンドを復習のため整理する。
今回はプログラムの実行単位であるプロセスについてpsコマンドとtopコマンドを見ていく

目次

  • プロセスとは
  • psコマンドについて
  • topコマンドについて
  • まとめ

プロセスとは

プロセスとは日常的には「工程」など物事の道筋的な意味で使われいる。

Linux上ではプログラムが実行可能な状態になっているものと定義できる。

プログラムは通常ハードディスクに保存されており、それがメモリとCPUを使用することで実行されているもしくは実行可能な状態になっているものです。

プログラムの起動状況を見るときは基本的にプロセスの稼働状態を見ることになります。

psコマンド

そこでプロセスの稼働状態を見るコマンドで代表的なものがpsコマンドです オプションなしでpsコマンドを打つと以下のような表示になります。

オプションなしだとログインしているユーザ名で起動されているプロセスが表示されます。

  PID TTY          TIME CMD
 1231 pts/0    00:00:00 bash
 1404 pts/0    00:00:00 ps

オプションは様々ありますが、システム上で稼働しているプロセス全て
見るときはオプションにaxをつけます。 さらに起動しているユーザ名をつける場合はuをつけます。

なのでシステム上で稼働しているプロセス全てを確認する際に
よく使うのはps auxで使うことが多いです。

topコマンド

プロセスの稼働状態で継続して見たいときはtopを使います。
前述したpsコマンドだとそのコマンドを使った時点でのプロセスが
表示されますが、そのまましばらく稼働状況を見続けたい時に使います。

ただし表示させ続けるため、CPUを多く消費し負荷をかけてしまうことが あるので、不要なときはすぐに「Ctrl + c」やqで止めましょう。

// 出力例
  2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd    
  4 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 kworker/0:0H
  6 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 mm_percpu_wq
  7 root      20   0       0      0      0 S  0.0  0.0   0:00.54 ksoftirqd/0 
  8 root      20   0       0      0      0 I  0.0  0.0   0:00.91 rcu_sched   
  9 root      20   0       0      0      0 I  0.0  0.0   0:00.00 rcu_bh      
  10 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migrat
補足

もし稼働しているプロセスを終了させたいとなった時にはkillコマンドを
使います。

ハイフンの後にPID(プロセスID)を指定してください。

kill -[PID]

強制終了したい場合は-9をつけます。

kill -9 [PID]

まとめ

  • プロセスの稼働状況を見るときはpsコマンドを使う
  • 単純にシステムで稼働している全てのプロセスを見るときはps auxを使う
  • プロセスの稼働状況を続けて見たい場合はtopコマンドを使う
  • プロセスを終了させるにはkillコマンドを使う

コマンドのオプションはその他多数あるが、上記紹介した最低限の基本は
覚えておきたいですね。

参考

psコマンドについて詳しくまとめました 【Linuxコマンド集】

【AWS】CloudTrailの概要について

今回のテーマ

今回はAWSの操作履歴などを残すCloudTrailの概要をまとめる。

CloudTrailとは

公式には以下のように記載されています。
例えばAWSアカウントにどのアカウントでログインしたかや
どういった操作を行ったのかをストレージサービスであるS3にログを保存できるサービスです。

AWS CloudTrail は、AWS アカウントのガバナンス、コンプライアンス、運用監査、リスク監査を行うためのサービスです。CloudTrail を使用すると、AWS インフラストラクチャ全体でアカウントアクティビティをログに記録し、継続的に監視し、保持できます。

多くのメリットがあると思われるが、以下のメリットがあると考えられる。

  • AWSはネットワークが使用でき、アカウントがわかってしまえば
    部外者がログインできてしまうサービスでもあるので、不正な操作があったかどうかを記録できる

  • 操作内容を記録できることで、問題が発生した際の原因発見に繋がる可能性がある。

CloudTrailで保存されるログ

ログの種類は3つあります

1.管理イベント

リソース(サービス)に対して行った操作履歴
例えばEC2インスタンスの作成を行うなど
デフォルトでも90日間は保存されています。

2.データイベント

リソース(サービス)内で発生したイベント履歴
デフォルトで作成されておらず、手動で作成が必要(有料)

3.インサイト

例えばAWSのアカウントそのものに対して発生した異常なイベントなど
デフォルトで作成されておらず、手動で作成が必要(有料)

まとめ

  • CloudTrailとはAWSでの操作履歴などをS3にログとして保存するサービス
  • ログの種類は3種類あり、管理イベントはデフォルトで90日は保存されているが、その他2つは設定が必要でかつ有料になっている

今回は簡単にではあるがここまで
S3への保存やパケットの暗号化などCloudTrailについてはまだ記載する内容があるので、後日詳細にまとめたい

参考

CloudTrail の概念 - AWS CloudTrail