Open11

インフラに関して調べたこと

ピン留めされたアイテム
Kenzo TanakaKenzo Tanaka

【目的】

  • 技術情報に対する感度を高めるため。
  • 日々業務中で調べたことを横断的に見返せるようにするため。

【用途】

  • 業務の中で学んだことを書いておく。
Kenzo TanakaKenzo Tanaka

CloudFront

背景:業務で使うことがあるが、具体的な機能や設定手順に自信がなかったので調べた。

特徴

  • 高速:ユーザーから最も近いエッジサーバーから画像を配信するので、オリジンサーバーから配信するより速い
  • 効率的:エッジサーバーでコンテンツのキャッシングをするので、オリジンサーバーに負荷をかけず配信できる

(CloudFrontはエッジサーバーが世界中にあるので、「ユーザーから最も近い..」を実現できる)

S3バケットをオリジンとしてディストリビューションを作成するだけで、S3のオブジェクトをコピーしてきてくれる→キャッシュ配信ができるようになる。

参考:AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得 | Udemy

設定方法

  • Origin Domain Name→S3バケット
  • Origin Path→特定のディレクトリだけ配信するなど
  • Restrict Bucket Access→CloudFrontだけアクセスを許可する

オリジンアクセスアイデンティティとS3のバケットポリシーの設定

参考記事: https://dev.classmethod.jp/articles/cloudfront-oai-for-cross-acount-s3/

CloudFrontからS3にアクセス許可

CloudFrontからS3にアクセスできるようにするには、Origin Access Identityという認証情報を使う

Kenzo TanakaKenzo Tanaka

CloudTrail

  • AWSのユーザーの行動ログを残せる
  • ログを吐き出す場所をs3に設定できる

設定方法

  • 証跡の作成
  • 全てのリージョンに適用(どこで操作しても出力)
  • 全て
Kenzo TanakaKenzo Tanaka

MFA(2段階認証)

背景:強いエンジニアさんからAWSをよりセキュアにするために設定した方がいいと、ご指摘頂いた。

awsへのログインを2段回認証にする。
利用するにはPC以外の端末に、Google Authenticatorのような専用のアプリを入れておく必要がある。

有効化すると、通常のログイン画面の後で6桁の数字入力を求められる。
Google Authenticatorを起動して、表示されている数字を入力すればログインは成功する。

Google AuthenticatorはiPhone買い替え時にアカウントの移行ができないことが問題だったらしいが、最近になって移行機能が追加されたよう。

参考記事:Google、2段階認証用コードを管理する「Google Authenticator for iPhone」アプリにスマートフォンの買い替え後に簡単にアカウントを移行できるようエクスポート機能を追加。 | AAPL Ch.

Kenzo TanakaKenzo Tanaka

# S3 access denied
S3のパブリックアクセスは全てブロックにしていて、CloudFront経由からのアクセスだけを許可するようバケットポリシーを設定してある。
CloudFront経由からだとS3のオブジェクトにアクセスできるはずだが、AccessDeniedとなる。

https://qiita.com/sakuraya/items/add2cb7ced954215fb03

上記記事より引用。

ブラウザ上で確認していると気付きにくいが、403ではなく、307でリダイレクトされ結果403になっていることがあります。
リダイレクト先はS3のREST API エンドポイントです。
適切にアクセス元が絞られていれば、S3への直アクセスは Denied になるので、結果的に403という状態になっています。

まさにこういう挙動だったので、しばらく待ってみることにする。

Kenzo TanakaKenzo Tanaka

firebase deploy --only functionsコマンドを完遂するには、従量課金のプランへの変更が必要そう。

Error: Your project hoge must be on the Blaze (pay-as-you-go) plan to complete this command. Required API cloudbuild.googleapis.com can't be enabled until the upgrade is complete. To upgrade, visit the following URL:

りあクト!読んでいる際に、上記エラーになったので、従量課金プランに変更した。
予算アラートを設定できて便利。あと個人開発用途なので、そんなお金かからんだろうと。

続き:
課金プランに変えたところ、今度は下記エラーに。

⚠  functions: Upload Error: HTTP Error: 403, Unknown Error