AWS-UG 初心者支部#14 「AWS Night school」 メモ

# JAWS-UG 初心者支部#14「AWS Night school & LT」

無線LAN有り

# AWS Night school 第二回：RDSとS3

AWSJ 亀田さん

## [Amazon S3](https://aws.amazon.com/jp/s3/)

* インターネット対応のストレージ
* 常にオンライン、HTTPでアクセス
* ウェブ上どこからでも実行可能
* スケーラビリティ・信頼性・耐久性
* 保存した分のみの従量課金（[EBS](https://aws.amazon.com/jp/ebs/)に比べて10倍以上の費用対効果）

S3は確保領域の設計が不要
※EBSでも10GBずつ容量を増やすことができる

EBSにはデータ耐久性の指標が設定されていないので、定期的なバックアップが必要
EBSのバックアップ先はS3が良い

S3ではファイルをデータオブジェクトとしてバケットに保存される

バケット名は全ユーザーでユニークである必要がある
※testというような名称のバケットは作成できない

ファイルの世代管理・保存に対応

無制限のオブジェクトを保存可能
（1つのオブジェクトは最大5TB）

99.999999999% のオブジェクト耐久性
99.99% のオブジェクト可用性

HTTPSのエンドポイントを提供可能

監査などのためにアクセスログを取得可能

標準ベースのRESTインターフェイスを提供

オブジェクトの暗号化をサポート

S3はOSから直接マウントできない

#### 100GB保存した場合の費用
S3=283円
EBS=1,356円（シングルAZの場合）
EBS=2,712円（マルチAZの場合）


#### セキュリティー
以下でアクセスを制御

* アクセスコントロールリスト
* バケットポリシー

#### バージョニング
アップロードごとに新しいバージョンを生成
削除されたオブジェクトの取得や以前のバージョンへのロールバックが可能

複数バージョンをファイルを保存しておくため、課金額は増える

バケットの3種類の状態

* バージョニング無効（デフォルト）
* バージョニング有効
* バージョニング一時停止

バージョニングを有効にしている状態でファイルを削除すると
削除フラグが立つのみで実体は消えていない

削除フラグが立っているファイルにアクセスすると404

#### Amazon Glacier
S3より低コストのアーカイブサービス
低頻度アクセスのデータに最適
99.999999999%の耐久性
取り出し時間：3〜5時間
S3に比べ１/３のコスト

#### ストレージクラスの選択
リアルタイムアクセスが必要？→No→Glacier
↓
Yes
↓
アクセス頻度が高い？→No→S3標準低頻度アクセス（IA）
↓
YES
↓
S3標準    

#### ライフサイクルポリシー
30日アクセスがないとS3低頻度へ
さらにアクセスがないとGlacierへ

#### S3とEC2、EBSの違い・使い分け
EC2のEBSで一時的にファイルを受付け、それをS3バケットへ転送
その後はS3にアクセスさせる

## RDS
マネージド型サービス
ミドルウェアの設計が不要のため、アプリケーション開発に集中できる

RDSインスタンスのOSへログインはできない
OSレベルでチューニングしているようなケースでは利用NG

#### 自動バックアップ
データベースを特定時点まで復元可能（5分間隔）
最大35日間まで保持期間を選択可能

#### 手動スナップショット
ユーザーによって取得可能、AmazonS3に保存される

クロスリージョンスナップショットで別リージョンにも保存可能

#### セキュリティ
VPC内でDBインスタンスを実行
IAMポリシーでリソースへのアクセスを制限可能
セキュリティグループ使用
実行時・保存時のDBインスタンス・スナップショットを保護するにはRDSの暗号化を使用する

#### EC2との違い
スケーラビリティ
マスターは増えず、スレーブのみ増える

マルチAZの動作により別AZにレプリケーションされる

#### Aurora
Amazonが再設計したデータベース
（詳しくは[過去のQiita記事](https://qiita.com/SatoshiShinohara/items/a4a511a2fa09b5a80649)を参照）

Auroraマルチマスターが発表されているのでそのうち使えるようになるらしい


第3回はVPCを予定


# LT

## LT1：AlexaスキルでDynamoDBを使った
日付を指定するとゴミ集日を教えてくれるスキル
NHKの記事に技術書典に出品した本が出ていた！

Alexaスキルで会話が終了した後にデータを保存したい場合DynamoDBが利用できる

なぜDynamoDBなのか？

* Lambdaと相性が良いため
* イベント駆動、お手軽
* RDSの場合、複数のコネクションによりコネクションプール不足が発生
* 複数のコネクションが来てもDynamoDBがスケールして対応できる
* 複雑ではないデータを扱うため
  
DynamoDBはキーとして設定できる列数が限定されている
プライマリキー1個 セカンダリインデックス5個

RDSとDynamoDBではテーブル設計が異なるため注意

## LT2：IAM PolicyやRoleあたりの使い方の話
AWSアカウント（ルートアカウント）なんでもできる
↓作成
IAMユーザー
↑アタッチ
IAMポリシー（何をしてよいかの権限設定）
↓一時的に付与
IAMロール

AWS STSにより一時的な許可を受けIAMロールの権限を使えるようになる
IAMロールの信頼ポリシーに付与したいIAMユーザーを記載しておかないと権限が与えられない

## LT3：サーバなしで立てるウェブサイト (S3+CloudFront)

AWSでWebサイトを立てたい場合
EC2、Lightsailが思いつく

構築・運用が大変…

S3+CloudFrontがオススメ！

月額料金
1ページあたり20ファイル
1ページ１MB
月間ページビュー5万
900円ぐらい

足りない機能は外部サービスで補う

## LT4：IDaaSを用いた複数AWSアカウントへのログインで良かったこと困ったこと

アカウントを100弱管理している

oneloginを使用している

踏み台アカウント→スイッチロール

踏み台アカウントで作業している
別のサービスにログインするとき入り直す必要がある
↓
セレクトロールページを選択できるようになった
スイッチロール不要

#### oneloginで良かったこと
フリープランがある
ユーザー無制限
スイッチロール式ならこれでOK

ロールアドミン権限がある
OneLginでグループを作成し、そこに追加できる権限を各サービスのリーダーに付与

#### 悪かったこと
自動化したいがAPIが足りない
バグがあったが3ヶ月程で直してくれた

## LT5：怖くないクラウドインフラストラクチャサービス

EFS NFSv4.1
EC2間のファイル共有などに利用

## LT6：MFA、失くした
MFACODEを入れる画面で、
「Troubleshoot MFA」をクリック

メール認証・電話認証を経て晴れてログインできる

## LT7：Go言語と事例で学ぶAWS Lambda

Lambdaとは？
サーバレス・FaaS
関数はイベントに発火して実行可能

GO言語とは？
並列実行に強い 構文がシンプル

SlackBOTやクローラーに利用している

## LT8：Lightsail 触ってみよう

Laightsailとは？
VPS

料金がわかりやすい

Laightsailコンソールから数手でサーバ構築可能

構築後、Web画面からコンソールにアクセス可能（SSMみたいな感じ）

デフォルトのキーペアが存在する

ロードバランサーの能力が不明

マネージドDBが使えるようになった

## LT9：初心者だからこそ使いたいBeanstalkで本番環境

インフラ初心者が本番環境を作るのにBeanstalkがおすすめ

小規模から大規模まで対応可能
高度な知識がなくてもおまかせできる

デフォルト環境セットがある

Beanstalkが起動するEC2・RDSの費用のみ課金

## LT10：TerraformではじめるInfrastructure as Code
IaCとは？
コードによるインフラ管理
手動だと大変

* 構築した人じゃないとわからない
* 担当者も記憶にない
* 障害で復旧できない
* 徹夜で0から構築
* 退職後も障害で呼び出される

コード化しておけば、

* インフラの設定が誰でもわかる
* 障害が発生してもコマンド１つですぐに復旧
* 作業ミスもおこらない
* インフラエンジニアがいなくても管理できる

#### Terraform
インフラストラクチャ定義ツール

事前にIAMユーザー作成 AWSCLIをインストールしておけばOK

コードで作ったものを手動で変更しないこと
複数人で作業する場合はftstateの管理に気をつけること

本番用のインフラは必ずコード化

## LT11：JAWS初心者支部から「AWSをこれから始める方へ」
AWSの勉強方法

技術書典5で販売されていた「AWSをはじめよう」がオススメ
Boothで買えるよ

次回、AWS Night school#15は12月7日（金）予定