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

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

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のコンテキス

元記事を表示

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

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

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

# 実行環境の準備
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のコン

元記事を表示

EC2, RDS, LambdaなどAWSのサービスを監視して一画面で全ステータスをチェックする

SaaSのSite24x7で実現する方法を共有します。
以下はサインアップ後の手順です。

流れ

  1. Site24x7でIDを表示(30秒)
  2. AWS IAMでロールを作成(2分)
  3. Site24x7にAWSを連携(1分~)
  4. しきい値を設定(1分~)

手順

1. Site24x7でIDを表示(30秒)

ホーム画面で「監視の追加」をクリックします。

EC2, RDS, LambdaなどAWSのサービスを監視して一画面で全ステータスをチェックする手順01

元記事を表示

【AWS】エラー:The action failed because no branch named main was found in the selected AWS CodeCommit repository XXX. Make sure you are using the correct branch name, and then try again. Error: null

こんにちは。

今回AWS CodeCommitを初めて使い始めました。いつもGithubを使っているため、最初CodeCommitの設定周りで少し迷ったところがあったのでシェアします。もし同じエラーで困っている方の役に立てれば幸いです。

# エラー内容
**The action failed because no branch named main was found in the selected AWS CodeCommit repository XXX(レポジトリ名). Make sure you are using the correct branch name, and then try again. Error: null**

→ 多くの方がGitでデフォルトブランチ(ルートブランチ)として使っているのは「main」もしくは「master」かと思います。私は後者です。笑
今回私がこのエラーになった理由は、**mainブランチがAWS CodeCommitのデフォルトブランチに指定されているリポジトリ**をクローンしてきて、mainブランチは使わないから削除してmas

元記事を表示

Snowflakeの外部関数からLambda関数を実行する

## <はじめに>
**API統合**を使うことで、Snowflakeの**外部関数**からAWSのLambda関数を呼び出すことができます。

SnowflakeからAPI Gatewayを経由してLambda関数を呼び出し、関数の実行結果をSnowflakeに返します。

今後のSnowflakeの運用を踏まえ、API統合によるLambda関数の実行を検証してみました。
今回の検証では、LambdaのPythonプログラムからAmazon Comprehendを呼び出し、外部関数の引数に対して感情分析させました。

## <アーキテクチャ>
Snowflakeの外部関数でLambda関数を呼び出し、Comprehendの感情分析を行う処理フローは以下①~⑧になります。
①SnowflakeでSQLから**外部関数**を実行する。
②外部関数から**API Gateway**が呼び出され、関数の引数が連携される。
③API Gatewayが**Lambda関数**を呼び出す。
④Lambda関数がPythonのコードを実行し、**Comprehend**に引数を渡す。
⑤Compre

元記事を表示

AWS re:Invent 2022 で予定されているVMware Cloud on AWS関連セッション一覧

