AWS関連のことを調べてみた2023年02月04日

AWS関連のことを調べてみた2023年02月04日

クラウドエンジニアがレビュー時に意識することと観点

# はじめに
普段数多くの設計書や構成のレビューをしていますが、その観点ってなにがあるんだろう?とふと思ったので、普段頭の中で考えているレビュー時の観点をアウトプットしていこうと思います。
これで全部というわけではないと思いますが、参考になれば幸いです。
※多少AWSベースとなっていることはご留意ください。

# 簡単な自己紹介
職業:AWSメインのクラウド基盤のエンジニア。たまにAzure、GCPも。(一応どちらもPro相当の資格を保持しています。)パブクラへの移行に関するコンサル、基盤設計、構築など色々やってます。
AWSはTop Engineers(Service)、ALL Certificate Engineers(昨年11資格を取得したので)に認定されてます。

# 要件定義時/提案時
– お客様はなぜクラウドに移行・利用したいのかの理由、目的を抑えているか
– お客様の実施したいことが、記載されている要件で実現可能か
– 要件に対して、クラウドのベストプラクティスを反映した提案ができているか
– 記載内容に実現不可能なことや矛盾はないか
– 非機能要求グレードの内容に対して

元記事を表示

AWSのIAMの操作履歴がCloudTrailで表示されない

# はじめに

結論を先に書くと、AWSの **バージニア北部リージョン(us-east-1)** のことも忘れないでください、という話です。

もし東京リージョンしか使っていなくても、大阪リージョンしか使っていなくても、です。

# IAMポリシーによって突然動かなくなるジョブ

AWSでは、IAMユーザーやIAMユーザーグループを最初に作成した後も、利用するサービスの変化や人の役割の変化に応じて、権限を編集することがしばしばあります。

自分がIAMの全てを管理していればいいのですが、他チームの人と共同で管理するケースがあります。

