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

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

AWSを不正利用された話 | 返金対応まで

先日、AWSにてアカウントが乗っ取られ、高額請求されました。
当時はかなり不安でしたが、サポートのおかげで無事解決することができました。
今回は解決までの行動・カスタマーサービスの対応を時系列で書きたいと思います。
同じ境遇の方は少しでも参考になれば幸いです。

※当方はAWS初心者のため、この記事は初心者向けとなります。

[不正利用発生から解決まで]

12月7日:事件発生
AWSから1346ドルの請求(およそ16万円)が届く。
原因を確認したところ、高容量のインスタンスが複数作成されていた。(身に覚えが無い)
作成元をCloudTrail(アカウントのアクセス日時・元を特定できる)で調べると、アメリカから不正にアクセスされていることが発覚。すぐに該当アカウントの停止を行った。
その後、Ruby 2.5.0コンテナでRails6の開発環境を作るときのトラブルシューティング

こちらのハンズオンをやっていたところ、いくつかの問題に遭遇したので備忘録。

[Rails アプリケーションをコンテナで開発しよう ! 第 1 回 – まずは Rails アプリケーション作りから](https://aws.amazon.com/jp/builders-flash/202009/container-rails-app/?awsf.filter-name=*all)

## Rails7のインストールに失敗する

記事では Ruby2.5 & Rails6 を使用しているが、現時点(2022/1)での最新版は `7.0.1`。
エラーメッセージにもあるように`7.0.1` ではRuby2.7以上が必要であるため `gem install rails`に失敗する。

“`bash
root@810c33297af8:/work# gem install rails
Fetching: concurrent-ruby-1.1.9.gem (100%)
Successfully installed concurrent-ruby-1.1.9
Fetching: i18n-

元記事を表示

最小限のIAM権限でAWS上にRayクラスターを立ち上げ

# 背景/目的

– Admin権限をもったIAMユーザを使ってRayクラスターを立ち上げるのがシンプルだがセキュリティ的によろしくない
– 最小限の権限でRayクラスターを立ち上げたい
– 権限を絞ってIAMユーザ/ロールを作り、Rayクラスターを起動する

# 参考
下記を参考にしながらトライする。

https://github.com/ray-project/ray/issues/9327

https://github.com/ray-project/ray/blob/master/python/ray/autoscaler/aws/example-full.yaml

# 概要
最小限の権限をもったユーザとロールを作成する。ロールをもとにインスタンスプロファイルを作成し、インスタンスプロファイルのARN(Amazon Resource Name)をRayクラスター起動用コンフィグファイルで参照してヘッドノードとワーカノードに最小限の権限を割り当てるようにする。コンフィグファイルをもとにRayクラスターを起動する。

# 手順
## 1. IAM Policy/Role/IA

元記事を表示

EC2 に CloudWatch Agent をインストールして、ディスク使用率を基にアラーム設定をしてみた

# はじめに

[以前の記事](https://qiita.com/sugimount-a/items/4f332e4128984a1b3b7d)で、EC2 インスタンスに CloudWatch Agent をインストールする方法を記載しました。今回は、もう少し踏み込んで、EC2 にアタッチしている EBS の使用率を使ってアラームを設定する方法を確認します。

EBS の使用率は、CloudWatch Agent を導入すると確認できるようになるので、もし気になる方がいれば導入の検討をおすすめします。

# CloudWatch Metrics の確認

以前導入した CloudWatch Agent によって、CloudWatch Metrics の Custom namespaces として `CWAgent` が作成されています。この記事の環境では、ネームスペースに 51 個のカスタムメトリクスが登録されている状況になっています。このネームスペースの中身を見ていきましょう。

![image-20220107224654238.png](https://qiita-im

元記事を表示

TerraformでElastiCache構築時に「InvalidParameterCombination: PreferredCacheClusterAZs can only be specified for one node group」が出た時の対処

# 状況
AWSのElastiCacheでRedisをクラスターモード且つマルチAZで構築しようとし、Terraformを実行するもタイトルのエラーが出てapplyに失敗しました。

# 結論
`availability_zones`の指定を書いている場合、これをなくします。(もしくはnullにする)
自分の場合はこれで無事構築ができました。
(AWSコンソールで確認してちゃんとクラスターモード且つマルチAZがenabledになっていました)

“`
resource “aws_elasticache_replication_group” “default” {

multi_az_enabled = true
availability_zones = null

cluster_mode {
replicas_per_node_group = XX
num_node_groups = XX
}
}
“`

元記事を表示

Athenaで統計情報を取得する

#背景・目的
– Athenaでどこに時間がかかっているか内訳を調べたい。

#結論
– Athenaのget-query-executionのオプションを指定することで統計情報が取得できる。

#内容
## CLIで調査する
– 以下のコマンドを実行する。

“`
aws athena get-query-execution –query-execution-id {クエリID} –query QueryExecution.Statistics –output table
“`

– 結果

“`
—————————————————————————————————————————————————————————–
|

元記事を表示

「電話番号への転送」ブロックについて

#はじめに
Amazon Connectでは
「電話番号への転送」ブロックを用いることで、インスタンス外部の電話番号に転送することができます。
この「電話番号への転送」ブロックにおいて、転送先の状態がどのような場合に「呼び出し失敗」へ遷移するのかについて検証しました。
![3_構成図.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266380/abecb93f-7a82-d625-9d8f-7d94e3c720da.png)

#調査を実施するための設定概要
ここで、「電話番号への転送」ブロックについて、簡単に説明します。
![「電話番号への転送」ブロック.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266380/3a7bb8fa-c36f-a4fe-c5b1-32f694962744.png)

この「電話番号への転送」ブロックは、
・着信問い合わせフロー
・[Customer Queue flow (お客様キ

元記事を表示

ラズパイで消費電力を取得する(2)

#目的
Raspberry Pi4とCTセンサーを用いて、消費電力を取得し、AWS IoT Core経由で、ElasticSearchに流し込むこと。
前回の記事は[こちら。](https://qiita.com/shof0322/items/0ea56dc8d3f6ae475884)

#方法
ざっくりの流れは以下の通りです。

1. ハードウェアの構築
1. 消費電力取得プログラムの作成
1. AWS環境の構築

###1.5 ラズパイの構築

消費電力を計測するためのCTセンサーや抵抗などをブレッドボードを用いてラズパイと接続します。
配線にあたっては、下記のサイトを参考にさせていただきましたので、詳細は割愛いたします。
https://ambidata.io/samples/m5stack/m5_powermonitor/
https://qiita.com/ikenohotori/items/4e0dd0bf9c4edf2f9c0d
https://qiita.com/matsuda33/items/e5e0d22b0e0d7b05a409

####全体

元記事を表示

AWS Backupスケジュール設定

# 経緯
EC2インスタンスのバックアップを定期的に取得したい。

Lifecycle Manager でも定期的にバックアップを取得できるがEBSボリュームのスナップショット取得のみなので、AMIで取得する設定をAWS Backupで行いたい。

参考:[AWS BackupとLifecycle Managerの違いってなに?使い分けを考えてみる](https://tech.katomoh.net/difference-between-awsbackup-and-dlm/)

# スケジュール設定

AWS Backupを使用する。
参考:[AWS Backup とは](https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/whatisbackup.html)

## バックアップボールドの作成

AWS Backup > バックアップボールト より 「バックアップボールドを作成」

* バックアップボールド名を入力
* 「バックアップボールドを作成」押下

## バックアッププランの作成
AWS Backup >

元記事を表示

AWS ANS合格記(2022/1/7投稿)

# はじめに
この度AWS認定のANSを受験してきましたので、勉強した内容と受験した感想を書いておきます。
これから受験される方の参考になれば幸いです。

今回でAWS認定は9冠を達成しました。

* [2019-07-04 AWS Certified Cloud Practitioner](https://qiita.com/handy-dd18/items/c2b62ad58206e47f1345)
* [2019-07-24 AWS Certified Solutions Architect – Associate](https://qiita.com/handy-dd18/items/96a9f374a64663b10e24)
* 2021-02-25 AWS Certified Data Analytics – Specialty (DAS)
* [2021-07-23 AWS Certified Developer – Associate (DVA)](https://qiita.com/handy-dd18/items/33ba3e6cfa100903912c)
* [2

元記事を表示

Amazon EC2でマインクラフトサーバー(Java版 ver.1.18)を作成する

# はじめに
マインクラフトサーバー(Java版 ver.1.18)の作成をしていたのでメモ。
ver.1.18からはJDK17が必要になりインストールの方法も色々あるので自分なりにいろいろ調べてAmazon Correttoを使用してインストールするのが楽そうだったので紹介。

https://aws.amazon.com/jp/corretto/

# 環境構築
適当なEC2インスタンスを立ててsshしてインスタンスに入ります。
今回は`Amazon Lunux2`の`c5a.xlarge`で作成。(インスタンスのサイズは以前サーバーを作成した時と同じものを使用。 5人くらいで遊んでました。)

“`
# Amazon CorrettoでJDK17をinstall
$ sudo rpm –import https://yum.corretto.aws/corretto.key
$ sudo curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
$ sudo yum in

元記事を表示

[ElasticCache] RedisとMemcachedは結局なにが違うのか。

# はじめに
SAAの勉強をしていると避けては通れないElasticCache。
ハンズオン学習にはちょっと敷居が高い……!
それはまあいいんですけど、困ってしまうのは「 RedisとMemcachedのどちらを選択すればいいですか?」系の問題が出題されたときです。

結局RedisとMemcachedってなにが違うんだ!!!
なにが違うんだ!!!(2回目)
という自覚がAWS公式の方にあるのかは知りませんが、解説が提供されています。

https://aws.amazon.com/jp/elasticache/redis-vs-memcached/

公式の記事を読み込めば済む話ではあるのですが、勉強がてらRedisとMemcachedについて纏めてみます。

# ElasticCacheとは

本題の前に、ElasticCacheのおさらいです。

ElasticCacheを一言で言えば、AWSの提供するインメモリデータストアです。
すべてのデータは**メインメモリ(主記憶装置)**にのみ保存および管理されます。
メインメモリに直接保存されるため、データの参照時にディスクにアクセ

元記事を表示

AWS / CircleCI / Docker を使ったアプリの完成(仮)

# プロフィール
・実務未経験の27歳
・大学院卒業 〜 現在まで約2年フリーターとして就業中
・週3, 4勤務
・プログラミングスクール卒業生

目標にしていたAWS、Docker、CircleCIの導入ができたので一旦これでポートフォリオの完成にしようと思います。インフラの勉強むずい!

# ポートフォリオについて

## はじめに
一般公開しています。何かコメントいただけるととても嬉しいです:smile:
https://www.nitinitikoretanren.net/

## 機能一覧
日々の運動習慣を記録できるアプリで、機能は大きく分けて三つあります。

1. 運動した時間や走行距離などをグラフとして描画できる機能
2. 基本的なCRUD機能を持つつぶやき投稿(つぶやきの新規作成、編集、削除、一覧表示)
3. つぶやき投稿に対するいいね機能

## テストユーザーの使用例
* ランニング → 走行距離・走行時間
* 筋トレ → 筋トレ部位・筋トレ時間

上記のように、ユーザーは「ランニング」と「筋トレ」に分けて運動を記録することができます。
それらのデータを使って三種

元記事を表示

AWS SAA合格までに無駄使いした費用

#はじめに

本記事は、AWS SAA-C02(AWSソリューションアーキテクトアソシエイト)を取得したい人に向けに、2回落ちた私が勉強費用、受験料でどれだけ無駄使いをしたかを記載します。

#勉強費用(教材費)

AWS SAA取得に向けてまず教材費は不可欠です。私は、単行本とKindleを両方購入しました。

### AWS認定資格試験テキスト AWS認定ソリューションアーキテクト – アソシエイト 改訂第2版

実際のAWSを使ったシステムの豊富な構築経験と深い知識を持った著者が、合格のポイントになる知識と解答の考え方を理解できるように構成しています。
さらに、練習問題と模擬問題で知識を解答につなげる力がしっかりと身につきます。

・単行本 2,618円(税込)
・Kindle 2,356円(税込)

https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A%

元記事を表示

[初心者向け]VPC作成からRDS接続までをそこそこ丁寧にまとめてみる。③RDS作成から接続まで

# 前回までの記事
本記事の趣旨及びVPCの作成を解説しています。
[[初心者向け]VPC作成からRDS接続までをそこそこ丁寧にまとめてみる。①VPC作成まで](https://qiita.com/kmmz/items/53b4fbd64ccbfcaf9ee0)

EC2の作成からSSH接続までを解説しています。
[[初心者向け]VPC作成からRDS接続までをそこそこ丁寧にまとめてみる。②EC2作成~SSH接続まで](https://qiita.com/kmmz/items/2920659fbe7ad2b0ef5f)

今回の記事で最後です。パパパッと作成してみましょう!

# 4.RDS作成

RDS(Amazon Relational Database Service)は、名前の通りリレーショナルデータベースです。もう少し厳密に言うと、6種類のDBMS(データベースマネジメントシステム)を、クラウド上で動かすことができるサービスです。

|費用|名称|
|:—|:–|
|有償|「Amazon Aurora」「OracleDatabase」「SQL Server」|
|無

元記事を表示

[初心者向け]VPC作成からRDS接続までをそこそこ丁寧にまとめてみる。②EC2作成~SSH接続まで

# 前回の記事

本記事の趣旨及びVPCの作成を解説しています。
[[初心者向け]VPC作成からRDS接続までをそこそこ丁寧にまとめてみる。①VPC作成まで](https://qiita.com/kmmz/items/53b4fbd64ccbfcaf9ee0)

# 2. EC2作成

EC2(Amazon Elastic Compute Cloud)は、コンピューティングキャパシティを提供するサービス、つまりサーバーに必要なもの一式をレンタルできるサービスです。

EC2の学習にあたっては、公式ドキュメントやサービス別資料(ブラックベルト)なども参考にしてみて下さい。

>[Amazon EC2とは](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/concepts.html)
>[AWSサービス別資料](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/)

EC2は簡潔に言うと、空っぽのサーバーです。
そのため、RD

元記事を表示

S3にCSVファイルをアップロードしたらDynamoDBに書き込んでくれるLambdaをGolang1.xで書いてSAMでデプロイする

GoでLambdaを書いてる記事が意外と少なかったので、備忘録を兼ねてさくっとまとめます。
ハマりどころもメモ程度にいくつか併記したので、別途ググってみてください。

完成したコードは最後にあります。
また、DynamoDBのテーブルは「アプリ内のお知らせ機能で新しいお知らせを打つために、データのCSVをバッチ処理でDynamoDBに書き込む」という目的でつくったものです。
後半でそんな感じの記述が出てきますので、それぞれの用途に応じてよしなに読み替え書き換えてください。

# 諸々のバージョン

“`:go.mod
module hoge

go 1.16

require (
github.com/aws/aws-lambda-go v1.27.1
github.com/aws/aws-sdk-go v1.42.25
)
“`

Goは1.16である必要はなく、動かしたいものが動くバージョンであればOKです。
aws-sdk-goのREADMEには「Go1.5で`go get`するならちょっと注意が必要だよ」みたいな注意書きがあるので、少なくとも1.5以上なら動くのでしょう

元記事を表示

CloudFront – ALB – EC2 構成を作る

完成図

![Untitled (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178985/f9fc7560-ab19-4ee4-11da-033901f01819.png)

下準備

①VPC・サブネット・igw・ルートテーブル・EC2を作成して
EC2内のapacheとかnginxを起動してブラウザでページが見えるようにしておく

②マネコンでRoute53・ACM(東京)・ACL(バージニア)・ALB・CloudFrontを
別タブで開いておく

③ドメインを設定するサイトを開いておく
ムームードメインとか。freenomとか。

ALB作成

ACM証明書を作成します。(東京・バージニア両方で)
作成したら③ドメインを設定するサイトに証明書のCNAMEを登録します。
少し待つと、証明書のステータスが発行済みになります。

ALBを作成します。

リスナー80番は443番にリダイレクトさせて、
リスナー443番はさきほど作成したACM証明書(東京)を指定します。
A

元記事を表示

アクセスキー無しでIAMロールだけでMATLABからAWSのS3ストレージにアクセスする方法

# MATLAB本体でできるクラウドストレージへのファイル読み込み・書き込み
**MATLAB** では本体機能(Toolbox 無し)で、Amazon の**S3** (Simple Storage Service)やAzure の**BLOB** ストレージといったクラウドのストレージサービスにアクセスできます。
近年のバージョンアップでクラウドストレージへの対応関数も強化されています。

全てではないですが、まとめると以下のとおりです。

* 読み込み
* **datastore**、**imageDatastore**、**fileDatastore**、**tabluarTextDatastore** (R2017a~)
* **readtable**、**imfinfo**、**imread** (R2018b~)
* **readtimetable**、**readmatrix**、**readcell**、**parquetinfo**、**parquetread**、**parquetDatastore** (R2019a~)
* **audioread**

元記事を表示

Glueのジョブメトリクスを確認する

# 背景・目的
– Glueで、50KiB/個 * 204,800,000個程度のファイルを、一定程度の個数(1,000個)を読み込むジョブを組みました。(これをファイルがなくなるまでループします、)
– 8H程度処理したタイミングでログを確認したところ、一回あたりの処理時間が延びてきた(※)ので原因を調査することにしました。いくつか選択肢がありますが、まずはメトリクスから確認してみます。
– ※ 処理時間(CWLに出力したログから算出)
– 49〜50回目あたりから徐々に遅くなり、65回目から急激に遅くなっている。

|ループ回数 | 実行時間 |処理時間|
| :–:| :– | –:|
|1 | 2022-01-05T12:50:42.059+09:00 〜 2022-01-05T12:58:44.038+09:00| 8分2秒|
|2 | 2022-01-05T12:58:44.038+09:00 〜 2022-01-05T13:06:17.517+09:00| 7分33秒|
|3 | 2022-01-05T12:58:44.038+09:00 〜 2022

元記事を表示

OTHERカテゴリの最新記事