こんにちは!Y.Tです。
今月初旬、AWS公式のトレーニングクラスである、「Architecting on AWS」を受講しました。
3日間終日のオンライン研修で、NWインフラを構築していく上での基本的なサービスの説明や、Well-Architected-Frameworkに基づいた考え方を学びました。
また、ハンズオン環境が用意されており、3日間で6つのハンズオンを実施しました。
ハンズオンでは、WebサイトやWebAppの構築、また、S3、DynamoDBを利用したサーバレスでの在庫通知システムを構築し、サービスの設定方法まで網羅的に知ることができました。
研修1日目
Well-Architectedの考え方やインフラストラクチャ(リージョン、AZ、エッジロケーション)、各サービスのユースケースや特徴(ストレージ(EBS,S3,Glacier,Snowball)、ネットワーキング(EC2,VPC)、データベース
(RDS,DynamoDB,Aurora))をご説明いただきました。
1日目に学んだサービスのまとめ
- S3:
- Amazon Simple Storage Serviceの略(Sが3つ並ぶのでS3)
- マネージド型のオブジェクトストレージ
- HTTPリクエスト時やインターネットへのデータ送信時には料金が発生
※データ受信、S3と同一リージョンのEC2,CloudFrontへのデータ送信時には料金は発生しない - アクセス先が物理的に遠い場合、TransferAccelerrationを利用
- 大容量オブジェクトをアップロードする際はマルチパートアップロードを利用
- EBS:
- Amazon Elastic Block Storeの略
- EC2インスタンスにアタッチして利用するブロックストレージボリューム
- ログ処理やビッグデータにはスループット最適化HDDを利用
- EBS最適化EC2では、ネットワークとEBSへの接続口が異なる(2つの接続口がある)
- EFS、FSx:
- EFS:Amazon Elastic File Systemの略、マネージド型のNFSファイルシステムを提供
- FSx:Amazon FSx for WindowsとAmazon FSx for Lustreがある
- Amazon FSx for Windowsは、サーバーメッセージブロック (SMB) プロトコルを介してアクセスできる、マネージド型のファイルストレージ
- Amazon FSx for Lustre は、高性能ファイルシステムである Lustre を使用したマネージド型サービス
- EFS、FSxともにAZ、リージョン、VPC、アカウントをまたがって共有が可能
- データベース:
- Amazon RDS、Aurora、DynamoDBなどがある
- マルチAZの利点は、レプリケーションにより耐久性、障害発生時のフェイルオーバーにより可用性が向上
- AuroraはMySQLの5倍、PostgreSQLの3倍のスループット、また、3AZで6つデータをレプリケート
- DynamoDBは分散配置のため結果整合性だが、オプションで強力な整合性が利用可能。また、オンラインカートやゲームなどアカウント毎のデータ管理に最適
- 異種DBエンジン間の移行において、テーブル定義はSCT、実データはDMSで移行する
- EC2:
- Amazon Elastic Compute Cloudの略
- サイズ変更可能なコンピューティングプラットフォームサービス
- Dedicated Hostsは実行されるハードウェアを選定し特定可能
- VPC:
- Amazon Virtual Private Cloudの略
- AWS環境内で定義できるユーザ専用の仮想ネットワーク
- 1つの会社でVPCが1つの場合→ハイパフォーマンスコンピューティング
※小~中規模 - 1つの会社でマルチVPC→単一チームでアクセス管理を容易にする
※中~大規模 - 1つの会社でマルチアカウント→大規模な組織や複数のチームがある場合
※大規模 - VPC同士の接続:
- VPCピア接続:IP空間重複不可。異なるAWSアカウント間で利用可能
- TransitGateway:ルーティングサービスでハブの役割。5000台のVPCとオンプレミス接続可能
研修2日目
接続パターンやRDSのスケーリングなどを学びました。
また、午後にはグループワークがあり、4-5人のグループに分かれ、サンプルシナリオを元にAWSでの設計を考え、お互いに意見交換を実施しました。
サンプルシナリオはWeb、App、DBサーバの3層で構成されているECサイトをAWSでどのように構成するか考えるもので、細かい指定はなく、セキュリティサービスを追加するなど、ある程度自由に回答しても良いものでした。
公式サイトに以下のような構成の記載はありますが、CloudWatchなどの監視ツールや、ALBの他、Web層にNLBを記載していた受講生もおり、とても勉強になりました。
2日目に学んだサービスのまとめ
- ENI:
- Elastic Network Interfaceの略
- VPC内で利用可能な仮想ネットワークインターフェース
- ユースケースは管理用NWの作成、セキュリティアプライアンス利用時など
- 1つのリージョンで5つまで
- 接続パターン別:
- AWS環境とオンプレ→DirectConnect、VPN
- VPC同士→VPCピアリング(VPC少数)、TransitGateway(大規模向け)
- プライベート接続→VPCエンドポイント(プライベートリンク、GWエンドポイント(S3、DynamoDB))
- リードレプリカの水平スケーリング:
- RDSはAurora、MySQL、PostgreSQL、MariaDBで可能であり、非同期的に実行
- Auroraは最大15個のレプリカがある
研修3日目
疎結合の構成やS3とLambdaを利用したサーバレスアーキテクチャを学びました。
また、どこまでのディザスターリカバリ対策を実施するのか、対策の程度に応じて利用するサービスなどについても知ることができました。
3日目に学んだサービスのまとめ
- CloudFormation:
- AWS CloudFormation は Amazon Web Services リソースをモデル化し、セットアップすることができるテンプレート機能のようなサービス
- JSON/YAML形式で記載
- Resources、Parameters、Mappingセクション
- CloudFront:
- グローバルコンテンツ配信ネットワーク (CDN) サービス
- コンテンツを失効させるためにTTLの調整、オブジェクト名の変更
- Elasti Cathe:
- Redis または Memcached に互換性のあるマネージド型のインメモリデータストア
- Memcathed→シンプル
- Redius→NoSQL型でフェイルオーバーが可能
- 誰かが参照している際にファイルがロックされる(受信ハンドル)という
- SQS:
- Amazon Simple Queue Serviceの略
- マネージド型のメッセージキューイングサービス
- 標準キュー:順番は無保証であり2回以上送信される可能性がある
- FIFOキュー:メッセージは1回のみ処理であり、1秒当たり最大300件
- Lambda:
- Lambda はサーバをプロビジョニングしたり管理する必要なくコードを実行できるコンピューティングサービス
- 並列処理
- API Gateway:
- 開発者が簡単に API の作成、公開、保守、モニタリング、保護が可能
- 最大数十万のWebAPI呼び出しの処理が可能
- EC2、Lambda、その他任意のWebAppが実行可能
まとめ
個々にサービスの特徴だけの説明ではなく、主にユースケースに基づいたサービス紹介でより実践的に学ぶことができました。また、講師の方が参考になる記事をいろいろ教えてくれたり、質問も気軽にチャットでできたりと、とても勉強になりました。