はじめに
真野智之氏による[AWSによるクラウド入門まとめ]
(https://tomomano.gitlab.io/intro-aws/#_%E8%91%97%E8%80%85%E7%B4%B9%E4%BB%8B)で勉強したことをまとめた。
クラウド
- クラウドはシステムの運用をインターネット上で行う。
- クラウドの対義語としてサーバーやソフトウェアを自分で運用するのがオンプレミスである。
AWS
- RegionはAWSのデータセンターの所在地でAWSコンソールのメニューバーでRegionを選択できる。
- 東京Regionはap-northeast-1で、大阪Regionはap-northeast-3
- Availability Zone (AZ) はRegion内で独立したデータセンターでAZ間で障害が起きたときのカバーをする。
- AWSの利用にはAWSコンソールとAPIがある。APIはREST APIである。
- AWS APIはリソースを操作するコマンドとタスクを実行するコマンドに分けられる。
- AWSのリソース管理の仕組みをCloudFormationといい、ハードウェアをプログラムによって記述し管理する考え方をInfrastructure as Code (IaC) と呼ぶ。
- CloudFormationはJSON (Javascript Object Notation) フォーマットで記述される。
- CloudFormationの記述を容易にするためのツールが AWS Cloud Development Kit (CDK)であり、Pyhon, Java, TypeScriptで CloudFormationを自動生成することができる。
- EC2はAWSに仮想サーバーを立ち上げ、個々の起動状態のサーバーをインスタンスと呼ぶ
SSH
- SSH (Super Shell)はリモートサーバーに安全にアクセスするためのツール
GPU
- 機械学習の計算にはGPUが有用で、AWSではクラウドでGPUが使用できる。
- AWSでGPUを使用するにはEC2のインスタンスタイプでGPU搭載のものを選択する。
AMI
- AMI (Amazon Web Image) はOSのようなものでEC2インスタンスタイプを起動するのに必要である。
- AMIには各種プログラムがインストールされたものもあるので環境構築の手間を省ける場合がある。
- ディープラーニングに必要なプログラムであるTensorFlowやPytorchが予めインストールされているAMIがDLAMI (Deep Learning AMI) である。
Docker
- AWS上にDockerを用いた計算機クラスターを作成するためのツールがECS (Elastic Container Service)
- FargateはEC2と同様に仮想サーバーに計算を走らせるサービスで、ECSでの利用に特化している。
- FargateはEC2よりも制約が多いがECSで利用する分には設定が少なくインスタンスの起動時間も少ない。
Surverless
- AWSでサーバーレスコンピューティングの中心を担うのがLambdaである。
- Lamdaに実行したいプログラムを予め登録しておき、実行するためのコマンドinvokeを送信することでプログラムを実行する。
- Lambdaのようにサーバーとしての管理や機能をクラウドに任せるサービスのことをFaaS (Function as a Service)と呼ばれる。
- S3(Simple Storage Service) はサーバーレスなストレージシステムを提供しデータの量だけ保存領域が拡大していく。
- DynamoDBはサーバーレスなデータベースである。
おわりに
今回はAWSとクラウドに関する知識をまとめた。学んだことがあれば追記予定。