#はじめに
こんにちは、SIerに20卒で入社した新米プログラマーのyuuunです。
社内SNSに投稿したことはあるのですが、そこからより多くの方に見ていただこうということでこちらのQiitaに初投稿してみます。技術的な記事はまだ恐れ多かったのでイベントの参加レポから投稿していきたいと思います(いつか技術的な記事を颯爽と投稿したい)。
#AWSome Day Online Conferenceに参加した理由・目的
こちらのイベントに参加した目的としては、業務でAWSに触れる機会があり、一部機能(AWS LambdaやEC2、RDSなど)の使用方法について学ぶ機会があったので体系的に学ぶことで今後の業務に役立てたいと考えたためです。
#セッションの紹介
AWS 認定クラウドプラクティショナー準備コースとなる「AWS Cloud Practitioner Essentials」をベースとしたトレーニングです。
※AWSome Dayの公式サイトはこちら
本当は「はじめての AWS ~初級者から中級者への道筋。クラウドアーキテクチャの理解を深める~」について聞きたかったのですが今回のセッションには含まれないとのことで、以下4点のセッションについて学びました。
・AWS のグローバルインフラストラクチャとネットワークおよびコンピューティング
・ストレージとデータベース
・AWS のセキュリティの基本
・Well-Architected Framework と料金の話
以下学んだ内容を箇条書きします。
##AWS のグローバルインフラストラクチャとネットワークおよびコンピューティング
・オンプレからクラウドへの移行
グローバルインフラストラクチャとは?
オンプレの場合→データセンター
リージョン(地域)、アベイラビリティゾーン(AZ)
オンプレでいうとデータセンター群が仮想で存している
・リージョンがなぜ最低2つ以上のAZからなっているのか
1つのAZが使えなくなっても他のAZでも使えるようにしている=可用性が高い
→データセンターを2つたてた、複数たてたのと同等
・VPC=仮想プライベートネットワーク
ネットワークを司る機能を提供する
・コンピューティングシステム=仮想サーバのシステム
・EC2=仮想サーバのシステム
オンプレでいうVM
インスタンスタイプのバリエーションが豊富
要件に合わせて作成でき、後から変えることが可能
・ELB
複数のインスタンスにトラフィックを分散してくれる
負荷分散はELBがあれば自動で対応してくれる
・ALB リクエストレベルで動作する(レイヤー7)、細かく振り分けられる、柔軟性がある
・NLB 接続レベルで動作する(レイヤー4)、ALBと比べるとレイヤーが少し下がるうえ、細かいレイヤで振り分けることはできないものの、パフォーマンスが高い
・CLB 今あまり使っていない
・EC2 Auto Scaling
トラフィックを救うために用意したキャパシティーのほとんどが使われていないという事態を無くすことができる、しかも自動
スケールアウトとスケールインを行ってくれる
ELBと一緒に使う
・Lambdaを作成しCloudWatchでモニタリング。ELBと一緒に使用してアプリケーションの負荷を処理するのに適切な数のEC2インスタンスを生成、削除することで必要なコンピューティング容量を守りつつ、障害への対応、コスト面も最適化することができる
##ストレージとデータベース
データストアとは=データを保管しておく場所
EBS(Elastic Block Store)
EBSで使用可能、オンプレの場合は外付けストレージ
自動でレプリケートしてくれる
・S3(Simple Storage Service)
オブジェクトストレージ、オンラインストレージ
容量無制限
・RDS(Relational Database Service)
データがリレーショナルデータ
オンプレの場合→二次元の表形式、何かの形式でつながっている状態
DBは運用、管理が大変→楽にできる
クリック一回自動で同期の取得、マルチAZ配置によって一個RDSが落ちても使える
・複数のサーバーからアクセスできる
AWSマネージドデータベースサービス
・Amazon RDS
マネージド型で、セットアップ、運用、拡張が容易なリレーショナルデータベースサービス
・Amazon DynamoDB
完全マネージド型で、高速なパフォーマンス、シームレスな拡張性と信頼性をもつNoSQLサービス
・Amazon Redshift
マネージド型で、高速で管理も万全なペタバイト規模のデータウェアハウスサービス
・Amazon ElastiCache
マネージド型で、セットアップ、運用、拡張が容易なキャッシュサービス
##セキュリティの基本
・AWSセキュリティの紹介
・AWS責任共有モデル
・ネットワークセキュリティ
・AWSの認証とアクセス管理
セキュリティはAWSの最重要事項
・責任共有モデルとは?
AWS側、AWSを利用する側それぞれでデータを守る=責任共有
暗号化等機能の提供は行うけれど設定するのは利用者側となる
つまり、セキュリティ対策をしっかり行うためには提供されている暗号化機能を理解しておかないといけない
IAM=AWSの認証とアクセス管理
・ユーザー ログインする時使用し、種類としてはRootとIAMユーザーがある
・権限(ポリシー) EC2触ってもよいのか?RDS起動できるのかなど設定できる
・グループ 対応したグループに入っていればユーザーをまとめてEC2閲覧だけ、触れるなど設定できる
・ロール ポリシーをつけて人やサービスに渡すことができるため、この機能で柔軟な設定ができる
アカウントルートユーザー
Eメール、パスワード、AWSアカウント名等でログインするアカウント
できれば常日頃から使わない!
→そんな時使うのがIAMユーザー、必要最低限のユーザーを作成する
AWS IAM ポリシーを作成して権限を割り当てる
基本拒否、明示的に許可を書かないと使えないようになっている
ログイン方法についてはAWSコマンドでもログインすることができる
AWS STS(一時的セキュリティ認証情報)
15分~36時間の間で一時的にログインできるようにすることができる
クロスアカウントアクセスやフェデレーション、モバイルユーザーやEC2ベースのアプリケーションのキー更新の際などに使うことができる
MFAとは?
多要素認証
ワンタイムパスワードを発行して守る
ログインのセキュリティを上げることができる
##Well-Architected Framework
Well-Architected Framework=クラウド最適化のためのフレームワーク
※Well-Architected Frameworkの公式サイトはこちら
オンプレの既存構成をリフト&シフトすると?
オンプレからそのまま持っていく=リフト
→クラウドの長所が活かせない
シフト=最適化
→コストの最適化できている?
これらの問題をWell-Architected Frameworkが解決できる
障害の対策への興味深い試み
障害を避けるためには障害を起こし続けること
ゲームデー
本番環境で突然回線を落とす等行う
TCOで比較
TCO計算ツールという便利なものがあるらしい
※TCO計算ツールの公式サイトはこちら
##感想
業務で少し触れる機会があったのでそうなんだと思えるところが多々あったので思っていたよりも難しく感じずに最後まで聞くことができました。
なので、業務で触れたことがあるけれどあまり詳しく知らない方にはとても良い内容だと思います。
EC2、RDSやIAMについて業務で使用していたので復習することができ、その中で知らなかった機能についても学ぶことができてよかったです。
特にIAMについてはルートアクセスキーがあるAWSアカウントは削除することが望ましいことや、
なるべく個々のIAMユーザーを作成したうえでグループを使用して権限を割り当てること、
強力なパスワードポリシーを設定すること、権限のあるユーザーに対してMFAを有効にすることによりセキュリティを上げる対策を行うことを知り、
業務でも実際にそのような対応を行っていて特に疑問に思わず使用していたのですが、セキュリティの観点で必要(いわゆるベストプラクティス)だったのだと理解できてよかったです。
また、思っていたよりもAWSは充実していることが理解でき、これからはクラウド!となっている理由が理解できたような気がします。