2022年11月28日-12月2日にラスベガスで開催される[AWS re:Invent 2022](https://reinvent.awsevents.com/)ではどんなVMware Cloud on AWS関連セッションが予定されているのだろう、とふと気になったので一覧にしてみます。

# 1. そもそもAWS re:Inventって?
AWSの年次カンファレンスです。2021年も同時期にラスベガスで開催されています。
現地での参加は有料ですが、オンライン参加であれば無料です!

https://reinvent.awsevents.com/

# 2. VMC関連セッションを検索してみる

本ブログ執筆時点では1,912セッションが予定されています。

https://portal.awsevents.com/events/reInvent2022/sessions

Area of Interestで”VMware”でフィルターかけてみると15セッションが検索ヒットし、
“VMware Cloud on AWS”でキーワード検索すると10セッションがヒットしました。

![

元記事を表示

CloudFront の証明書を作成する

CloudFront の証明書は、これまで、ROOT 発行のもので使っていたのですが、最小特権の観点からは望ましくありません。

以下のようにして、証明書を作成して、CloudFront で、公開鍵とグループを登録し、Behavior で、望ましい方法である、公開鍵グループを選択して使いましょう。

“`Bash
#!/bin/bash

echo “”
echo “#### I will create a key pair for CloudFront. ####”
echo “”
echo -n “CLIENT:”
read CLIENT
TODAY=$(date ‘+%Y%m%d’)
echo “”

set -x
openssl genrsa -out cloudfront_${CLIENT}_private_key_${TODAY}.pem 2048
openssl rsa -pubout -in cloudfront_${CLIENT}_private_key_${TODAY}.pem -out cloudfront_${CLIENT}_public_key_${TODA

元記事を表示

AWS Lambdaで現在日時(処理年月日時)を取得したい

# 経緯
Lambdaで処理年月日時を取得する際につまづいたので記述する。

# datetimeモジュールのオブジェクト
– datetime :日付と時刻を扱う
– date:日付を扱う
– time:時刻を扱う
– timedelta:時間差を扱う

# 間違った例 1
~~~python:Python
from datetime import datetime
# 処理年月日を取得
processingDate = datetime.datetime.today()
# エラー文
AttributeError: type object ‘datetime.datetime’ has no attribute ‘datetime’
~~~
そもそも
– from — import ~~~文を理解してなかった
– モジュールとオブジェクトの概念もよくわかってなかった

ため適当に書いてた(笑)
※from datetime import datetimeと書いたら ___メソッドの先頭は省略できる。(むしろ省略しないと怒られる)___
_

元記事を表示

AWS日記48(API Gateway – Custom Access Logs)

# はじめに
今回はAPI Gatewayの Custom Access Logsを試します
[API Gateway Custom Access Logging :: AWS Serverless Observability Workshop](https://serverless-observability.workshop.aws/en/050_logging/logging-producers/api_logs.html)を参考に、CloudWatch による API のカスタムアクセスログの設定を行います

# 設定

### CloudFormation
“`yaml

AWSTemplateFormatVersion: “2010-09-09”
Transform: AWS::Serverless-2016-10-31
Description: SampleLogging Page

Parameters:
ApplicationName:
Type: String
Default: ‘SampleLoggingPage’

Resource

元記事を表示

Python & AWS(Lambda/API Gateway)によるLINE Bot作成

# Python & AWS(Lambda/API Gateway)によるLINE Bot作成
 LINEは日本人口の70~80%が利用しており、生活に必要不可欠な通信インフラと言っても差し支えないほど、若い世代から高齢の世代まで日常的に利用している。その中でサービスを展開している企業やお店が、LINE公式アカウントを通じて、顧客とコミュニケーションを可能にするサービスがMessaging APIである。今回は、LINE Messaging APIを用いて、LINE公式アカウントとAWS上に作成したWebアプリと連携することで、LINE Botを作成する方法を紹介する。

## 1. LINE Developersにログインして、Messaging API用のチャネルを作成する
下記LINE Developersのサイトのコンソールにアクセスして、自身のLINEアカウントなどでログインする。

https://developers.line.biz/ja/

次に、コンソール画面からLINEアプリ作成のため、Messaging API用のチャネルを作成する。

1. Create a

元記事を表示

【AWS】資格取得は新卒がおすすめ【SAP】

## はじめに
こんにちは!
この記事ではエンジニア1年目の自分がAWS認定で一番難しいとされるSAPを受けてきたので、
取り組んできた勉強や実際の試験の所感を共有できればと思います。

## 受験当日までのみちのり
・今年7月にCLF取得(勉強期間3週間)
・社内のSAA勉強会参加(勉強期間2ヶ月)
・SAPの試験勉強(1か月)

## 勉強時間
1日3時間(土日定休)

Cloud Practitionerの勉強やらで7月から試験対策をしていて集中力が切れてきたので、
休日はしっかり休みつつ平日に勉強時間を確保しました。

## 使用教材
AWS認定資格試験テキスト&問題集
Web問題集

基本的にはWeb問題集を解いて、テキストは辞書のような感じで使いました。

## 勉強スケジュール
Web問題集は#1あたり7問で構成されています。
#1 ~ #70まであるのですがあまり時間がなかったので1周目は#46 ~ #70に絞って取り組みました
(後ろに行くほど新しい問題にアップデートされています)
| 日付 | 内容   |
|:———–|————:|

元記事を表示

GitHub ActionでAWS EC2にデプロイを実行する(Amazon Linux)

# 概要

AWS EC2でAmazon linuxの仮想サーバーを作成
GitHubActionsを使って作成したAmazon linuxの仮想サーバーへデプロイを実行する

[前回](https://qiita.com/kubota_ndatacom/items/d9a3c9b18854ec148993)

参考にした記事
[[初心者向け]VPC作成からEC2インスタンス起動までを構成図見ながらやってみる(その1)](https://dev.classmethod.jp/articles/creation_vpc_ec2_for_beginner_1/)
[[初心者向け]VPC作成からEC2インスタンス起動までを構成図見ながらやってみる(その2)](https://dev.classmethod.jp/articles/creation_vpc_ec2_for_beginner_2/)

# 前提
AWSのアカウント作成済み
GitHubのアカウント作成済み

# 目次
[1. インスタンスを作成する](#1-インスタンスを作成する)
[2. node.jsのインストール](#

元記事を表示

OTHERカテゴリの最新記事