今回、AWSに関する基礎知識をしっかり把握するために、「AWSome Day Online Conference」を視聴しました。
AWSに関する基礎知識を5つのセッションを通して、3時間で学ぶことができます。
理解を深める為に、セッションの内容を整理しまとめていきます。
AWSome Day Online Conferenceとは?
AWSome Day Online Conference は、クラウドジャーニーのはじめの一歩として、AWS クラウドに関する基礎知識を3時間で学ぶ無料の初心者向けオンラインイベントです。クラウドに関する事前知識は必要ありません。
AWS のエキスパートが 5 つのモジュールを通して、AWS クラウドのコアコンセプトやコアサービス、革新的なソリューションを解説します。本イベントに参加することで、AWS での構築をスタートし、クラウドを活用するためのスキルを身につけることができます。
セッション概要
- セッション①:AWSの概要、グローバルインフラストラクチャーとコンピューティング
- セッション②:ストレージとデータベース
- セッション③:ネットワークとセキュリティ
- セッション④:AWS でイノベーション
- セッション⑤:次のステップに向けて
2人の方が解説する側と受講する側とで別れて進めていきます。
途中で実際のマネジメントコンソールを操作し、デモを挟んで解説してくれるので、操作方法も理解しやすかったです。
1on1で質問も受け付けているので、気になったことも気軽に聞けます。
セッション①:AWSの概要、グローバルインフラストラクチャーとコンピューティング
クラウドを導入すると何がよいのか?
- 先行支出を変動支出へ → 使用した分だけ支払う「従量課金」モデルにより、コストが変動支出になる。その為、ビジネスの成長に合わせてスケールし、コストを最適化できる。
- スピードと俊敏性の向上 → 数分で必要なリソースをプロビジョニングでき、開発やサービスの展開が迅速に行える。
- 圧倒的なスケールメリット → 多くのユーザーが利用することで、インフラの維持コストが下がり、技術投資やサービスの最適化が可能になる。
- データセンターの運営と維持にかかる費用の削減 → 自社での設備投資や運営の負担がなくなる為、運営コストが削減され、効率的にリソースを活用できる。
- キャパシティ予測の不要 → 前に容量を予測する必要がなく、需要に応じてリソースを柔軟に調整できる。
- 数分で世界中にデプロイ → 世界中で展開している為、数分・数秒でサービスをデプロイし、グローバルに展開できる。
AWSグローバルインフラストラクチャ
-
リージョン
各AWSリージョンは、地理的に離れていて、3つ以上のAZで構成されている。 -
アベイラビリティゾーン(AZ)
各リージョンの中にある仮想のデータセンター群。障害を分離する設計。
ベストプラクティス
複数のAZ を利用することで、
AZ レベルの障害の影響から保護でき、システムの高可用性を確保。
コンピューティング
Amazon Elastic Compute Cloud (Amazon EC2)
- 仮想サーバー
- マネージドサービス
- OSのインストールまではAWS側で行うが、パッチをあてたりするのはユーザー側。
- Amazon マシンイメージ(AMI)
- OSやインストールしているソフトウェアや設定等をテンプレート化したもの。これにより一貫性のある環境を迅速に展開できる。
- インスタンスファミリー
- メモリやCPUの性能。600を超える数がある。
- 代表的なもの
- 汎用 :M,T系(低トラフィックのウェブサイトとウェブアプリケーション、中小規模のデータベース)
- コンピューティング最適化 :C系(高性能ウェブサーバー、動画エンコーディング)
- メモリ最適化 :R,X系(高性能データベース、分散型メモリキャッシュ)
- ストレージ最適化 :I,D系(データウェアハウジング、ログやデータを処理するアプリケーション)
- 高速コンピューティング :P,G系(3D ビジュアライゼーション、機械学習)
サーバーレスコンピューティング
サーバーを管理せずにアプリケーションとサービスの構築と実行が可能な環境。
スケーリングも自動で行い、課金は実行されている時間のみ。
AWS Lambda
- フルマネージドサービス
- 複数のプログラミング言語をサポート
- スケジュールや他リソースとの連携で実行可能
- サーバーレスといっても実際にサーバーがないわけではない
- 同時実行数は1000台
★以下2点質問をしてみました。
-
Lambdaはコンテナで実行されていると聞いたことがありましたが、どのように実行されているのでしょうか。
<回答>
Lambdaのサーバーはコンテナで実行されている。しかしDockerのようなコンテナではなく、AWS側で管理されている軽量なコンテナで実行されている。 -
Lambdaのコールドスタートを解消する方法はどのような手段がありますでしょうか。
<回答>
プロビジョンドコンカレンシーを有効にするか、定期的な実行をしておく。
セッション②:ストレージとデータベース
ストレージのいろいろ
データの種類に応じた適切なストレージの選択。
サーバー自身からしかアクセスできない
Amazon Elastic Block Store (Amazon EBS)
- EC2インスタンスの永続的なブロックストレージ
- 自動レプリケーションの実施
- さまざまなドライブの種類を選択可能
- スケールアップ/ダウンが短時間で可能
- プロビジョニングした分に対して課金
- スナップショット機能
- 暗号化可能
複数のサーバーからアクセスできる
Amazon Simple Storage Service (Amazon S3)
- データの保存と取得のために構築されている
- オブジェクトへの高速で、耐久性/可用性に優れたアクセスが可能
- バケットに保存可能なオブジェクト数は無制限
- ウェブ上のどこからでも、いつでもデータを保存および取得可能
- 99.999999999% の耐久性
- ブロックパブリックアクセスを有効にしていても、署名付きURLで分,時間単位で共有することができる
Amazon S3 Glacier
- 長期保管用データストレージ
- バックアップのアーカイブ
- 非常に低コストなストレージ
他のストレージの種類
- Amazon EFS
- Amazon EC2インスタンス向けの、スケーラブルなネットワークファイルストレージ
- AWS Storage Gateway
- オンプレミスからクラウドストレージ(実質無制限) へのアクセスを提供するハイブリッドクラウドストレージサービス
- Amazon FSx
- 一般的な商用およびオープンソースのファイルシステムの機能とパフォーマンスを備えた、フルマネージドで費用対効果の高いファイルストレージ
データベースのいろいろ
-
Amazon EC2 上でデータベース運用
オンプレはこちらが多いが、クラウドではあまりこの方法は使わない。 -
AWSのデータベースサービスの利用
設定、管理、メンテナンスが容易で、ボタンを押すだけの高可用性。
パフォーマンスに集中できる、マネージド型インフラストラクチャ。
リレーショナルデータベースとNoSQLの違い
-
リレーショナルデータベース
外部キーを使って異なるテーブル間でもデータが関連していることを管理する。これによって、データの矛盾やエラーを防ぎ、正しいデータが保たれる。
keyword:参照整合性、ACID特性、トランザクション -
NoSQL
データはキーとバリュー(値)、ドキュメント、カラムファミリー、グラフなど、さまざまな形式で格納される。スキーマは柔軟で、必要に応じて変更できる。
★使用例
Amazonの商品画面を例として説明していてわかりやすかったです。
ユーザー情報、商品情報、在庫情報・・・リレーショナルデータベース
セッション情報、ショッピングカート・・・NoSQL
目的別データベース
-
リレーショナルデータベース
- Amazon RDS
- わずか数回のクリックでクラウド内にリレーショナルデータベースをセットアップ、運用、スケーリング可能、自動フェイルオーバー
- Amazon Aurora、Microsoft SQL Server、Maria DB、ORACLE DB、Postgre SQL、MySQLが使用できる
- 基本的にマルチAZで冗長構成をとる
- Amazon Aurora
- クラウド向けに構築された、MySQL とPostgreSQL と互換性のあるリレーショナルデータベース
- 高い可用性と耐久性、高パフォーマンス、互換性、マルチリージョン、高い拡張性
- Amazon Redshift
- Amazon RDS
-
NoSQL
- Amazon DynamoDB
- フルマネージドサービス
- 高スループット、低レイテンシのread/ write, 制限のない拡張性
- キーとバリュー(値)という単純な構造超高速なパフォーマンスRDBMSに比べ読み書きが高速
適しているアプリケーション
極端な水平スケーリング・シンプルに大量のデータ・すばやく簡単にスケールする必要がある・複雑な結合は不要
- Amazon ElastiCache、Amazon MemoryDBfor Redis
- インメモリ
- Amazon DocumentDB
- ドキュメント
- Amazon Keyspaces(for Apache Cassandra)
- ワイドカラム
- Amazon Neptune
- グラフ
- Amazon QLDB
- 台帳
- Amazon Timestream
- 時系列
- Amazon DynamoDB
セッション③:ネットワークとセキュリティ
ネットワーク
- VPC
- AWSクラウドのプライベートなネットワーク空間
- サブネット
- プライベートサブネット
- パブリックインターネットから直接アクセスできない
- パブリックサブネット
- パブリックインターネットから直接アクセス可能
- プライベートサブネット
- ルートテーブル
- ネットワークトラフィックの送信先を決定するために使用される「ルート」と呼ばれる一連のルールが含まれる
- ルートテーブルはVPC、ゲートウェイ、サブネットに関連付けることができる
- ネットワークACl
- サブネットに出入りするトラフィックを許可または拒否する
- インバウンド・アウトバウンドの許可・拒否をそれぞれ明示的に設定する必要あり
→ ステートレス
- セキュリティグループ
- ネットワークインターフェイス(インスタンス) レベルで送受信されるトラフィックを許可するために使用される
- インバウンドを許可したら、アウトバウンドは自動で許可される
→ ステートフル
責任共有モデル
AWSとユーザー、それぞれの責任範囲を明確化している。
AWSの認証について
AWS Identity and Access Management (IAM)
-
認証(その人が申請した本人か確認を取ること)、認可を行う(その人がどんなことをしていいか許可を与える)
-
IAMユーザー
- 独立したAWSアカウントではなく、アカウント内のユーザー。IAMユーザーはアクセス許可に基づいて特定のAWSアクションを実行できるように権限を付与される
-
IAMグループ
- 同じアクセス許可を持つユーザーの集合体
- IAMユーザー個別にポリシーの設定をしなくても良い
-
IAMロール
- ユーザーやリソースが引き受けられる一時的な権限
-
IAMポリシー
- アクセス許可設定
リソースベースのアクセスコントロール
誰がそのリソースにアクセスできるかを制御する仕組み。IAMポリシーとは違い、アクセスされる側のポリシー。
アクセス状況の追跡
AWS CloudTrail
- AWSアカウントのユーザーアクティビティ(誰が・何を・いつ・どこへ)とAPI の使用状況の追跡
- ログファイルはAmazon S3 バケットに送信される
設定内容のチェックとアドバイス
AWS Trusted Advisor
- コスト削減、パフォーマンスの向上、セキュリティの強化に役立つガイダンスを提供するサービス
- サポートプランによって確認できる項目が違ってくる
- フルで見る場合、ビジネスプラン以上が必要
セッション④:AWS でイノベーション
AWS IoTの活用
IoTはさまざまな方法で活用されているが、課題も多い。
例えば・・・
- 一貫性のない、または断続的なネットワーク接続
- デバイスはリモートで、物理的にアクセスできない場合がある
- 生産中の大規模なデバイス群\
- デバイスやリソースの状況
- 低コンピューティングパワー、低スペックオンデバイスリソース
- デバイスが大量のストリーミングデータを出力する場合がある
これらの課題に役立つAWSサービスの例が
- AWS IoT Core
- デバイスを安全にAWSクラウドに接続して、リアルタイムデータのやり取りや処理ができるマネージドサービス
- AWS IoT Greengrass
- クラウドの機能をローカルデバイスに拡張するソフトウェア
機械学習
機械学習モデルを開発、トレーニング、デプロイできるAmazon SageMakerや画像から顔や物体を検知し、感情や性別等を簡単に判断できるAmazon Rekognition。人工衛星の中継点となるAWS Ground Station等、様々なサービスがあり、多様なソリューションが構築できると感じた。
おわりに
クラウドの概念から、AWSの主要なサービス、ネットワーク等、絶対に抑えておかないといけないことを復習できる良い機会になりました。
また、リレーショナルデータベースとNoSQLの違いやそれらの役割等、あいまいな知識をデモやわかりやすい解説で納得することができました。
講師のお二人が最後に言っていた、「触って学ぶのが重要。インプットした知識をもとに手を動かすことでより理解が深まる」という言葉はまさにその通りだと思うので、まだ使用していないサービスはハンズオン等でアウトプットをしていきたいと思います。
また、認定試験もアウトプットの一環なので、コツコツ勉強していこうと思います!