AWS関連のことを調べてみた2021年06月25日

AWS関連のことを調べてみた2021年06月25日
目次

AWS CloudFormationを使用してVPCを作成する

# 内容
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。

top


今回はCloudFormationを使用してVPCを作成してみたいと思います。

# 環境
mac OS Big Sur バージョン 11.4

# 実施順序

## VS Codeの準備
##### 今回はVS Codeを使用していきます。

1. デスクトップに新規フォルダを作成する。(例. cloudformation)
1. 作成したフォルダをVS Codeにドラッグ&ドロップする。
1. 作成したフォルダ内に新規ファイルを作成する。(例. cloudformation.yml)

## テンプレート作成準備

##### 1からテンプレートに則って作成するには非常に時間がかかるので、VS Codeの拡張機能を利用して作成していきます。

1. VS Code左メニューの拡張機能を選択`(shift + command + x)`
1. 検索窓で`cloudformation`と検索
1. 検索結

元記事を表示

Fn::Select と Fn::Cidr の表

Fn::Select 関数 と Fn::Cidr 関数 の引数がよく分からなくなるから表にしよう。
そうしよう。あとYAMLです。

# x.x.0.0/17

“`yaml
out: !Select [{index}, !Cidr [“x.x.0.0”, 2, 15]]
“`

一覧(クリックで表示)

| index | out |
| —-: | ———— |
| 0 | x.x.0.0/17 |
| 1 | x.x.128.0/17 |

# x.x.0.0/18

“`yaml
out: !Select [{index}, !Cidr [“x.x.0.0”, 4, 14]]
“`

一覧(クリックで表示)

| index | out |
| —-: | ———— |
| 0 | x.x.0.0/1

元記事を表示

Amazon DLMを使ってみた

#はじめに
本記事は、Amazon Data Lifecycle Manager(DLM)を使用した際の備忘録として記載したものである。

#Amazon Data Lifecycle Manager(DLM)とは

##■概要/特徴
* EBS スナップショットや AMI の作成といったバックアップスケジュールを設定できるAWSサービスである。
* Amazon DLMを使用することで、バックアップの作成、保持、削除を自動化することができる。
* Amazon DLMで指定することができる最大世代数は1000である。
* 2020年3月のアップデートにより、1時間間隔のバックアップスケジュールを作成することが可能になりました。
https://aws.amazon.com/jp/about-aws/whats-new/2020/03/amazon-data-lifecycle-manager-adds-support-for-1-hour-backup-interval/

##■使用する上での注意点
* バックアップスケジュールで指定した時刻から1時間以内にバックアップ処理

元記事を表示

【Python】LambdaからのAPI呼び出しを並行処理・並列処理で実装して処理時間を比較してみた

## はじめに
Pythonで記述したLambda関数からAWSのAPIを呼び出す処理で、いまいち処理性能が出ないという課題があったので、並行処理・並列処理を実装して処理の効率が上がるのか検証してみました。

並行・並列処理とは?とうい方は以下の記事に分かりやすく説明されているので参考になさってください。

https://qiita.com/4_mio_11/items/7f418ca661d9f5a2a39d

## 前提
### 検証の内容
UUIDのリストを1000件分作成し、一件ずつSQSに登録します。
SQSに登録する処理を以下の三つの方法で実装し、それぞれの処理にかかる時間を比較します。

* forループ
* 並行処理
* 並列処理

「とりあえず動いて結果が比較出来るもの」を最短で作っていますのでコードの汚さには目をつぶっていただけると幸いです。

### 用意するもの

* Lambda関数
* リソース名:test-lambda
* ランタイム:Python 3.7
* メモリ:512MB
* タイムアウト:3分
* CPU

元記事を表示

【DevOpsエンジニア – プロフェッショナル】ピアソンVUEでAWS試験をオンライン受験してみた

![スクリーンショット 2021-06-24 193948.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/588367/5b11a428-035a-dce8-4ebf-7f756523ed88.png)

#1-はじめに
AWS DOPに合格したので体験記を投稿します。
自宅受験についても簡単に記載してみます。

#2-試験勉強

試験合格後に振り返ってみて、役に立ったものをまとめてみます。

###①参考サイト
以下のサイトが網羅的にまとめられており、最も参考にさせて頂きました。

###②AWS公式の情報
以下に、受験する人の全員が実施したほうがいいと思われるものをまとめます。

