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

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

Amazon EC2にElastic IPアドレスを割り当てる

AWSマネジメントコンソールにログインしてください。
EC2ダッシュボードを表示してください。
[Elastic IP]をクリックしてください。
![スクリーンショット 2022-10-31 6.51.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/b56131fb-fe22-6d15-c233-01c491a77e43.png)

ElasticIPアドレスのページが表示されます。
ページ右上の[ElasticIPアドレスを割り当てる]をクリックしてください。
![スクリーンショット 2022-10-31 6.52.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/9cf2e3ed-25b4-5fe4-97d9-9c7925d73ca2.png)

ElasticIPアドレスを割り当てるページが表示されます。
初期設定のまま、何も変更せずに、[割り当て]をクリックしてください。
![スクリ

元記事を表示

【小ネタ】Glue Sparkのメモ

# 背景・目的
Sparkの実装について、目的別にまとめていきます。(随時更新します。)

# まとめ
GlueのSparkについて、目的別にまとめました。

# 実践
## 前提
– Glue Spark3.0を使用しています。
– 検証はGlue Sutdioを使用しています。

## 事前準備
### S3バケット
– 事前にインプットとアウトプット用に2つのバケットを用意しています。
### データ
#### sum-test-data.json
インプット用のバケットに以下のデータを用意しています。
“`
{“id”:”00001″,”category”:”c001″,”value”:”test1″,”num”:1,”timestamp”:”2022-10-01T10:00:00+0900″}
{“id”:”00002″,”category”:”c001″,”value”:”test2″,”num”:2,”timestamp”:”2022-10-02T10:00:00+0900″}
{“id”:”00003″,”category”:”c002″,”value”:”test3

元記事を表示

3分でAWS Lambda Function URLをSAM使ってデプロイする

## これは何

[SAM(Serverless Application Model)](https://aws.amazon.com/jp/serverless/sam/) を使って関数URLを設定したLambdaをデプロイします。
関数URLだけ使いたい(APIGatewayは使いたくない)というケースでテンプレの参考になればと思いました。
内容は比較的薄いです。

経緯

10000000年程前にAWS Lambda Function URLが提供されました。[記事](https://aws.amazon.com/jp/blogs/news/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/)
これはLambdaをHTTPで直接起動できる機能です。

今まではAPI Gatewayを経由しないといけなかったのですがLambda単体でできるようになって便利になりました。こ

元記事を表示

git cloneしたら”ModuleNotFoundError: No module named ‘awscli'”が発生した

# 事象
EC2でCodeCommitに対してgit cloneしたら、エラーになってしまいました。
“`bash
[ssm-user@ip-99-99-99-99 ~]$ git clone https://git-codecommit.ap-northeast-1.amazonaws.com/xxxxxx
Cloning into ‘xxxxxxx’…
Traceback (most recent call last):
File “/usr/bin/aws”, line 19, in
import awscli.clidriver
ModuleNotFoundError: No module named ‘awscli’
Username for ‘https://git-codecommit.ap-northeast-1.amazonaws.com/xxxxxx’: ^[^C
“`

– git cloneなのになぜかawscliがないというエラー
– エラーの後になぜかUsernameを尋ねられる

# 前提
– EC2(Linux2)

元記事を表示

初AWSサーバー構築してみた(EC2+RDS for PostgreSQL)

## 背景
業務でAWSを使用したテスト環境の構築を試みており、知識が少ないなと思ったため
また、AWS系の資格を取るにあたって実際に触りたいと思ったので、
技術部のAWSの学習計画に沿って行いました

## 手順

### VPCの作成
サーバーを立てるにあたって、広大なネットワークの空間にサーバーを立てる用の場所(土地的なもの)を作らないといけないので、VPCと呼ばれる仮想プライベートネットワーク空間を作成します
![VPC1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626031/c4b6ca07-162b-817e-38b5-d566443b2b1a.png)
まずコンソールのホーム画面から検索するなりなんなりしてVPCのコンソールに入ります
![VPC2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626031/ee4175aa-2c78-132f-3b6d-8cb6c6126e3d.png)
「VP

元記事を表示

コンタクト追跡レコード(CTR)のFirehose~S3~経由のデータ連携 (前編)

![AmazonConnect_CTR改造.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281768/ec6e4172-64b4-bddc-842c-d8dd290cdf26.jpeg)

# 前提条件
Saleforce API Version : v55.0
serverlessrepo-AmazonConnectSalesforceLambda : 5.19.0
この記事は、2022/10頃に書かれています。

AmazonConnect自体には、コンタクト追跡レコードをFirehoseに流す機能があるけど、連携用のLambdaは提供されてないけど、提供されてるLambdaを流用して、どうにかならないかな?というお試しした話。

# 提供Lambdaのライセンス条項

Apache License, Version 2.0 とう事で

https://qiita.com/fate_shelled/items/a928709d7610cee5aa66

+ 自己責任で使ってね
+ 商用利用可
+

元記事を表示

IAMロールの一覧を出力する(AWS CLI)

windows
git bash
jqコマンド利用
AWS CLI利用

“`
aws iam list-roles | jq ‘.Roles[].RoleName’
“`

元記事を表示

SSH コンフィグを追加した (Session Manager 経由で SSH する)

## Session Manager 経由で SSH する設定をしてみたけど

さすがに,`ssh i-xxx` みたいなログインをしたくない

“`ssh:.ssh/config
# SSH over Session Manager
host i-* mi-*
ProxyCommand sh -c “aws ssm start-session –target %h –document-name AWS-StartSSHSession –parameters ‘portNumber=%p'”
“`

## 追加した

たまたまホスト名がプレフィックス付いていたのでグルーピングした

“`ssh:.ssh/config
host prefix-aaa
(snip)

host prefix-bbb
(snip)

# SSH over Session Manager
host i-* mi-* prefix-*
ProxyCommand sh -c “aws ssm start-session –target %h –document-na

元記事を表示

【Terraform】Backend の切り替え方法とは?

## はじめに
業務で `terraform import` を実施する機会があり、検証のために Backend を S3 → local に切り替える機会があったので記事としてアウトプットしたいと思います。

## S3 → local に変更する場合

### 1.backend を一時的に local に切り替える。
`backend.tf` や `terraform.tf` 等、backend先が記述されているファイルを以下のように修正する。

“`terraform
terraform {
# backend “s3” {
# bucket = “mybucket”
# key = “path/to/my/key”
# region = “ap-northeast-1”
# }
backend “local” {
path = “terraform.tfstate”
}
}
“`

### 2.`terraform init -migrate-state` を実行する。
以下コマンドを実行すると、S3 に保存されている

元記事を表示

【AWS】AWS Budgetsでコスト管理とアラート仕組みを作ってみた

こんにちは。
AWSマルチアカウント環境を管理している者です。

マルチアカウント環境を運用しながら出てくる課題の1つは、**各アカウントで発生するコストを把握して予算をオーバーしないように管理する**ことです。
AWSは、「AWS Budgets」という予算を管理する機能を提供しています。今回、このAWS Budgets機能をカスタマイズしてAWS SNSを通じMicrosoft Teamsに通知を送る仕組みを作ってみましたので共有します。

# アーキテクチャ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2203079/a2b495fa-50a1-2365-550b-6acb7a752673.png)

– 通常時(予算のしきい値を超えてない時)は、AWSコンソールよりアカウント別の予算とコスト状況が確認できます。また、CSVダウンロードやレポートのメール送信も可能です。

– 予測コストが予算の90%を超過した時、指定先のTeamsチャネルにてアラートします。超過時のアクション

元記事を表示

S3ライフサイクルでバケットを空にするには3日かかる

タイトルのままのメモです。
S3バケットを消すには先にオブジェクトを消して中身を空にする必要があるのですが(バージョニング有効の場合はその分もすべて)、S3には大量のオブジェクトを格納しがち&料金も安いので放っておきがちで、数千万ファイルとか億超えるオブジェクトを普通に格納してる環境も多いのではないでしょうか。
そのような使い方をしてるバケットを空にしようと、バケットを空にする操作やフォルダを選択して削除を実行すると、オブジェクトは秒間数百?~みたいな感じで高速に消えてくのですが、ファイル数が多いとめちゃくちゃ時間がかかります(半日とかそれ以上とか)。
で、それをさくっとやるソリューションとして、ライフサイクルを設定して期限切れにして、AWS側で自動的に削除されるようにするというものがあります。
便利なのですが、削除されるのにかかる時間が予想と違いました。
予想では、期限切れを1日にセットしたら、なんとなく次の日とか、もしくはセットしてから24時間後とかに消えてるのかな~と思ってたのですが、実際にはセットしてから3日くらい見る感じになります。実際に設定したときの動作は以下となります

元記事を表示

Amazon EKSでIRSAを利用する

# はじめに
IRSA(IAM Roles for Service Accounts)とは、EKSクラスタ上で稼働するPodに対してIAMロールを割り当てる仕組みです。
Mac環境を想定しています。

# 実行環境の準備
1. AWS CLIの設定
[AWS CloudFormationを動かすためのAWS CLIの設定](https://qiita.com/miyabiz/items/fed11796f0ea2b7608f4)を参考にしてください。

1. EKSクラスタの構築
[Macでeksctlを利用してAmazon EKSのクラスターを構築する](https://qiita.com/miyabiz/items/75f83237795b0b7d52bd)を参考にしてください。

1. EKSのコンテキストの設定
[MacにてAmazon EKSの設定をする](https://qiita.com/miyabiz/items/b98d145cedb35dab9524)を参考にしてください。

# IAM OIDC IDプロバイダの作成
[クラスター用の IAM OIDC プロ

元記事を表示

【DVA対策】DynamoDB リクエストユニット数計測について

# はじめに
リクエストユニット数計測についてわけわからんかったのでまとめる

# DynamoDB 読み込みリクエスト種類
– 強力な整合性
– 結果整合性
– トランザクション
の3つの種類が存在する

# 4KB以下の項目の読み込み
「強力な整合性のある読み込みリクエスト」には、1つのリクエストユニットが
必要
「整合性のある読み込みリクエスト」には、1/2つのリクエストユニットが
必要
「トランザクションのある読み込みリクエスト」には、2つのリクエストユニットが
必要

# 8KB項目の読み込み
「強力な整合性のある読み込みリクエスト」には、2つのリクエストユニットが
必要
「整合性のある読み込みリクエスト」には、1つのリクエストユニットが
必要
「トランザクションのある読み込みリクエスト」には、4つのリクエストユニットが
必要
※上記の2倍

# 9KB項目の読み込み
「強力な整合性のある読み込みリクエスト」には、3つのリクエストユニットが
必要
「整合性のある読み込みリクエスト」には、1.5つのリクエストユニットが
必要
「トランザクションのある

元記事を表示

【Terraform】複数リソースを生成する方法(count, for_each)

# はじめに
Terraformで複数リソースを生成する方法として、“`count“`と“`for_each“`があるので使い方を簡単にまとめます。

# countの使い方
countを使うと、指定した回数、リソースを生成することができます。

https://developer.hashicorp.com/terraform/language/meta-arguments/count

試しにIAMユーザーを2個作成します。

“`terraform
# ———————————————
# Terraform configuration
# ———————————————
terraform {
required_version = “>=0.13”
required_providers {
aws = {
source = “hashicorp/aws”
version = “~> 4.0”
}

元記事を表示

AWS CLIのインストールと初期設定

# はじめに

* AWS CLIのセットアップはそれほど難しい作業ではありませんが、新しいPCを買った時など限られた機会にしか実施することがないため、備忘録として記事をまとめてみました。

# IAMの操作

## IAMユーザーの作成

* CLIで利用するアカウントとして、IAMユーザーを作成しておきます。
* ここではバックアップ用のユーザーとして、`backup`という名前のユーザーを作成しておきます。
* IAMユーザー作成時にアクセスキーがダウンロード出来るため、**必ずアクセスキーのファイルをDLして安全な場所に保管**しておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312166/e5fe5cc8-2d45-f19e-8f8e-1b13f9cbba45.png)

## 権限の確認

* IAMのユーザー情報の画面を開いて、ユーザーに所望の操作をさせるために必要な権限が割り当てられていることを確認します。
* 今回はS3へのバックアップ操作ができれば良い

元記事を表示

家庭教師がオンライン授業のためのホワイトボード共有サイトを作ってみた

## 前提
コロナ禍の状況で、zoomを使ってオンライン授業をしていたが、使いにくかったので、自分で作ることにしました。
[ボードミート](https://board-meet.com/ “ボードミート”)

## 技術
**バックエンド**
— 言語
– Python3

— フレームワーク
– Django 3.0.6

**フロントエンド**
— 言語
– CSS
– Javascript
– HTML

— フレームワーク
– jquery
– materiallize.css

**インフラ**
– AWS EC2
– AWS S3 storage
– AWS Route53

## アーキテクチャー

![スクリーンショット 2022-11-01 18.48.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1860891/9ab885ca-2127-3908-bec2-4ce2e87d8942.png)

## 工夫した点
– webRTCを使ってシグナリングをする際に、複数人

元記事を表示

長期インターンを通じて学んだこと

## **自己紹介**
– 関東私立大学に通う3年生
– インターン参加から半年程
– プログラミングは独学で基礎を勉強した程度

## **なぜ応募したのか**
– エンジニアの仕事の雰囲気を知るため
– 個人でプログラミングをしたことがありますが、これがどのようにして仕事になるのか想像がつかなかったので長期インターンの応募を考えました。

## **体験した業務内容**
– 顧客情報のデータ分析
– 膨大な顧客データから必要なデータを取り出し、SQLにて組み合わせて整形することが主な仕事です。
– アプリに用いられるレコメンドシステムの評価・開発
– レコメンドシステムとは、利用者の興味のありそうなモノやサービスを推薦するシステムのことを指します。ユーザのデータを分析・抽出することでユーザの動向を解析し、システムに取り入れることが主な仕事です。pythonやSQLを使用しました。
– 動画配信サービスのサーバーサイドのシステム開発
– AWSを利用して、動画配信サービスの機能の追加や修正をすることが主な仕事です。pythonにて実装しました。

元記事を表示

[AWS.5] DynamoDB プログラミング概要

# 1. 概要
AWS SDKは、アプリケーションから DynamoDBへアクセスするためのインタフェースを三つ用意しています。
* 低レベルインタフェース
* ドキュメントインタフェース
* 高レベルインタフェース

プログラミング言語によって利用できるインタフェースは異なりますが、.NET では3種すべてを利用可能です。

:::note info
AWS DynamoDB プログラミングのオンラインマニュアルの図では「高レベルインタフェース(High-Level Interface)」と記述されていますが、解説上は「オブジェクト永続性インタフェース」とされています。
:::
:::note info
AWS DynamoDB プログラミングのオンラインマニュアルでは、「ドキュメントインタフェース」と「オブジェクト永続性

元記事を表示

AWS Lambda から自社 API サーバーへのリクエストに Amazon Cognito による認証機構を実装する

AWS Lambda (以降、Lambda) から自社 API サーバー (以降、API サーバー) へのリクエストに Amazon Cognito (以降、Cognito) による認証を実装した際の話をまとめました。
Cognito の OAuth 2.0 サービスのうち、Client Credentials Grant を使用することで Lambda を認証できるようにしています。

これは M2M (Machine to Machine) 認証と呼ばれるものを Cognito で実装した例です。
Cognito を使用する例については情報が少ない気がしたので、ワード検索時の一助になればと思い記事にしました。

## この実装に至った背景
今回の最終的な要件は、Lambda から API サーバーへのリクエストに Cognito による M2M 認証機構を実装することです。

上記要件に至った背景を記載します。
長めなので具体的な実装だけ知りたい方は [実装内容](#実装内容) までスクロールしてください。

### リリースフローの自動化を推進
現在弊社では開発及び運用で必要にな

元記事を表示

EKSでRBACを利用したadminの認証・認可を設定をする

# はじめに
Amazon EKSでRBACを利用した`admin`の認可設定をする方法をまとめます。
IAMグループに所属するIAMユーザーに、EKSクラスターの管理者権限でのアクセス許可を付与します。
Mac環境を想定しています。

`developer`に関しては[EKSでRBACを利用したdeveloperの認証・認可を設定をする](https://qiita.com/miyabiz/items/aec13c66841402a452b7)を参考にしてください。

# 実行環境の準備
1. AWS CLIの設定
[AWS CloudFormationを動かすためのAWS CLIの設定](https://qiita.com/miyabiz/items/fed11796f0ea2b7608f4)を参考にしてください。

1. EKSクラスタの構築
[Macでeksctlを利用してAmazon EKSのクラスターを構築する](https://qiita.com/miyabiz/items/75f83237795b0b7d52bd)を参考にしてください。

1. EKSのコンテキス

元記事を表示

OTHERカテゴリの最新記事