#はじめに
AWSについて最低限の知識を得るために、AWS認定資格の1つである「クラウドプラクティショナー」の対策本を読み、ざっくりまとめたいと思います。
####■セキュリティ
AWSではセキュリティの責任の所在を、AWS社とユーザで分けている。
‐AWS対応:データセンターの設備・環境・ハードウェア、ハイパーバイザー
‐ユーザ対応:上記以外のもの(OS、アプリケーション、ユーザのID・パスワードなど)
ただしAWSが提供するサービス内容(マネージドかそうでないか)に依って線引きは異なり、基本的にはユーザが触れられない部分をAWS、それ以外をユーザが担当する形となっている。
「IAM」(クラウドへのアクセス管理サービス)を設定することで、様々なサービスへのアクセス権を一括で制御することができる。
そのほか、DDos攻撃から保護する「AWS Shield」や、ファイヤウォール機能を果たす「AWS WAF」などのサービスがある。
####■リージョンとアベイラビリティゾーン
リージョンは全世界にあり、リージョン内には必ず2つ以上のアベイラビリティゾーン(AZ)が存在する。また、1つのAZは複数のデータセンターから構成されている。(データセンター単位、AZ単位で停電や自然災害などの障害が起こった場合の可用性を担保するため)
ユーザは任意のリージョンを選択して使用することができる。また複数のリージョンを使用することも可能。(東京とサンパウロなど)
####■VPC
「Amazon Virtual Private Cloud」の略。プライベートなネットワーク環境。リージョン内の複数のAZをまたがって構築可能。
1つのVPCに対してインターネットゲートウェイを1つのみ作成する。
サブネットは、VPCで設定したIPアドレスの範囲内で、AZとIPアドレスを指定して作成する。リソースに応じて、外部接続できる「パブリックサブネット」と、外部接続せずにリソースを保護する「プライベートサブネット」に分けることが可能。
###主なサービス
####■EC2
「Amazon Elastic Compute Cloud」の略。サーバ。
主なメリット:
・必要な時に必要なだけ利用可能
→不足や遊びを減らして柔軟に対応できる。
・コストは使用した分だけ
→インスタンスの稼働時間単位で課金。アウト通信(リージョンの外部)で転送料金が発生。
・変更可能なインスタンスタイプから性能を選択
→運用しながら適切なタイプに変更可能。インスタンスタイプによって課金単価が異なる。
・セキュリティグループでトラフィック制御可能
→複数のインスタンスをセキュリティグループと設定し、トラフィックのインバウンド制御可能。
・数分で調達と起動が可能
・世界中のリージョンから起動場所を選択可能
・AMIによっていくつでも同じサーバを起動可能
####■ELB
「Elastic Load Balancing」の略。負荷分散装置。
・ロードバランサータイプ
→HTTP・HTTPSのリクエストでは「Application Load Balancer」、それ以外のTCP通信では「Network Load Balancer」を用いる
・ヘルスチェック
→正常なインスタンスかの判断
・インターネット向け/内部向けの選択可能
→ELBのDNS名にパブリックIPアドレスとプライベートIPアドレスどちらが紐づくかで設定が変わる
・クロスゾーン負荷分散
→AZを超えて負荷分散することが可能
####■Auto Scaling
EC2インスタンスを必要に応じて自動で増減することが可能。(数の増減=水平スケーリング)
どのようなインスタンスを、どこで、どのタイミングで起動するのかを事前に設定する。
####■Lambda
ソースコードさえ用意すれば、自動で実行してくれるサービス。
主なメリット:
・サーバ構築/管理が不要
→OS、ミドルウェアインストール、セキュリティパッチ適用などの対応不要
・一般的な言語に対応
→C#、Java、python、Rubyなどで実行可能
・並列処理
複数リクエストを並列処理可能、自動でスケーリングを行う
・ミリ秒単位で課金
実行されている時間単位で課金され、待機時間は課金対象とならない
・他のAWSサービスとの連携
→S3へのデータアップロード、特定の時間などをトリガーとし、サービス同士をつなげることが可能
####■S3
「Amazon Simple Storage Service」の略。完全マネージド型のオブジェクトストレージ。
主なメリット:
・ストレージ容量が無制限
→上限がないため、容量の不足を気にせず利用することができる。
・高耐久性
→オブジェクトは複数のAZに保存されるため、バックアップや冗長化等を意識しなくてよい(耐久性99.99999999999%)
・インターネット経由でアクセス可能
セキュリティ対策:
・アクセスコントロールリスト(ACL)
→バケット・オブジェクト単位で、読み取り・書き込み権限の制御可能
・バケットポリシー
→ACLよりも細かい単位(任意のディレクトリ以下のオブジェクトなど)で制限可能
料金体系:
・ストレージ料金
→1か月の平均保存料で算出。アクセス頻度が異なるストレージクラスやリージョンによって単価は変わる。
・リクエスト料金
→データのダウンロード・アップロードのリクエストで発生。
・データ転送料金
→リージョン外へ転送した場合に発生。
####■RDS
「Amazon Relational Database Service」の略。
MySQL、Oracle、PostgreSQLなどのメジャーどころを利用可能。
EC2にDBをのせることも可能だが、その場合はミドルウェアの管理が必要となる。RDSではその部分が不要となる。また、バックアップもデフォルトで7日間自動で適用される。
####■DynamoDB
非リレーショナルデータベース、NoSQL型のデータベースサービス。1つのデータは項目として格納され、キーに紐づく属性は動的で不定形。厳密なトランザクションには向かないが大量のアクセスがある場合には有効。
#あとがき
かなりざっくり、そしてポイント絞っていますが、導入の導入くらい(?)は認知できたんじゃないかなと思っています。
(そもそもインフラ側の人間ではないので、インスタンスの意味がわからなかったりしましたが、それを知れただけでもヨシ!としましょうね。。)