kwyの日記 RSSフィード

2018-01-24

S3 のお勉強(その3)

| 21:37


  • バケット名はグローバルレベルで一意である必要があるが、S3 自体はリージョン単位でのサービスである

意外とハマる

バージョン管理

  • バージョン管理を一旦有効化すると、無効化することはできない(停止: suspend することは可能)
  • バージョン管理を有効にした場合、最新ファイルを削除しても旧バージョンは残る
  • バージョン管理はバケット単位で設定可能
  • ライフサイクル管理と組み合わせて使用する

ライフサイクル管理

  • 128KB 以上のファイルがS3 からS3-IA に移動される
  • デフォルト30日でS3-IA に移動し、さらに30日でGlacier に移動する
  • ライフサイクル管理ではバージョニングは必須ではないが、バージョニングを使用すると現バージョンと前バージョンを管理できる

S3 Transfer Acceleration

  • CloudFront のエッジロケーションを利用してネットワークの高速化が可能になる

もうちょっと続く

2018-01-19

S3 のお勉強(その2)

| 20:56

 昨日書ききれなかったことをつらつらと

  • S3 のbucket = Windowsフォルダーだと思っておけば良い。
  • バケット名はグローバルで(リージョン内で、ではない)一位でないといけない。
  • バケットへのファイルアップロードが成功すると、HTTP レスポンスとして200が返る
  • S3 の暗号化は以下の通り
    1. Client Side Encryption
    2. Server Side Encryption
  • Server Side Encryption には以下の三種類がある
    1. Server Side Encryption with Amazon S3 Managed Key (SSE-S3): AES-256相当
    2. Server Side Encryption with KMS (SSE-KMS): AWS のサービスであるKMS を利用した暗号化
    3. Server Side Encryption with Customer Provided Keys (SSE-C): ユーザーが用意した暗号化鍵を使用した暗号化。鍵の管理をユーザーで行う必要があるので煩雑だけど、管理したい人には嬉しい
  • バケットへのアクセス制御は、バケットACL を使うか、バケットポリシーを使用する
  • デフォルトでは、バケットおよびその中にあるファイルはプライベートモードのため読み書きできない


ちょっと長くなりそうだから続きはまた明日。

2018-01-18

AWS のお勉強(S3)

| 23:14

S3

 EC2 と並んでメジャーなAWS コンポーネントではないだろうか。オブジェクトストレージとして静的ファイルの格納に使用したり、場合によってはS3 のみでweb ページを作成することができる(自由度は低い気もするが)。


 S3 の特徴は以下の通り

  • 実態はKVS で、以下の内容を持っている

- key : データの名前

- value : データの実態

- version id : データのバージョン管理に使用するデータ

- metadata : 格納したデータに関するデータ

- subresources : アクセス制御リストや、bittorrent に対応するためのデータ

  • 一般に、99.99%(公称99.9%)の可用性を誇る
  • 同様に、公称 11 x 9s の耐久性を誇る
  • S3 の種類

- S3 : 高耐久性、高可用性、頻繁なアクセス向き

- S3-IA : 高耐久性、高可用性、頻繁ではないアクセス向き(読み出し容量ごとに課金)

- Se-RRS : 低冗長化ストレージ、耐久性は99.99%。Glaicier から取り出したデータや再生性可能なデータの保管に利用

- Glacier : データアーカイブの保管先。低コストだがデータの取り出しにコストと時間が必要

  • Glacier は戻しに3〜5時間が必要になる

2018-01-17

AWS のお勉強(IAM)

| 03:04

 昨年の九月に仕事を辞めて以来、ブラブラしていたのだが、そろそろ腰を据えて社会復帰の準備をを考え始めた。とりあえず、リハビリがてらAWS のお勉強を始めている。

 メモ代わりにここに記録を残していこうと思う。



