AWSome Dayの備忘録

# はじめに

11月16日にあったAWSome Day Online Conferenceのまとめ

https://awsomeday-apj.virtual.awsevents.com/homejp


# AWSの概要、グローバルインフラストラクチャーとコンピューティング

## AWSの概要

- データセンター
    - 通常、数千台のサーバを収容
- アベイラビリティーゾーン（AZ）
    - 1つ以上のデータセンターの集合
    - 障害を分離する設計
- リージョン
    - 3つ以上のAZで構成
    - 世界全体で31のリージョンが存在

リージョン内のAZは物理的に離れており、複数のAZを利用することでAZレベルの障害の影響から保護でき、システムの高可用性を確保可能
リージョンは100km圏内、AZ間は数km~数十km離れている


### サービスの分類

- アンマネージドサービス
    - スケーリング、耐障害性、可用性をユーザが管理
- マネージドサービス
    - スケーリング、耐障害性、可用性をAWS側が管理


## EC2

- アンマネージドサービス
- サイズ変更可能なコンピューティングキャパシティ
- 従量課金制

## AWS Lambda
- プログラミングファイルと実行条件を設定することが可能
- サーバレスコンピューティング
    - サーバを管理せずにアプリケーションとサービスの構築が可能な環境
    - スペック決めたりする必要がない
- プログラムの実行基盤
- 最大で同時に1000まで増える
- プログラムが動いているタイミングだけ課金



# ストレージとデータベース

- サーバ自身からしかアクセスできないストレージ
    - 内臓ストレージ（ブロックストレージ）
- 複数のサーバからアクセスできるストレージ
    - 共有ストレージ（オブジェクトストレージ）
      - Amazon Simple Storage Service (Amazon S3)

## ストレージ

### Amazon S3

- サーバレスサービス
- 容量管理する必要なし
- バケットに保存可能なオブジェクト数は無制限
- 99.999999999%の耐久性を実現するように設計（イレブンナイン）
    - 3拠点にまたがってコピーされている
- イベントトリガーとしてLambda関数を呼び出し可能
- アップロードしたファイルにオブジェクトURLが設定される
    - https://バケット名.s3.amazonaws.com/ファイル名
- 容量課金

### Amazon S3 Glacier

- 読み書き頻度の少ないデータ用のストレージ
- 非常に低コスト
- 読みだしに時間とコストがかかる

### Amazon Elastic Block Store (Amazon EBS)

- EC2インスタンスの永続的なブロックストレージ
- バックアップはS3に自動保存される


## データベース

- EC2上でのデータベース運用
- AWSのデータベースサービスの運用（マネージドサービス）

#### 分類
- トランザクションデータベース
    - 複数アクセス、細かいアクセスに向いている
- データ分析/リレーションシップ
    - 沢山のデータを一気に読み出すのに向いている
- インメモリデータストアとキャッシュ
    - 短い期間の保存、速い読み書きに向いている


### Amazon RDS

- マネージドサービス
    - スケーリング、高可用性、バックアップなどデータベースの外側はAWSがやってくれる
    - 冗長化やフェイルオーバーも自動
    - 複数AZに配置することで可用性、耐久性を確保

### Amazon Aurora

- クラウド向けに構築された、MySQLとPostgreSQLと互換性のあるリレーショナルデータベース
- マルチリージョンなども可能

### Amazon DynamoDB

- キーバリューのフルマネージドシステム
- 向いているアプリケーションの特徴
    - 極端な水平スケーリング機能が必要
    - シンプルに大量のデータ
    - 素早く簡単にスケールする必要がある
    - 複雑な結合は不要


# ネットワークとセキュリティ

## ネットワーク

### Amazon Virtual Private Cloud (Amazon VPC)

- AWSクラウドのプライベートネットワーク空間を作ることが可能
- 複数AZにまたがるネットワークを作ることが可能
- インターネットゲートウェイを作ることで外のネットワークと接続可能

#### サブネット分割
- VPC内のアドレス範囲のセグメント/パーティション
- 種類
    - パブリックサブネット
    - プライベートサブネット


#### インフラストラクチャの保護
- セキュリティグループ
    - ネットワークインターフェイス（インスタンス）レベルで送受信されるトラフィックを許可するために使用
    - 通常はアプリケーション開発者によって管理
- ネットワークアクセスコントロールリスト
    - サブネットに出入りするトラフィックを許可または拒否する
    - 出る通信、入る通信それぞれ別に設定することが可能
- ルートテーブル
    - ネットワークトラフィックの送信先を決定するために使用されるルートと呼ばれる一連のルールが含まれる
    - VPC、ゲートウェイ、サブネットに関連付ける


#### インフラストラクチャとの接続
- AWS Client VPN
- AWS Direct Connect


## セキュリティ

#### 責任共有モデル
- AWSとユーザ、それぞれ責任範囲がある

#### アクセス管理と認証

- 認証
    - その人が申請した本人か確認をとること
- 認可
    - その人がどんなことをしてもいいか許可をあたえる

### AWS Identity and Access Management (IAM)

#### AWSリソースへのアクセスを安全に制御
- アクセス許可をユーザ、グループ、ロールにきめ細かく割り当て
- AWSアカウントへの一時的なアクセスを共有
- 無料

#### サービスコントロール
- ユーザ
    - AWSアカウント内のユーザ
    - 各ユーザには独自の認証情報がある
    - 特定のAWSアクションを実行できる権限を付与される
- グループ
- ロール
    - AWSのリソースに権限を付与することが可能
        - eg. EC2に対してS3へのアクセス権を付与

#### リソースベースのアクセスコントロール
- S3バケットポリシーなど、リソース側からアクセスコントロールを行う

#### IAMポリシー
- AWSのサービスへのアクセス
- 権限の割り当て

### アクセス状況の追跡
#### AWS CloudTrail
- AWSアカウントのユーザアクティビティとAPIの使用状況の追跡
- ログファイルはS3バケットに送信される

### 設定内容のチェックとアドバイス
#### AWS Trusted Adviser
- コスト、パフォーマンス、セキュリティ、耐障害性、サービス制限の観点で評価をしてくれる


# 次のステップ

AWSスキルビルダー

https://explore.skillbuilder.aws/learn/course/internal/view/elearning/1875/aws-cloud-practitioner-essentials-japanese-na-ri-ben-yu-shi-xie-ban

AWSランプアップガイド

https://aws.amazon.com/jp/training/ramp-up-guides/

AWSハンズオンビギナー

https://aws.amazon.com/jp/events/aws-event-resource/hands-on/