**許可(Allow)** を含むIAMポリシーがユーザー/ユーザーグループから削除されると、その対象のユーザーの操作が制限されて、できることが減ってしまいますし、反対に **拒否(Deny)** を含むIAMポリシーを追加で割り当ててても、できることが減ってしまいます。
拒否(Deny)は強いですからね。
参考: [AWSガイド – Identity and Access Management – ポリシーの評価論理](https://docs.aw

元記事を表示

Amazon CloudFront でレスポンスヘッダーの削除

# 概要

https://aws.amazon.com/jp/about-aws/whats-new/2023/01/amazon-cloudfront-supports-removal-response-headers/

# 構成

CloudFront + S3 で動作を確認しました。(このあたりの構築は、基礎的な部分となるため、割愛します。)

# やってみた

## 通常アクセスの場合

“`
curl -I https://dmxi1jm4zsfwg.cloudfront.net/
HTTP/2 200
content-type: text/html
content-length: 4812
date: Fri, 03 Feb 2023 11:43:31 GMT
last-modified: Fri, 03 Feb 2023 10:47:01 GMT
etag: “3a4b1283da6cd877118ddaeaa04badec”
server: AmazonS3
vary: Accept-Encoding
x-cache: Hit from cloudfront
v

元記事を表示

[備忘]AWSにおけるセキュリティサービスの概要

## 概要
システムを運用する上で、セキュリティ面の対策を取ることは不可欠です。
AWS Well-Architected フレームワークの5本の柱に、セキュリティの柱が存在します。
クラウドでのセキュリティには7つの設計原則があるとされており、AWSはそれらを準拠するためのセキュリティサービスを提供しています。それらのサービスの一部を、備忘録としてメモしておきます。随時追記するかもしれません。

> ・[AWS公式] AWS Well-Architected フレームワーク セキュリティ
https://wa.aws.amazon.com/wellarchitected/2020-07-02T19-33-23/wat.pillar.security.ja.html

## 目次
1. AWS Config
1. AWS Security Hub
1. AWS CloudTrail
1. IAM Access Analyzer

## 1. AWS Config
– 一言で
AWSリソースの設定変更履歴を継続的に管理するサービス。

![①config.png](https://qii

元記事を表示

AWS Marketplace経由でDatabricks環境を構築する

AWSでDatabricksの利用を開始する際の選択肢として、AWS Marketplace経由でサインアップするというものがあります。ここではAWS Marketplace経由でDatabricksを利用開始する手順をまとめます。

メリットとしてはDatabricksの課金とAWSの課金を一本化できるというのがあります。

https://qiita.com/taka_yayoi/items/fb4f57c069e1f272e88a#aws%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88%E3%83%97%E3%83%AC%E3%83%BC%E3%82%B9%E7%B5%8C%E7%94%B1%E3%81%AE%E3%82%B5%E3%82%A4%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97

:::note
**注意**
このプロセスを実行する際には、事前にアカウントオーナーとなる方のメールアドレスを決めておく必要があります。Databricksアカウントにおいて最も強い権限を持つユーザーです。
:::

1.

元記事を表示

エンジニアインターン11日目

今日はたくさんあるurlをDBに保存し、管理して、DBからスクレイピングで利用するurlをsql分で呼び出す仕組みを作った。select文を使って値を取り出すまではできたが、取ってきた値を配列に入れることは出来なかった。list = val1:[val2,val3]のように形を作ってlistを空の配列にappendしたがうまくいかなかった。おそらくlistに渡す形が悪かったと考えられる。今週1週間は初めて触る言語やawsなど自分にとっては難しく感じた1週間だった。しかし、プログラミング言語は構造は大体似ているため、どのようにコーディングすれば良いのかはなんとなくイメージできた。awsに関してはまだまだ仕組みの理解度は低いがこれからたくさん使っていくことは確実なので頑張って勉強して行く。徐々にタスクに対する責任感を感じるようになり、チームの一員に加わった気分がしてもっと努力しないといけないなと改めて思った1日だった。来週もがんばろ!

元記事を表示

HPKP(証明書ピンニング)について調べた時のあれこれ

# きっかけはAWS
先日AWSさんより以下のお達しがありました。
> 背景:
> 2023 年 2 月 1 日から 2023 年 3 月 31 日までの間に、Amazon は Amazon が発行したすべてのパブリック証明書を、旧来の中間 CA, intermediate certificate authority (ICA) から、2022 年 10 月に導入された複数の中間 CA (ICA) /下位認証局のいずれかに移行します。
> ※証明書のピン留めによって既存の ICA 情報を明示的に利用しない限り、お客様による操作は必要ありません
>参考:AWSドキュメント
> https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/troubleshooting-pinning.html

この「※証明書のピン留め」というのが証明書ピンニングというものだそうです。
参考:https://www.digicert.com/jp/blog/certificate-pinning-what-is-certificate-pinning

元記事を表示

Route53でCNAMEレコードとAレコードとNSレコードを使って、Wordpressから画像配信

# 前書き
現在AWSのSAA資格取得に向けて勉強中です。
SAAの範囲で出てきたRoute53のアウトプットの練習として、
CNAMEレコードとAレコードとNSレコードを使って、Wordpressから画像配信をしてみようと思います。

# 前提
・WordpressサーバーはEC2インスタンスで作成されているものとします。
・お名前ドットコムでドメインを購入。(shunwakawaka.blog)
・Elastic IPでwebサーバーがあるインスタンスに関連付けされている。

# 実践
**①IPアドレスでアクセスして画像表示**→**②ドメインでアクセスして画像表示**→
**③サブドメインでアクセスした画像表示**の順番でやっていきました。

# ①IPアドレスでアクセスして画像表示
IPアドレスでWordpressサーバーにアクセスし、そこに保存されている画像を表示します。
この状態ではまだDNSは使用していません

**・図解(IPアドレスでアクセス)**
![image.png](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

CircleCI を使って AWS ECR から ECS にデプロイしてみた

こんにちは。

CircleCI カスタマーサクセスチームの Chisato です。
最近個人的に幸せを感じた出来事は、ビリヤニをつくったことです。
本場のハイデラバードでビリヤニを食べることが目標の1つに加わりました。

今回は、CircleCI を使用して、Amazon Elastic Container Registry (ECR) から Amazon Elastic Container Service (ECS) にデプロイします。

CircleCI のドキュメンテーション 「[AWS ECR/ECS へのデプロイ](https://circleci.com/docs/ja/ecs-ecr/) 」を参考に進めます。

# 準備するもの
– CircleCI アカウント
– AWSアカウント
– Terraform
– サンプルプロジェクト(クローンしておく) ― “[CircleCI-Public/circleci-demo-aws-ecs-ecr](https://github.com/CircleCI-Public/circleci-demo-aws-

元記事を表示

【AWS】ALBでIP制限をかける

## AWS構成
ALBとECSを繋げて、ALBのドメイン名からアクセスするようになっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884542/33813489-3ffc-4524-305d-7874d9a2a2d4.png)

## 実践
1\. IP制限をかけたいロードバランサーの`Rules`を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884542/8d7b9938-424e-95ad-c428-420af20d70d1.png)

2\. Manage rulesを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884542/c270e14a-14c9-988f-148a-e38baf6c650e.png)

3\.`+`を選択後、`ルールの挿入`を

元記事を表示

GitHub Actionsで何故かIAM Roleの引受ができない

仕事でよくGithub Actionsを使用するのですが、忘れがちな設定なのでメモします。

## やりたきこと
– GitHub Actions内で、IAMロールをOIDCを使用してActions実行インスタンスに渡したい。
– 設定値
### IAMロール側信頼ポリシー
“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “”,
“Effect”: “Allow”,
“Principal”: {
“Federated”: “arn:aws:iam:::oidc-provider/token.actions.githubusercontent.com”
},
“Action”: “sts:AssumeRoleWithWebIdentity”,
“Condition”: {

元記事を表示

【Stepfunctions】yamlで記述する ~Map編~

Stepfunctionsのワークフローを記述するとき
「あれ、InputPathとItemsPathって何を書くんだっけ?」
と、Mapでよくある部分をyamlで書いてみる。

# 値をそのまま使う場合
Map内のInputを単純に使う方法。
下記が“`FirstState“`で整数を格納した配列を生成して、その各値をMap内で処理するもの。

#### yaml

“`yaml
StartAt: FirstState
States:
FirstState:
Type: Task
Resource: arn:aws:lambda:REGION:ACCOUNT_ID:function:FUNCTION_NAME_1
InputPath: $.input
ResultPath: $.parallel_input
OutputPath: $
Next: ParallelProcess
ParallelProcess:
Type: Map
InputPath: $
ItemsPath: $.parallel_input
ResultPath: $

元記事を表示

AWS Lambdaに固定IPを付与する時の考慮事項(NAT Gatewayは0.062ドル/時、月約45ドル)

AWSの請求書を見たら想定外に高かったので調べたらNAT Gatewayでした。
t4g.xlarge(vCPU:4、メモリ:16GB)を借りられる(3年予約)料金じゃないか・・・。

[![Image from Gyazo](https://i.gyazo.com/79c797e8431503a4fbc82fd6a53ca65d.png)](https://gyazo.com/79c797e8431503a4fbc82fd6a53ca65d)

これは、ある外部システムとの連携機能をAWS Lambdaで実装したのですが、IP制限に対応するために固定IPを持たせる必要があったため。

不覚にも発生する料金はElastic IPだけだと思いこんでました。涙
反省。

元記事を表示

AWS Glue Studio に追加になったTransformを試してみた

# 背景・目的
[AWS Glue Studio Visual ETL now supports 5 new transforms](https://aws.amazon.com/jp/about-aws/whats-new/2023/01/aws-glue-studio-visual-etl-5-new-transforms/)のとおり、Glue Visual Studioで5つのTransformが追加になったので試してみます。

# まとめ
– Glue Studioに5つのTransformが追加されました。
– Identifier
– UUID
– flatten
– Format timestamp
– To timestamp

# 概要
今回追加になったのは、下記のTransformです。いずれも新しいカラムを追加できる機能のようです。
– Identifier
– データセットの各行に数値識別子を割り当てる。
– UUID
– UUID (Universally Unique Identified) 列を追加す

元記事を表示

【資格合格】AWS ソリューションアーキテクト(SAA-C03)の振り返り

AWSソリューションアーキテクト(SAA-C03)に合格したので、学習方法の振り返りや受験の所感などを共有します。
また、AWS認定の有効期限は3年のため、次回受験時の備忘録としても残しておきたいと思います。
# 学習開始時点のスペック
– エンジニア歴2年半
– 普段はVue.jsやlaravelでのwebアプリケーション開発がメイン
– 実務でのAWS経験はなし
– 個人の学習で3ヶ月程度AWSに触れたことがある程度
# 受験背景
個人で作ったアプリのデプロイにAWSを使ったのですが全くうまくいかなかったことがきっかけです。

qiitaの記事やブログ記事などを参考に色々と試してみましたが、前提知識が乏しすぎたため、何が問題がかもわからず多くの時間を使ってしまいました。結果的にデプロイはできたのですが、思っていたものとは違いあまり達成感が得られなかったです。
もっときちんと理解したい、実務でも使えるようになりたいと思ったので、AWSについて体系的に学び、どうせならということで資格取得を目指しました。

勉強してからですが、思い返すとAWSが提唱するベストプラクティスを無視した大変お

元記事を表示

【メモ】AWS SAA-C03におけるメモ

# 初めに
SAAの勉強中なのですが、単にとある問題集の復習として
備忘録やメモを取るための記事になります。

何か間違えなどあれば教えていただけると幸いです。
# メモ一覧
### ■Transfer Accelerationとは?
クライアントとS3バケットの間で長距離に渡るファイルの転送を
高速で簡単に、その上安全に行えることが可能!

### ■マルチパートアップロードとは?
大容量のオブジェクトをいくつかに分けてアップロード可能
既存オブジェクトのコピーを作成できる

### ■マルチAZについての注意点
セカンダリーDBは別AZは可能だが、別リージョンは不可能
またリードレプリカは別AZやリージョンに生成可能

リードレプリカを利用したフェイルオーバー構成は
RDSではないが、Auroraであれば可能

### ■マウントターゲット
VPC内のEFSにアクセスするには、マウントターゲットが必要。
・AZごとに1つのマウントターゲットを作成できる
・VPCのAZに複数のサブネットがある場合、それらのサブネットの1つのみに
 マウントターゲットを作成できる。
・AZ内のE

元記事を表示

Terragruntってのがあるらしい

# この記事について
記載しているのはすべてTerragruntの公式にある内容です。(役に立つか知りませんが、githubで[sandbox](https://github.com/naruse666/terragrunt-sandbox)を作りました。)
どう使うかではなく、***どのように使えるのか***に焦点を当てています。

# Terragruntって何?
## 概要
[Terragrunt](https://terragrunt.gruntwork.io/)とは、[Terraform](https://www.terraform.io/)のラッパーツールで公式にも出てきますが`DRY(Don’t Repeat Yourself)`を謳っています。
要するにterraformのめんどくさいことをこいつにやらせよう!

`terragrunt.hcl`というファイルを扱います。terraformを触ったことある人なら大丈夫です。
terraformとのバージョン対応表なんかも公開されています。
[Supported Terraform Versions](https://te

元記事を表示

Amazon Redshift Materialized Viewの自動更新を試してみた

# 背景・目的
Redshift Redshift Materialized Viewの自動更新を試してみたので整理します。

# まとめ
– Redshiftにも、RDBMSにあるようなMaterialized Viewがあります。
– リフレッシュの選択肢として、手動やスケジューラでコマンドによるリフレッシュもありますが、自動リフレッシュも利用できます。
– 自動リフレッシュを使用した場合に。おおよそ10秒程度でリフレッシュされました。
– 注意事項としては、自動更新よりもワークロードの優先順位を設定し、ユーザーのワークロードのパフォーマンスを維持するために自動更新を停止する場合があります。

# 概要
## マテリアライズドビューの自動更新
– Redshift は、自動更新オプションを使用してマテリアライズドビューを作成または変更すると、ベーステーブルの最新データでマテリアライズドビューを自動的に更新できます
– Redshift は、ベーステーブルが変更された後、できるだけ早くマテリアライズドビューを自動更新します。
– Redshift は自動更新よりもワークロードの優先

元記事を表示

EC2に固定のパブリックIPアドレスを割り当てる

## 概要
もともと認知していたcloud9のIPが変動し接続できないということがありました。
このような問題に対処するために、ec2にElastic IPアドレスを割り当ててあげます。
cloud9の起動しているec2インスタンスにElastic IPを付与することで、cloud9のパブリックIPを固定することができます。

## 目次
1. なんでElastic IPを付与するのか
1. 手順

## 1.なんでElastic IPを付与するのか
停止したインスタンスを再起動した場合、新しいIPアドレスが割り当てられる可能性があります。意図せずにIP アドレスが変動すると、利用者にとっては参照できないなどの不利益を被ります。
これの対策として、Elastic IPアドレスをインスタンスに割り当てます。Elastic IPは、単一のIPアドレスを継続してインスタンスに関連付けすることが可能です。これによって、Elastic IPの関連付けられたインスタンスを停止/再起動した場合でも、IPアドレスの意図しない新しい割り当てを抑制することができます。

> Elastic IPについて

元記事を表示

Route53のフェイルオーバールーティングでSorryページを実装する

# この記事について

Route53にはフェイルオーバールーティングというルーティングポリシーがあります。
https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/routing-policy-failover.html

これを使えば、WEBサイトの障害時にSorryページとしてS3静的サイトにルーティングするということが可能です。

この記事では、WEBサイト障害時にSorryページに切り替えるフェイルオーバールーティングの実装手順について記載します。

## この記事に書くこと

フェイルオーバールーティングの設定方法のみです。
ALBやCloudfront+S3などの構築/設定方法については記載しません。

# 構成

フェイルオーバールーティングを実装する前は以下のような構成です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435280/1c1dc5fe-297d-6bae-2d1c-de9eb56

元記事を表示

OTHERカテゴリの最新記事