IAM (Identiry Access Management)

 IAM というのは、AWS コンソールにおける権限管理の仕組みである。ユーザーA にはS3 の読み取り権限のみを、ユーザーB には管理者権限を与える、などの操作が可能である。元々、AWS 利用申請が受理された時点では、root ユーザー(これは申請時のメールアドレスを使用してログインする)のみ利用可能であるが、名前の通りなんでもできるアカウントであるため、root ユーザーは極力使わず、IAM ユーザーを使用することが強く奨められている。

 (ただし、CloudFront キーペアの作成など、一部作業はroot アカウントでないとおこなえないため、それら作業の時にはroot ユーザーを使用する必要がある)


 主な特徴は以下の通り

  • 1 AWS アカウントで5000ユーザーまで作成可能
  • 1 IAM ユーザーは10までのグループに所属できる
  • 1 AWS アカウントで100グループまで作成可能
  • ユーザーは、文字通り、AWS Console を利用するユーザー個々人を指す
  • グループは、Administrator, Developer, Designer の用に作成し、ユーザーと紐付ける。グループにポリシーをアタッチすることで、個々のユーザーを作成するたびにポリシーやロールをアタッチする煩雑さを減らす
  • ポリシーはAWSリソースに対する権限をJSON 形式で記した者で、これをグループやロール、ユーザーにアタッチすることで権限を付与する
  • ロールはポリシーの集合で、これを作り、付与することで、一つ一つポリシーをアタッチする煩雑さを省略する
  • IAM の管理はグローバルにおこなわれ、特定リージョンのみに有効なIAM ユーザーなどの作成はおこなえない

 その他、認証情報の有効期限とかSwitch Role / クロスアカウントアクセスとかもあるけど今回は割愛。

2017-12-28 yum update が失敗する

| 21:38

yum update を実行したときに、

** Found 17 pre-existing rpmdb problem(s), 'yum check' output follows:
device-mapper-1.02.117-12.el6_9.1.x86_64 は device-mapper-1.02.117-12.el6.x86_64 の複製です
device-mapper-event-1.02.117-12.el6_9.1.x86_64 は device-mapper-event-1.02.117-12.el6.x86_64 の複製です
device-mapper-event-libs-1.02.117-12.el6_9.1.x86_64 は device-mapper-event-libs-1.02.117-12.el6.x86_64 の複製です
device-mapper-libs-1.02.117-12.el6_9.1.x86_64 は device-mapper-libs-1.02.117-12.el6.x86_64 の複製です
httpd-tools-2.2.15-60.el6.centos.6.x86_64 は httpd-tools-2.2.15-60.el6.centos.5.x86_64 の複製です
kernel-firmware-2.6.32-696.16.1.el6.noarch は kernel-firmware-2.6.32-696.13.2.el6.noarch の複製です
kexec-tools-2.0.0-307.el6_9.1.x86_64 は kexec-tools-2.0.0-307.el6.x86_64 の複製 です
kpartx-0.4.9-100.el6_9.1.x86_64 は kpartx-0.4.9-100.el6.x86_64 の複製です
libblkid-2.17.2-12.28.el6_9.1.x86_64 は libblkid-2.17.2-12.28.el6.x86_64 の複製 です
libuuid-2.17.2-12.28.el6_9.1.x86_64 は libuuid-2.17.2-12.28.el6.x86_64 の複製で す
lvm2-libs-2.02.143-12.el6_9.1.x86_64 は lvm2-libs-2.02.143-12.el6.x86_64 の複製 です
mysql-community-client-5.6.38-2.el6.x86_64 は mysql-community-client-5.6.37-2.el6.x86_64 の複製です
mysql-community-common-5.6.38-2.el6.x86_64 は mysql-community-common-5.6.37-2.el6.x86_64 の複製です
mysql-community-libs-5.6.38-2.el6.x86_64 は mysql-community-libs-5.6.37-2.el6.x86_64 の複製です
ntp-4.2.6p5-12.el6.centos.1.x86_64 は ntp-4.2.6p5-10.el6.centos.2.x86_64 の複製 です
ntp-4.2.6p5-12.el6.centos.1.x86_64 は次の要求が不足ています:  ntpdate = ('0', '4.2.6p5', '12.el6.centos.1')
util-linux-ng-2.17.2-12.28.el6_9.1.x86_64 は util-linux-ng-2.17.2-12.28.el6.x86_64 の複製です

なんてエラーが出てきたのでググってみた。

結論

rpm 情報を格納する DB (rpmdb) にレコードの重複があった。 package-cleanup --cleandupes を実行した後で、再度 yum update を実行すると、無事アップデートできた。

重複の確認は rpm -q パッケージ名 してやればわかる。

Connection: close