D-Learning #1 [AWS勉強会 初級編]に参加してきました。
株式会社ディーネットさん主催のAWS勉強会に参加してきました。
WordPressのプラグインを使ってS3に静的なページを公開する方法や、バックアップツールを使ったS3へのデータバックアップの方法、AWSの課金体系やIAMについての説明、EC2上でのDisk拡張方法などについての内容でした。
それぞれのハマりどころなどについての説明もあり、今後も使えそうな知識を得ることができたと思います。
短時間ながら初心者の僕にとってはかなり濃い内容の勉強会でしたので、復習がてらブログにまとめようと思います。次回以降も是非参加したいと思っています。
■イベント概要
★ハッシュタグ
■スライドおよびメモ的な何か
★S3の基本的な使い方と静的WEBページの作成・公開
WordPressを使った静的なWebサイト作成
- S3の特徴
- 安全性:S3へのアクセスはIAMの鍵による認証が可能・通信暗号化・データも暗号化可能
- 信頼性:99.999999999%の耐久性
- スケーラブル:使いたい分だけ、容量を利用できる
- 安価:
- ストレージ料金:~1TB/月 $0.0033/GB・・・
- リクエスト料金:1000リクエストあたり$0.0047(PUT/COPY/POST) 10000リクエストあたり$0.0037(GET,その他)
- S3から外部へのデータ転送料金:~1GB/月 $0/GB ~10TB/月 $0.201/GB ・・・
- S3へのデータ転送は無料
- 今回使うAWSののサービスと役割
- S3でBUCKETを作成
- IAMの設定
- 新しいユーザの作成
- ポリシーの作成:Attach User Policy -> Amazon S3 Full・・・
- EC2上でWORDPRESSを立ち上げる
- 管理画面に設定が出てくる
- StaticPress:EC2の出力先を設定→変更するボタン
- StaticPress S3:アクセスキーの設定、リージョンの指定→変更するボタン
- 再構築ボタンを押すとS3に静的なWEBページがアップロードされる (2回押さないとなぜか動かない)
- ハマりどころ2(レイアウトがおかしい)
- style.cssの設定
- その他
- EC2は落としても問題ないのか?→静的なページであればOK・検索機能などは使えなくなる
★S3を使ったバックアップ
- IAM
- S3バケットの作り方
- バケット名の入力(はやいもの勝ち、アンダースコア使えない、ハイフンは使える)
- リージョンの選択
便利なバックアップツールの紹介
$aws s3 sync myfolder s3://mybucket/myfolder --exclude *.tmp upload: myfolder/newfile.txt to s3://mybucket/myfolder/newfile.txt
pip install awcli
(例)0 3 * * aws s3 sync myfolder s3://mybucket/myfolder | logger -t <tag>
- s3cmd
(例)0 3 * * s3cmd sync /path/to/files s3://<bucket>/ | logger -t <tag>
- S3バケット一覧 s3cmd ls - S3へデータのアップロード s3cmd put -r /path/to/files s3://<bucket> - S3で利用している容量の表示 s3cmd du s3://<bucker> - S3とのデータ同期 s3cmd sync /path/to/files s3://<bucket>
- s3cmdの注意点
yum --enablerepo=epel-testing s3cmd
s3cmd -configure bucket_location = US bucket_location = ap-northeast-1
- Duplicity
- duplyというツール経由でDuplicity利用
$duply <profile> <command>
- コマンド比較
- バックアップ $duply <profile> backup $duplicity <target> s3:///<Endpoint>/<bucket> - リストア $duply <profile> restore <target_path> $duplicity s3:///<Endpoint>/<bucket> <restore_dir> - 古いバックアップデータの削除 $duply <profile> purgeFull --force $duplicity remove-all-but-n-full <count> <target> (指定世代分を残し、それよりも古いものを削除)
- 設定ファイル(プロファイル)の作成
- 作成 $duply <profile> create - 場所 /home/<user_name/.duply/<profile>/conf - rootユーザの場合 /etc/duply/<profile/conf
- 設定ファイルの編集
GPG_KEY='_KEY_ID_' - 暗号化する鍵の指定 - コメントアウトすると共通鍵暗号方式になる「GWG_PW」のみ指定 GPG_PW='_GPG_PASSWORD_' - 鍵のパスフレーズを指定 TARGET='s3://<Endpoint>/<bucket>' - バックアップの保存先を指定 SOURCE='<backup_source>' - バックアップ対象を指定 TARGET_USER='<AWS access key ID>' TARGET_PASS='<AWS secret key>' - IAMで作成した専用ユーザの情報を記載 MAX_AGE=<age> - 保存しておくデータの古さ - s/m/h/D/W/M/Y が指定可能 MAX_AGE=10m の場合(データ削除時に、直前のバックアップから10分以上経過しているものを削除) MAX_FULLBKP_AGE=<age> - フルバックアップを行うタイミングの指定 - 前回のバックアップから指定時間を経過していれば、フルバックアップを実行 - MAX_FULLBKP_AGE=1Dの場合 1日以内にバックアップを実行すると増分バックアップ 1日以上経過してからバックアップを実行するとフルバックアップ MAX_FULL_BACKUPS=<n> - バックアップの削除コマンドを実行しても残すフルバックアップの世代数
- duplicity/duplyの注意点
$duply <profile> purgeFull --force MAX_FULL_BACKUPS=<n>で指定した世代分より前のものは増分を含めて削除される cronでバックアップとデータ削除を定期的に実行 duply <profile> backup duply <profile> purgeFull -force
- 動作確認時の注意点
- 時刻をずらさない。S3との時間がずれると動かない
- duply側の設定で時間を短くして動作確認をする
- S3のバックアップは多岐に渡る
★AWS料金体系とIAMの話
IAM
IAM(Identify and Access Management)とは - AWS上での様々なアクセス権限を管理するサービスの名称 - 料金はかからない
- IAMUserを使わなかったら・・・*
- AWSアカウントの利用者管理が煩雑
- 作業履歴が取れない
- その気になれば何でもできてしまう
- IAMUserを使う場合・・*
- ユーザ管理が簡易になる
- 各ユーザの作業履歴を取得可能(CloudTrailと組み合わせて)
- AWSアカウントが空気の存在になる
- デモ
- IAMユーザを作成し、パーミッションを設定する
- IAM Groupsでユーザーの一括管理
- IAM Roles
料金体系
- 料金について
- EC2について
- AWS Simple Monthly Calculator で料金のシミュレーションができる
- 従量課金(一時間毎)
★EC2でのDisk拡張方法、スポットインスタンスの作り方
- EC2のディスク拡張領域
- インスタンスの停止
- shutdown -h now
- もしくは管理コンソールからstop
- スナップショットの取得、スナップショットからボリュームを作成
- アタッチされているボリュームを確認
- Block devices /dev/sda1 ←メモっておく
- 詳細画面のActionsから DetachVolume → CreateSnapshot → スナップショットのIDが表示 → リンクをクリックすると
- ボリュームをインスタンスにアタッチと起動
- 作ったボリュームを選択してAction→どのインスタンスに取り付けるかを選択、どこにマウントするか(Device)メモったパスを選択
- サーバーの起動(マネジメントコンソールから起動、しばらくまつ)
- OSごとの対応*
- RHEL(HVM)
- EPELをインストール
- cloud-utils-growpartをインストール
- cloud-initの設定に「- growpart」を追加
- growpartコマンド
- リブート
- GPT
- gdsk,
- まとめ
- EC2で容量拡張は可能だが、ダウンタイムが発生する。OS・AMIによってもクセがあるので、工数がかかる作業となる。容量拡張が必要とならない設計にするのがベター
- DBならRDSを使うとか、ログファイルはS3に保存するとか、EC2以外のサービスと組み合わせる