AWS
S3
RDS
ebs
JAWS-UG

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

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

無線LAN有り

AWS Night school 第二回:RDSとS3

AWSJ 亀田さん

Amazon S3

  • インターネット対応のストレージ
  • 常にオンライン、HTTPでアクセス
  • ウェブ上どこからでも実行可能
  • スケーラビリティ・信頼性・耐久性
  • 保存した分のみの従量課金(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に比べ1/3のコスト

ストレージクラスの選択

リアルタイムアクセスが必要?→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記事を参照)

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ページ1MB
月間ページビュー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から構築
  • 退職後も障害で呼び出される

コード化しておけば、

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

Terraform

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

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

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

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

LT11:JAWS初心者支部から「AWSをこれから始める方へ」

AWSの勉強方法

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

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