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

AWS関連のことを調べてみた2022年04月19日
目次

DatabricksのAWS Graviton有効化クラスター

[AWS Graviton\-enabled clusters \| Databricks on AWS](https://docs.databricks.com/clusters/graviton.html) [2022/4/12時点]の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

:::note info
**プレビュー**
本機能は[パブリックプレビュー](https://docs.databricks.com/release-notes/release-types.html)です。
:::

Databricksクラスターでは[AWS Graviton](https://aws.amazon.com/ec2/graviton/)インスタンスをサポートしています。これらのインスタンスでは、Arm64命令セットで構築されたAWS設計のGravitonプロセッサーを使用しています。AWSはこれらのプロセッサーを持つインスタンスタイプは、いかなるAmazon EC2のインスタンスタイ

元記事を表示

コストパフォーマンスを3倍まで改善するDatabricksのAWS Graviton2サポートの発表

[Announcing Databricks Support for Aws Graviton2 With up to 3x Better Price\-Performance \- The Databricks Blog](https://databricks.com/blog/2022/04/18/announcing-databricks-support-for-aws-graviton2-with-up-to-3x-better-price-performance.html)の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

本日、AWSのGraviton2ベースのElastic Compute Cloud (Amazon EC2)インスタンスをDatabricksでのサポート(パブリックプレビュー)を発表できることを嬉しく思います。GravitonプロセッサーはAmazon EC2におけるクラウドワークロードのベストなコストパフォーマンスを提供するためにAWSによってカスタムの

元記事を表示

AWS各サービスにかかっている金額

“`python
import datetime
from datetime import date, timedelta

import json
import urllib.request
import boto3
import os
import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)
today = date.today()

def lambda_handler(event, context):

url = ‘https://api.line.me/v2/bot/message/broadcast’

headers = {
“Content-type” : “application/json”,
‘Authorization’: ‘Bearer ‘ + os.environ[‘ACCESSTOKEN’]
}

cloudwatch = boto3.client(‘cloudwatch’,

元記事を表示

S3のオブジェクトロックと既存オブジェクトの一斉適用について

# S3 Object Lock利用シーン
①一定期間または無期限でオブジェクトの削除や上書きを防止したい
②WORM( write-once-read-many) ストレージを必要とする規制要件を満たすために
※SEC 17a-4、CFTC、FINRAの規制

リンク:
https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html

# 設定方法
まずは、Objectの属性を有効化にする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1348505/9d22284e-4b31-1f60-1361-60423e2974bb.png)

①保持期間の設定
– バケットに設定したら、以降にアップロードされたObject全部自動的に適用される
– オブジェクトごとに設定する。
> 以下2モードのどちらかを設定する
Governance mode <特殊権限で外せる>

元記事を表示

【Terraform】When a network interface is provided, the security groups must be a part of it. のエラーが解消できない場合の対処法

# はじめに
TerraformでAWSのEC2を構築していた際に、“aws_autoscaling_group“ブロックで「`When a network interface is provided, the security groups must be a part of it.」のエラーが出ました。
基本的には[こちら](https://github.com/hashicorp/terraform-provider-aws/issues/4570)で議論されている内容で解消すると思いますが、私の場合は例外で別の箇所が原因でエラーが起きていたので対処法を残しておきます。

# 対処法

結論としては“launch_template“の“version“を“Latest“に指定することです。
私の場合は最初に“apply“した“aws_launch_template“ブロックのコードに誤りがあり、正しくない起動テンプレートが“Default“になっていました。

2回目以降“terraform apply“を実行すると、起動テンプレートが新しいバージ

元記事を表示

import した aws_db_instance で想定しない差分が出るとき

# 概要

`terraform import` で RDS の MySQL をインポートした。
差分が出ないように記述したものの、以下のような差分が出てしまう。

“`hcl
# module.rds.aws_db_instance.primary will be updated in-place
~ resource “aws_db_instance” “primary” {
+ character_set_name = “”
+ domain = “”
+ domain_iam_role_name = “”
id = “hoge”
+ identifier_prefix = “”
+ kms_key_id

元記事を表示

node.jsでpresigned_urlを使用して画像データをs3に保存、表示する方法

この記事ではpresigned URLを使用してs3に画像を保存、表示する方法を学んでいきます。

### Presigned Urlとは?

presigned URLは、特定のS3オブジェクトへの一時的なアクセスを許可するために,
ユーザーに提供することができるURLです。URLを使用して、ユーザーはオブジェクトをREADするか、オブジェクトをWRITEする(または既存のオブジェクトを更新する)ことができます。

### 環境,事前準備
– “aws-sdk”: “^2.1116.0”
– バックエンド(express(Node.js)), フロント(vue, react, angluar, Svelte etc)
– awsのアクセスキー (IAMでs3の操作権限を持つユーザーを作成し、アクセスキーを取得してください)
– s3にbucketを作成

### Presigned Urlを作成するAPI

“`
const AWS = require(“aws-sdk”);
const uuid = require(“uuid/v4”);

const s3 = new

元記事を表示

AWSCloudFormation is not authorized to perform: eks:TagResource エラーの回避

## 概要

– AWS CloudFormationでEKS Clusterリソースを作成する際、EKSへのタグ付けに失敗した。
– cloudformationのcreate-stack実行時に付与したRoleに、`eks:TagResource`のポリシーが不足していたことが原因だった。

## 発生事象

– CFnからEKS Clusterを作成するため、以下のコマンドを実行。

“`
aws cloudformation create-stack –stack-name ${STACK_NAME} \
–role-arn arn:aws:iam::${ACCOUNT_ID}:role/\
–template-body file://01_template/${TEMPLATE_FILE} \
–parameters file://02_parameter/${PARAMETER_FILE}
“`

– CFnの以下のエラーが発生していた。

> Resource handler returned message: “User: arn:aws

元記事を表示

ある日突然ThreadpoolWriteThreads(MAX)が急増して止まらなくなった件

こんにちは、catooです。

前回は、Opensearch(ElasticSearch)の429エラーについて記載したのですが、
最近突然起こった障害について備忘録として記載しようと思います。

ある日、突然起こったこと
運用しているシステムは配信系のシステムなのですが、起こったことは主に2つ下記です。

### OpenSearch 環境
バージョン:Elasticsearch 6.4
サービスソフトウェア:R20220323-P1

## アプリログのWarningが大量発生
OpenSearch向けのリクエストが429エラーとしてしばしば弾かれることは前の記事にも記載しましたが、この日は一味違いました。
通常大量トラフィックの発生についても多くて1件程度の発生で収まっていた429エラーなのですが、この日はなんと30000件オーバーも発生していました。
![スクリーンショット 2022-04-18 14.14.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

AWSのRoute53でStripe Checkoutにカスタムドメインを設定する

Stripeが提供するリダイレクト型の決済APIがStripe Checkoutです。

通常リダイレクト先の決済ページは、`https://checkout.stripe.com`を含むURLです。

もし表示されるURLを、独自のストア・サービスのドメインに変更したい場合は、Stripe Dashboardから設定を行う必要があります。

この記事では、Stripe DashboardとAWSのDNS管理サービスRoute53を利用して、カスタムドメインを設定する方法を紹介します。

## 作業前の注意点

– カスタムドメインは**月10USD**の有料オプションです。
– Route53管理画面にアクセスし、DNSの設定が行える状態であることをご確認ください。
– **Step3**の接続チェックに**3時間半以上**かかります。
ワークショップなどで紹介する場合には、Step2までを早い段階で済ませる構成にしましょう。

## Step1: Stripe Dashboardから、設定したいドメイン名を登録する

カスタムドメインの設定は、[Stripe Dashboard

元記事を表示

AWSのメッセージングサービス SQS、SNS、EventBridge の主な機能比較

# はじめに

本記事は、AWSの***メッセージングサービス***である [SQS](https://aws.amazon.com/jp/sqs/)、[SNS](https://aws.amazon.com/jp/sns/)、[EventBridge](https://aws.amazon.com/jp/eventbridge) の主な機能を簡単に比較してまとめたものになります。(2022/04/16現在)
サービスを選定する時の気づきになれば幸いです。

各サービスの機能の詳細は、AWS Black Belt Online Seminarの資料を一読してから、詳細はAWSのドキュメントを読むようにすると頭に入りやすいです。

***SQS***
[AWS Black Belt Online Seminar SQS](https://d1.awsstatic.com/webinars/jp/pdf/services/20190717_AWS-BlackBelt_AmazonSQS.pdf)
[Amazon Simple Queue Service のドキュメント](https://d

元記事を表示

【AWS】WEBサーバー構築

# [備忘録](#-2.備忘録)
***前提***
* ApacheやPHPが最初からインストールされてない
* その他の設定は踏み台サーバーのイメージを引き継いでいる

***Apacheインストール***
“`
yum install httpd
“`

***PHPインストール***
“`
yum -y install –enablerepo=remi,remi-php73 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-pear php-pecl-apc-devel php-mysqlnd zlib-devel
“`

***Apache設定***

“`
cd /etc/httpd/conf.d

//welcom.conf削除
rm welcome.conf

//autoindexも削除
rm autoindex.conf
“`

一階層戻ってconfに入る
“`
cd ..
cd conf
“`

まずはバックアップ

元記事を表示

CloudWatchLogsで取得したログを加工してEFSに格納するLambda作ってみた

# はじめに
日次でCloudWatchLogsからログを取得し、加工してEFSに格納する独自スクリプトを動かしてた。
だが以下の点でイケてないスクリプトでたちまち処理が失敗していた。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187693/0257c3e3-e6d1-c1f0-f021-c173d2ddf097.png)
図1:既存構成

:::note alert
こんな感じ
・サービス利用増により、ログ量が莫大し処理が追いつかずにMaintenanceWindowsの**上限値5時間**をオーバしてしまう
・古き良き(?)シェル芸でログを加工しておりコードは煩雑化・処理は非効率で処理が行われてる
:::

## 実装方式

上記を解決するにはスクリプトを改修したり、そもそものサーバスペックを上げたりするといった流れになるがログ量は増える一方であったり、この処理のためにスペック上げるのは~~贅沢・贅肉すぎるし~~もったいないという形で以下で実装してみた

![image

元記事を表示

AWS Step Functions入門

## はじめに

皆さんStep Functions使ってますか?
今回はStep Functionsがいかに簡単で可能性があるのか、を伝えるために入門記事を書いてみようと思います。
Step Functionsは基礎部分を理解すればある程度使いこなすことができるので、皆さんぜひ使ってみてください。

## 作るステートマシンの全体像

今回はサンプルとして複数のバケットを空にするようなステートマシンを作成します。
画面からバケットを空にするのはボタンを押すだけなので簡単ですが、自動化しようと思うとコードを書かないといけないので面倒です。
GUIを使ってステートマシンを作って、定期起動すれば自動化できるので、ノーコードで実現できるので便利ですよね?ね???

## 下準備

まず、名前は何でもいいのでバケットを2つ作成してください。
また、それぞれのバケットに適当なファイルを保存してください。

今回は以下2つのバケットを作成して、それぞれのバケットにファイルを3つ作成しました。

* step-functions-sample-1
* step-functions-sample-2

元記事を表示

AWS-RDSで本番環境のSnapshotを開発環境に展開する方法

開発環境のRDSを本番環境のデータで置き換える必要があったので、その方法のメモです。
そこまで複雑な手順ではないですが、忘れてしまいそうなので手順をまとめておこうと思います。

# 本番環境でSnapshotを作成
AWSのマネジメントコンソールから対象DBのSnapshotの作成を行います。
![2022-04-17_17h17_49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626057/07a51e39-bfb3-a40f-60b2-f642f6096b0a.png)

# Snapshotの共有
作成されたSnapshotを選択し、スナップショップの共有(Share snapshot)を選択します。
![2022-04-17_17h26_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626057/55a349b1-0b0e-889d-5b66-89a2d64a585d.png)

> この時に、以下のよ

元記事を表示

VPC Network Access Analyzer でネットワークセキュリティを確認してみる

AWS VPC にネットワークセキュリティを確認する [Network Access Analyzer](https://aws.amazon.com/jp/blogs/news/new-amazon-vpc-network-access-analyzer/) 機能があることに気がついたので、ちょっと試してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/09c796d0-dbbd-80a4-53bb-475143d5c192.png)
情報はこのあたりから。

* [[新機能] ネットワークがアクセス要件を満たしているか確認するのに便利な VPC Network Access Analyzer がリリースされました! #reinvent](https://dev.classmethod.jp/articles/new-amazon-vpc-network-access-analyzer/)
* [ネットワークが目的どおりに設定されているか確認できる!Amazon

元記事を表示

LambdaのSecurityGroupが削除できなくて困った話

# はじめに
AWSの運用として、「このLambda使わなくなったから削除してー」と言われ、
リソースの削除後に、使われなくなったSecurityGroup(以下SG)も削除する。
というのはよくある運用かと思います。

その際に、SGが削除できない、正確にはLambdaのENIが自動で削除されなくて困った
という話になります。

# なにが起きたか
① VPC内のLambdaを削除

② Lambdaの実行ロールを削除

③ LambdaのSGを削除するために、
念の為、削除対象のSGがネットワーク・インターフェースにアタッチされていないか確認。
→あれ、まだ使われてるな…(削除したLambdaのENIが削除されていない)
時間かかってるだけかな、、明日になって確認してみるか。。
→翌日、まだアタッチされている。SGの削除を試みるも、もちろんネットワーク・インターフェースにアタッチされているため削除できない旨のエラーがでる。

# 原因
EC2などと同様に、Lambdaも削除後、使用していたENIも自動的に削除されるはずだが、
その際に、Lambdaの実行ロールを使用しているため、E

元記事を表示

AWS LambdaでPython基礎~Amazon S3とAmazon Translateを利用する

2022/4/6(水)に行われたAWSセミナー「Pythonの基礎から学ぶ!サーバーレス開発はじめの一歩」で構築したサーバレスアーキテクチャ環境の復習。

# 構成図
AWS Lambdaを起動し、S3バケットにアップロードした英語のテキストを、翻訳して返す簡易アプリケーションをPyhonで開発する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/b97c0559-a875-582e-111c-fd8f551440a1.png)

# 0.前提
[「AWS Cloud9でPython基礎~Amazon S3とAmazon Translateを利用する」](https://qiita.com/emiki/items/b95fad815d9f8e360dd0)で作成した s3 バケットが存在していること。
[「AWS Cloud9でPython基礎~Amazon S3とAmazon Translateを利用する」](https://qiita.com/emiki/items/

元記事を表示

AWS公式資料で挑むSCS認定(43)-こんな時どうする(全分野その20)

##### [前回] [AWS公式資料で挑むSCS認定(42)-こんな時どうする(全分野その19)](https://qiita.com/mingchun_zhao/items/62dc6370b02da8b3c657)

## はじめに

今回も引き続き、「こんな時どうする」集の作成です。

## 分野1: インシデント対応

– Amazon GuardDutyにより、「Stealth:IAMUser/CloudTrailLoggingDisabled」メッセージが通知された
– CloudTrailの追跡が無効化されたことを示すCloudTrail管理イベントで、認証情報が侵害された可能性あり
– 不正侵入者がユーザーのAWSリソースへアクセスしている間、活動の痕跡を消すためロギングを無効化した可能性
– このメッセージは、証跡情報の削除または更新が成功することによってトリガーされる場合がある
– GuardDutyに関連付けられている証跡のログを保存するS3バケットが削除された場合もトリガーされる
– 侵害されたA

元記事を表示

EC2のproxy設定をSSM(RunCommand)と同期

複数台のEC2を持っていて、http_proxyやno_proxy設定(に限らず)をSSM パラメータストアで管理している値を同期したい。
例として、パラメータストアに、“http_proxy“,“https_proxy“,“no_proxy“を登録して、パラメータストアの内容を変更した後、EC2の/etc/environmentも同期したいシーンとして、以下のようなRunCommandを発行します。

ドキュメント名:“AWS-RunShellScript “
コマンドパラメータ:以下
“`bash
#!/bin/bash
## get parameter from parameter-store
http_proxy=$(aws ssm –region ap-northeast-1 get-parameter –name http_proxy –query “Parameter.Value” –output text)
https_proxy=$(aws ssm –region ap-northeast-1 get-parameter –name h

元記事を表示

OTHERカテゴリの最新記事