+ [AWSトレーニング E-ラーニング](https://www.aws.training/Details/eLearning?id=40664)
+ 無料で試験の

元記事を表示

BoltでSlackアプリを作る際につまづきやすいこと

最近BoltでSlackアプリを作成しています。
何気にいろんなつまづきポイントがあったので、まとめて行こうと思います。

## Slackアプリ作成時につまづきやすいポイント

### 送信データを処理してくれない!
モーダルを開くところまでは実装できても、送信ができない…というケースがありました。

“`
url: (56) Recv failure: Connection reset by peer
“`

何かの操作に対してアプリがアクションを起こすには、 `Interactivity & Shortcuts` をオンにして
Request先のURLを登録する必要があります。

![スクリーンショット 2021-06-24 18.40.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441432/4bff9b4c-e126-1c8f-7815-222058181dc6.png)

### 特定の動作で弾かれる!
権限のスコープがうまく設定できていない可能性があります。
`OAu

元記事を表示

Lambda (Python) で EBS ボリュームのスナップショットを削除してみる

# ■ はじめに

![963f9ca9395c096c234f891ad8877b28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/161939/d838a89d-5dc1-d693-0517-add60ca2ce07.png)

ずいぶん昔に作成したものですが…

以下の処理に伴って、イメージを削除したものの、元の EC2 インスタンスの設定によっては、スナップショットが残ってしまうことがあるのでこちらで対応します。

– [Lambda \(Python\) で EC2 のイメージ \(AMI\) を作成してみる \- Qiita](https://qiita.com/kusokamayarou/items/83ed22802580ca09276f)

# ■ プログラムの流れ

1. EC2 インスタンスのイメージの一覧情報を取得
1. EBS ボリュームのスナップショットの一覧情報を取得
1. 上記二つの一覧情報から、削除されたイメージにも関わらず、残っているスナップショットを抽出
1. 抽

元記事を表示

Lambda (Python) で EC2 のイメージ (AMI) を作成してみる

# ■ はじめに

![963f9ca9395c096c234f891ad8877b28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/161939/d838a89d-5dc1-d693-0517-add60ca2ce07.png)

ずいぶん昔に作成したものですが…

特定の EC2 インスタンスについて、定期的にイメージを作成したかったのでやってみました。

# ■ プログラムの流れ

1. EC2 インスタンスのイメージの一覧情報を取得
1. 古いイメージを削除
1. EC2 インスタンスの一覧情報を取得
1. 一覧情報の内、特定の EC2 インスタンスについて、イメージを作成

– イメージを作成する EC2 インスタンスの識別としては、今回は、Name タグの先頭文字列が「★」であれば、イメージを作成することに。

# ■ コード

コードは、以下。

“`python:MaintenanceEC2_Image.py
#!/usr/bin/env python
# -*- coding: u

元記事を表示

aurora mysqlでdeadlockエラーが出るがプロセスkillできないとき

# 結論
インスタンスを再起動すればよい

# 環境
エンジンバージョン
5.7.mysql_aurora.2.07.4(mysql 5.7.12)

# 現象
処理中にDBをダウンさせたので後続の処理でdeadlockエラーが出た

“`
ERROR 1213 (40001) at line 24: Deadlock found when trying to get lock; try restarting transaction
“`

ぐぐると大抵プロセスを探してkillしろと書かれている
こんなかんじ↓

しかし `SHOW ENGINE INNODB STATUS;` で該当のthread idを見つけてkillしてもエラーになった

“`sql
kill xxx;
[HY000][1094] Unknown thread id: xxx
“`
これでも同じ

“`sql
CALL mysql.rds_kill(xxx);
[HY000][1094] U

元記事を表示

Lambda (Python) でメールを送信してみる

# ■ はじめに

![963f9ca9395c096c234f891ad8877b28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/161939/d838a89d-5dc1-d693-0517-add60ca2ce07.png)

Lambda からメールを送信したかったので、やってみました。

ほぼほぼ、こちらの記事の通りにやっただけですか…

– [【Python】メール送信をしてみよう! \| トモテク](https://develop.blue/2020/03/python-use-mail/)

ありがとうございました!
感謝 ♪♪♪

?‍♂️?‍♂️?‍♂️

# ■ コード

コードは、以下。

“`python
import os
import json
import smtplib
from email import message

smtp_host = ‘[メールホスト]’
smtp_port = [ポート番号]

def lambda_handler(event, co

元記事を表示

SageMaker 独自アルゴリズム作成方法

今回はsagemaker-training-toolkitを使用して独自アルゴリズムをSageMaker上に作成する方法をまとめる.

予めインストールし,設定しておくパッケージ

– Cli
– [Docker](https://docs.docker.com/get-docker/)

**Dockerについて**

> unix ///var/run/docker.sock. is the docker daemon running?

上のエラーが出た場合はdocker.sockに関する権限を設定しておく.

“`bash
$ sudo chmod 755 /var/run/docker.sock
“`

## Docker imageの作成

独自アルゴリズムを使用する場合,DockerコンテナをECR上に作成する必要がある.今回はAWS提供の[sagemaker-training-toolkit](https://github.com/aws/sagemaker-training-toolkit)を使用する.

1 :train.pyを作成

元記事を表示

【完全SPA】Sier出身者がWeb系企業へ転職するために作成したアプリの開発記録(Rails/Vue.js/AWS/Docker/CircleCI)

## 記事の内容

**Webアプリケーション開発の経験が少ないSE**が、Web系エンジニアになるべく作成したポートフォリオに関して、以下の情報をまとめます。

– ポートフォリオの紹介
– 技術選定理由
– おすすめの書籍やWeb媒体の紹介

同じような境遇の方の参考になればと思い、記事を書かせていただきました。

## 自己紹介

ももんがザムライ([@momonga11_d](https://twitter.com/momonga11_d))と申します。
文系学部で大学卒業後、中小規模のSierに就職し、7年間勤めました。
主にクライアント・サーバーアプリの設計、開発、パッケージソフトの顧客への導入に従事。使用言語は`VB.NET`でした。
よりモダンな環境で手を動かすエンジニアとしての技術を身につけたい思いで、Web系エンジニアへのキャリアチェンジを決意しました。

## ポートフォリオ「NOTENEXT」 紹介

### 概要

NOTENEXTは、**ノートとタスクを一緒に管理する**ためのアプリケーションです。
こういった課題を解決できます。

– チームの打ち合わせ中

元記事を表示

キャッシュサーバーを配置する

# 内容
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。

top


前回の記事「HTTPS通信でアクセス可能にする」の続きです。
##### 前回の記事
https://qiita.com/zakinicof/items/118c0e6dee648a7faa93
前回までの構成では、独自ドメインを取得し、HTTPS通信でアクセスするとブログサイトを閲覧できる状態でした。
今回はクライアントとELBの間にCloudFrontを設置して、同じようにブログサイトにアクセス出来るよう設定していきます。
CloudFrontとは、データを効率良く配信できるキャッシュサーバーをフルマネージドで利用できるAWSのサービスです。
EC2のデータをCloudFrontにコピーしているようなイメージです。
ユーザーはEC2にデータを取りに行くのではなく、間にあるCloudFrontに取りにいきます。
これによって、ユーザーにとってはWebページの表示が速くなり、サーバーにとっては、データを渡

元記事を表示

AmplifyでカスタムドメインSPAの開発環境、CI/CD環境を手軽に構築する

# はじめに

AWSのAmplifyを使って、SPA(今回はNuxt.js)の開発環境、CI/CD環境(+slack通知)を構築してみようと思い、構築までにやったことをまとめました。
Amplifyを使ったことない人、気になっている人などの参考になれば幸いです。

# この記事でわかること

– Nuxt.jsのセットアップ方法
– Amplifyのプロジェクト作成方法
– Amplifyでhostingをする方法
– CI/CDの設定方法
– デプロイの開始/完了をslack通知/メール通知する方法

# 環境

“`
% npm –version
7.11.1
“`

“`
% amplify –version
Scanning for plugins…
Plugin scan successful
5.0.1
“`

# 1. Nuxt.jsのプロジェクト作成

公式:https://ja.nuxtjs.org/docs/2.x/get-started/installation/
create-nuxt-appを使いました。yarnでもnpxでもnpm

元記事を表示

【AWS】高額請求にはもううんざり!RDSの自動起動で知らないうちに課金される状況の回避策を考えてみる。

#はじめに
こんにちは。

突然ですがAWSアカウントを検証用途などで自己保有していて、リソースの消し忘れで高額請求された経験のある方はいらっしゃいますか?

**わたしはあります。**しかも過去に2度も。。。

どちらもAuroraを終了ではなく停止にしていたことで、停止してから7日後に自動起動してしまい、請求が来た時に初めて課金額が高額になっていたことがわかった、という経緯でした。

私の場合はAWSの勉強をし始めたときに**「検証で利用したリソースは検証が終了したらすぐに削除すること」**と口酸っぱく言われていたのですが、「また使うかも?作り直すのも面倒だし、終了じゃなくて停止にしておこう」というもったいない精神が働いてしまって、2度も痛い目を見てしまいました。。

検証用リソースはすぐに削除するというのは大前提として、2度あることは3度あるとも言いますし、同じ失敗はしたくないのでリソースの削除を行わなかった場合の高額請求にならないための回避策を考えてみました。

#回避策
##構成図
回避策として、Auroraが起動したのをトリガーに、LambdaでAuroraを自動的に停止し

元記事を表示

Glueジョブの自己参照インバウンドルールに苦しめられている同士へ

## 初めに
業務でGlueジョブのセキュリティグループを作成しようとした際に、「自己参照インバウンドルール」なるものに苦しめられ半日を溶かしたので、備忘録として残そうと思います。

Glueジョブのセキュリティグループ作成につまずいている同士のお役にたてれば幸いです。

## 自己参照インバウンドルールって何?
### 公式のドキュメントを見てみる
公式のドキュメントには以下のように記載してあります。
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/setup-vpc-for-glue-access.html

> AWS Glue がコンポーネントと通信できるようにするには、すべての TCP ポートに対して自己参照のインバウンドルールを持つセキュリティグループを指定します。自己参照ルールを作成することで、ソースをすべてのネットワークではなく VPC 内の同じセキュリティグループに制限することができます。

日本語で書いてある気がするのですが、全く理解できませんした。

### 作成に成功した今だからわかる答え
自己参照インバウンド

元記事を表示

Amazon Connect で自動認証を利用したコールフローを実装

**本記事では、Amazon Connect を使用したコンタクトセンターを想定し、着信があった際に自動認証を行った上でCCPへ着信させる方法を記載する。Amazon Connect 上で用意する電話番号の取得、ユーザー、ルーティングプロファイルなどの作成は割愛する。**

構成は以下のようなイメージ
Amazon Connect / Lambda / DynamoDB / SNS を使用する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1597898/7cd801f7-6a7d-3bf5-cf8a-56a30e181d23.png)

#仕組みについて
① ユーザーが Amazon Connect の電話番号へ発信
② DynamoDB 上にある発信者番号のレコードを特定した場合、自動認証としてオペレーターと繋がる。
③ DynamoDB 上に発信者番号のレコードが存在しない場合、SMS を送信し、ワンタイムパスワード認証を実施する。
④ 認証が通れば発信者番号に Dynamo

元記事を表示

Athenaで基礎からしっかり入門 分析SQL(Python・Pandasコード付き) #1

今まで複雑なデータ操作・分析などはPythonでやっており、SQLは普通のアプリ開発程度のライトなものしか触って来なかったのですが、やはり分析用の長いSQLなども書けた方がやりとり等で便利・・・という印象なので、復習も兼ねて記事にしておきます。

また、SQLに加えて検算も兼ねてPythonやPandasなどを使ったコードもSQLと併記していきます(Pythonで書くとどういった記述が該当するのかの比較用として使います)。

※長くなるのでいくつかの記事に分割します。本記事は1記事目となります。

# 特記実行

– お仕事がAWSなので合わせてDBはAWSのAthena(Presto)を利用していきます。BigQueryやRedshift、MySQLやPostgreSQLなどではある程度方言や使える関数の差などがあると思いますがご了承ください。
– 同様にお仕事がゲーム業界なので、用意するデータセットはモバイルゲームなどを意識した形(データ・テーブル)で進めます。
– Athenaなどでの分析利用が主なため、この記事ではテーブル作成・削除などにはほぼ触れずに読み込みや集計などをメイン

元記事を表示

python3.7でローカルからLambda関数をデプロイする手順

# What’s this?
pipenvを利用してコマンド1発でローカル環境のソースコードをLmabda関数にデプロイする際の手順をまとめた記事です。

# IAMからユーザー作成
最初にローカルからLambdaへのデプロイを実施するためのIAMユーザーを作成します。
IAM > ユーザー > ユーザーを追加からユーザーを作成します。

今回はユーザー名「dev_user」で作成します。
アクセスの種類はプログラムによるアクセスにチェックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566229/54d51d8c-0850-5bb1-de34-d8b3da250dd9.png)

アクセス権限は後から付与できるので一旦スキップしてユーザーを作成します。
ユーザー作成ができるとシークレットアクセスキーが発行されるのでダウンロードしてておきます。

作成されたユーザーに対してLambdaのデプロイに必要なアクセス権限を追加します。
アクセス権限 > インラインポリシーの追加

元記事を表示

SoracomBeamのUDP → HTTP/HTTPS エントリポイントを経由してAWS API Gatewayからレスポンスを取得する

SoracomBeamのUDP → HTTP/HTTPS エントリポイント + Raspberry Piを使用してAWS API Gatewayからレスポンスを取得する方法をまとめました

# はじめに
## SoracomBeam UDP → HTTP/HTTPS エントリポイントとは?
SoracomBeamのエンドポイントにUDPリクエストを送るとSoracomBeam側でHttpのPOSTリクエストに変換してくれる機能
この機能では嬉しいことにレスポンスを返してくれるため、UDPを使用しているにも関わらずHTTPのレスポンスを受け取ることができる
詳細は
https://users.soracom.io/ja-jp/docs/beam/udp-http/
に記載されています。

なお、ポイントとしては

“`
リクエストBeam は送信されたメッセージを Base64 エンコードしたうえで以下のような JSON にし、HTTP POST リクエストのボディに設定します。
“`
の2点
– SoracomからはPOSTでメッセージは送られる
– メッセージはBase64にエン

元記事を表示

OTHERカテゴリの最新記事