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

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

自分の所有するEBS Snapshotの一覧を取得する

# 解説
Custom AMIを作ったけど、AMIを削除した後にSnapshot消し忘れたなんて経験はありませんか? Snapshotにも定期的な棚卸しが必要です。

基本的にはec2.describeSnapshotsを呼ぶだけなのですが、そのまま実行するとPublicなsnapshotが大量に取得されて悲しい気分になります。
OwnerIdsとして実行中のAWS Account IDを設定すれば良いのですが、より簡単な方法として”self”,”amazon”という二つのキーワードも利用できます。

APIリファレンスにより引用

“`typescript
/**
* Scopes the results to snapshots with the specified owners. You can specify a combination of AWS account IDs, self, and amazon.
*/
OwnerIds?: OwnerStringList;
“`

# サンプルコード

“`typescript
async fu

元記事を表示

Awesome AWS Workshops, public learning resources

## Summary

Hello, I’m Diego Magalhães, the creator of [Awesome AWS Workshops](https://awesome-aws-workshops.com/).

It is the **(Unofficial)** Curated list of awesome workshops found around in the internet. As we all have been there, finding that workshop that you have just attended shouldn’t be hard. The idea is to provide an easy central repository, in a collaborative way.
![Awesome AWS Workshops Banner](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109477/09758280-e840-a372-7

元記事を表示

AWSのEC2でメール送信する場合の申請方法

## Eメール送信制限の解除申請
AWSのEC2でメールサーバを立ち上げて運用する場合、注意が必要です。
AWSはSMTPの25番ポートを制限しています。こちらを解除申請する必要があります。

## 逆引きレコード設定の申請
一般的な迷惑メールフィルタは、逆引きできないIPからのメールを受け取らないことが多いため、
メールサーバのIPアドレスの逆引きレコードを登録してあげる必要があります。
AWSのEC2でメールサーバを立ち上げた場合、AWSに申請が必要です。

## 申請方法
ここではEメール送信制限の解除申請と逆引きレコード設定の申請を同時に行います。
下記のサイトから申請をして下さい。

Request to remove email sending limitations
https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request

下記を参考に記入して下さい。
#### Request information
##### ・Email a

元記事を表示

AWS CLIを使ってS3にファイルをアップロード/ダウンロードする

Windows10のコマンドプロンプトからAWS CLIを利用してファイルのアップロード・ダウンロードをおこなう。

##アップロード
####ファイル名を指定してアップロードしたいとき

“`
aws s3 cp ./{ファイル名} s3://{バケット名}/{ディレクトリ}/
“`

###ファイル名の一部を指定して一括アップロードしたいとき

カレントディレクトリの中のupdateというフォルダ内のファイルのうち、拡張子が.xmlのファイルをアップロードする。

“`
aws s3 cp update s3://{バケット名}/{ディレクトリ}/ –recursive –exclude “*” –include “*.xml”
“`
–include “.xml” –exclude “*” とやって失敗することが多い。。(順番が違う)

##一覧取得
####ファイルの一覧を取得したいとき

“`
aws s3 ls s3://{バケット名}/{ディレクトリ}/
“`
####ファイル名の一部を指定して一覧を取得したいとき

Windowsなのでgrepでは

元記事を表示

AWSのALBでOIDC認証を設定したらmanifest.jsonがCORSで弾かれるようになった件

開発中のWebサイトにApplication Load BalancerでOIDC認証を設定したらmanifest.jsonの読み込みが失敗するようになりました。
原因調査と対応に半日くらいかかったので調査結果をまとめておきます。

# 事象
冒頭に書いたとおり、開発中のWebサイトにApplication Load Balancerでgoogle認証を設定したところ、下記のエラーが発生するようになりました(エラーはChrome DevToolsのConsoleで確認)

“`console
Access to manifest at ‘https://accounts.google.com/o/oauth2/v2/auth?client_id=…’
(redirected from ‘https://example.com/manifest.json’)
from origin ‘https://example.com’ has been blocked by CORS policy:
No ‘Access-Control-Allow-Origin’ header is pr

元記事を表示

【AWS】S3 Glacier改めてまとめてみた

#S3 Glacierとは
S3よりもさらに安いバックアップなど中長期保存用のストレージ

##特徴
– データは「アーカイブ」に保存される
– 1つのアーカイブの最大サイズは40TB
– 保存可能なアーカイブ数とデータ量に制限なし
– 各アーカイブには作成時に一意のアーカイブIDが割り当てられ、作成後はアーカイブを更新できない
– アーカイブを保存するためのコンテナとして「ボールト」を使用(1つのAWSアカウントでは、最大1000個のボールトを使用
– S3のライフサイクルルールと連携させることにより、S3データのアーカイブを自動化し、全体的なストレージコストを削減
– AES256ビット対象鍵を使用してデフォルトで自動的に暗号化
– S3と異なり、直接データをアップロード・取得できないため、S3ライフサイクル管理からか、プログラム処理によるアップロード/ダウンロードが必要
– Glacierの最低保持期間は90日

##Glacierの仕組み
| 管理方法 | 特徴 |
|:-:|:-:|
| ボールト | ボールトはアーカイブを格納するコンテナ、S3のバケットに相当する、リージ

元記事を表示

サーバーにssh接続ができず、ssh_exchange_identification: read: Connection reset by peer と表示される時の解決策

## 状況
自宅のWifi接続先を切り替えたら、AWSのサーバーにSSH接続できなくなった

エラー文

“`
ssh_exchange_identification: read: Connection reset by peer
Connection reset?
“`

詳細

“`
MacBook-Pro-4:.ssh myname$ ssh -v server
OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/myname/.ssh/config
debug1: /Users/myname/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to /users/myname/.ss

元記事を表示

【初心者】AWS Systems Manager Session Manager を使ってみる

# 目的
– 今までインスタンスに接続するのにレガシーにTeratermでssh接続していたが、心を入れ替えて、セキュアにSesson Managerを使うように変えていこうかなと思い、使い方を確認する。

# AWS Systems Manager Session Manager とは(自分の理解)
– AWS Systems Managerの中の一機能で、sshをせずに、AWSの機能としてLinuxにシェルアクセス(WindowsにはPowerShell)できる。

# やったこと
– 以下の環境のEC2インスタンス(Amazon linux 2)へSession Managerを用いて接続できることを確認する。
– インターネット接続あり(IGW/EIP, NatGateway)
– インターネット接続なし(VPCエンドポイント)
– 接続のログが取れることを確認する。

# 構成図

![ssm構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189302/87b46cfe-

元記事を表示

[AWS SAM] [CloudFormation] 環境ごとに設定値を切り替える方法

# 背景
* [AWS SAM](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/what-is-sam.html) を使って、API Gateway + Lambda のデプロイを自動化しています
* ステークホルダーや各種制約等々の都合上、**複数環境に対してそれぞれ異なる構成**を実現する必要がありました
* [dev|staging|prd] 環境 × [(無印)|r1|r2] 環境 = **合計9環境**…!
* [パラメータ](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)や[マッピング](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html)

元記事を表示

IdeaPad duet で開発環境を整える

# IdeaPad duet はイイぞ

普段メインマシンとして Macbook Pro 13 インチ を使ってるんだけど、持ち歩くにはちょっと重いからサブ機がほしいなと思っていたところに見つけたこちらの商品
Chromebook って今まで使ったことなかったけど Linux の環境が使えるということで買ってみた

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/353538/7bec59be-c8c0-5d1e-b4b6-e0eb4675d931.png)

# 本題
せっかく Linux が使えるんだからとちょっとした開発環境を整えた
あえてログも残すのでうまくいかない人は参考にしてみてください

“`
$ uname -a
Linux penguin 5.4.40-04224-g891a6cce2d44 #1 SMP PREEMPT Tue Jun 23 20:13:49 PDT 2020 aarch64 GNU/Linux
“`

上の結果を見て分かるとおり、CPU のアーキ

元記事を表示

AWS Well-Architected 5本の柱を要約する(コスト最適化)

AWSのWell-Architected Frameworkを5本の柱ごとに自分なりの解釈を書いていきたいと思います。

今回はコスト最適化についてです。


# コスト最適化とは
> 最も低い価格でシステムを運⽤してビジネス価値を実現する能⼒

クラウドを効率的に使うためには今までと考え方を変えないといけないことが多いです。
パフォーマンス効率の柱の考え方と重なる部分もありますが、
ここではいかに安く使うかという観点で見ていきます。

[AWS Well-Architected 5本の柱を要約する(パフォーマンス効率)](https://qiita.com/toma_shohei/items/ce19743eab2c701a7308)

## 設計の原則
クラウドでのコスト最適化には、5 つの設計の原則があります。

|No|設計の原則|概要|
|:—————–|:—————–|:——————|
|1|消費モデルを導⼊する|必要なコンピューティングリソースの費⽤のみを⽀払い、複雑な予測をすることなく

元記事を表示

AWS CLIを用いてVPC周りの構築

## はじめに

AWSのVPC環境周りをAWS CLIからのみで全て作成しようと思い、
CentOS7を立ててAWS CLIインストールをしました。

## 事前準備

AWS CLIの実行結果をjsonで表示しているので、
jsonデータの整形をするためのjqコマンドをインストールします。

“`console
# yum -y install epel-release
# yum -y install jq
“`

## 作成したスクリプト

体裁の良し悪しはみなさん思うところがあると思いますが、一旦これでVPC周りの最低限の環境を用意することができます。
※UIをぽちぽちしなくて済んで楽になった。。。と思う。

“`console
#!/bin/sh

# TAGに名前をつけるために予め定義
TAG_VALUE=nnagashima
TAG_VALUE_Subnet1=nnagashima-public
TAG_VALUE_Subnet2=nnagashima-private

################
## VPC Create ##
#############

元記事を表示

TerraformでEC2を使ったweb環境をつくろう

基本構成は下記の通り
Route53 + ALB + Cloud Watch logs + S3 + RDS + EC2(nginx + php-fpm + Laravel)

![システム構成図](https://github.com/okdyy75/dev-laravel-terraform/raw/master/system.svg)

## 実行環境構築
### awsのconfig設定
“`
> aws configure –profile dev-user
AWS Access Key ID [None]: XXXXXXXXXXXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXX
Default region name [None]: ap-northeast-1
Default output format [None]: json

cat ~/.aws/config

# aws-cliを使う際はuserを設定
export AWS_DEFAULT_PROFILE=dev-user
“`

### terra

元記事を表示

AWS マーケットプレイスによる Veritas NetBackup のデプロイメント 後編

##はじめに
[前回は](https://qiita.com/vxse_japan/items/30b84fafd96ab158af43)CF(Cloud Formation)のキックまでをやりました。意外とパラメーターが面倒でしたね!今回は接続から動作の確認までをやります!

##進捗を確認する
上手く行っているときは粛々と以下のような画面が遷移します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452113/81294bcf-1492-1c00-3da7-6a5a7c3b56b2.png)

上手くいけばいいですが、失敗するとこのように怒られます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452113/49e3128d-e5a0-63f7-2b47-cfe5bcc38150.png)
失敗したスタックはデフォルトでロールバックされますが、スタック名は残す仕様です。同じスタック

元記事を表示

CentOS7へのAWS CLIの導入

## はじめに

AWSの環境をAWS CLIからのみで全て作成しようと思い、
CentOS7を立ててAWS CLIインストールをしました。

## AWS CLIとは

AWS CLIは、AWSのサービスをコマンドラインから操作し、管理するためのツールです。
Linux、Mac、Windowsなど様々なOSで利用できます。
AWS CLIを使う1番のメリットは、 GUIで行なっていた操作を自動化できるところかなと思います。
どういうことかというとコマンドでの実行となるのでスクリプトなどで書いてインフラを自動化しやすくなったりします。

今まで散々AWSのコンソールを触ってきましたが、画面が新しくなったりするのが最近辛くなってきていて、
VPCを1から作るのがめんどくさくなったってのもあります。

## 事前準備

・SELinuxの無効化
・Firewalldの無効化
・一般ユーザーへのsudo顕現付与
・パッケージの最新化
・OS再起動

## AWS CLIの導入

Pythonを使ってAWS CLIをインストールします。

“`console
# curl “https:/

元記事を表示

AWS Glueのジョブで自動生成したコードをAthenaのパーティションに対応させたい

# はじめに
AWS Glueのジョブは自動的に変換スクリプトを作ってくれますが、Athenaのパーティションに対応していません。
ネットを色々見ましたが、全然上手くいかず困りましたがなんとかなったので、対応方法についてまとめました。

# 事前準備
事前にテーブルを作成します。
テーブルについてへGlueのGUI上からぽちぽちっと作成しています。
今回は同じテーブルでpartitionがないテーブルからparitionがあるテーブルに移行するとして記事を書いています。
b_tableはjsonで作成しています。
a_tableはなんでも良いです。(自分はCSVファイルをクローラーで読み込ませて作りました)
b_tableをjsonにした理由としては、CSVだとヘッダー行も生成されるせいかAthena上からクエリ発行できなかったからです。
Parquetで作りたかったのですが、上手くパーティションを認識してくれなかったので諦めました。
databaseは適当な場所でOKです。

“`
a_table
id: bigint
name: string
date: string
“`

元記事を表示

[成功談] Mac PCでWindowsゲームをプレイできました!(AWS EC2使用)

## MACのPCでフリーゲームをプレイしたい!!!
 私は学生時代にはフリーゲームを作るのが趣味でした。
 もちろん、プレイするのも大好きで、3分ゲームコンテストやフリームなど様々なゲームを漁ってプレイをしていました。
 ですが、Mac PCにしてしまったため、そのようなゲームがプレイできずストレスを抱えていました。
 ですので、今回、AWSでWindowsサーバーを使ってフリーゲームをできるのではと思ってトライしました。
(起動しっぱなしだと月数百円くらいお金がかかるようですが、、、、もっとかかるかもしれませんので、自己責任でお願いいたします。)

↓こんな感じでプレイできるようになります。
![スクリーンショット 2020-09-02 午後6.46.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/692406/cfc2c1b9-8e48-ca7b-9048-e1070caf0d2c.png)

## 前提知識
・ AWSとEC2に関する簡単な基礎知識(全く難しくないので、 AWSを開いてE

元記事を表示

EBSの自動削除オフに気をつけよう

## EBS料金が増えていた…
EBSの料金が高くなっている事に気づいてボリューム一覧を確認したところ不要なボリュームがたくさんあることがわかりました。

## 対処
対処としては不要なボリュームをただコンソールから削除しただけです。特に意図的にボリュームをデタッチしたりなどはしていないため、現在利用していないものは基本不要と考えてOKでした。

## 不要なボリュームが増えていた原因
ではなぜ不要なボリュームが増えていたんでしょうか。
おそらくはEC2の`終了時に削除`というものにチェックが入っていなかったことが原因です。デフォルト状態だとEC2インスタンスを削除するとボリュームも同時に削除されるのですが、ボリュームだけ残しておくことが設定で可能です。`DeleteOnTermination 属性`とも呼ばれるものです。
参考:[インスタンスの削除で Amazon EBS ボリュームを保持する](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/terminating-instances.html#delete-on-

元記事を表示

AWSの各アカウントのインスタンス一覧を取得する

# このスクリプトの目的
AWSをある程度活用していくと、組織(Organizations)を駆使して複数のAWSアカウントを使い分けることが多いと思います。そのような場合に、横断的に情報を取得するサンプルコードを書いてみました。
データ全取得はそれなりに時間がかかるので、JSONファイルにデータを書き出してから活用するのがおすすめです。AWS SDKの型情報をそのまま使っておけば、何を利用するかはあとで決めることができます。

# 簡単な解説
まず組織内のアカウント一覧を取得し、取得した各アカウントにAssumeRoleしながら情報を収集していきます。
今回はec2インスタンスの取得だけを行っていますが、RDS等も簡単に追加できます。

Info[]型としてデータをまとめてJSONで書き出しているので、あとはこのJSONを読み込んで煮るなり焼くなりしてください。

# サンプルコード

“`typescript
import {Account, Accounts} from “aws-sdk/clients/organizations”;
import {EC2, Organiza

元記事を表示

【AWS SOA】AWS Shield Standardとアドバンスドの違い

#はじめに
AWS SAAに合格し、現在SOAの勉強をしています。SOAの問題集に出てきたAWS Shieldについて深掘りしたいと思います。

#解説
##そもそもAWS Shieldとは
AWS ShieldはDDoS攻撃に対する保護を行うマネージドサービス。DDoSとは標的となるコンピュータに対して複数のマシンから大量の処理負荷を与えることでサービスを機能停止状態へ追い込む、ネットワークを通じた攻撃手法の1つである。保護レベルとしてAWS Shield StandardとAWS Shieldアドバンスドの2つがある。

##Shield Standard
・全てのユーザーが自動的に無料で使用することができる。
・SYN/UDPフラッド攻撃やリフレクション攻撃といった最も頻繁に発生する一般的なインフラストラクチャ(ネットワーク層およびトランスポート層)攻撃に対して防御する。

##Shield アドバンスド
・有料
・Standardの防御機能に加えて、以下のリソースの保護が可能。
  ・ELBロードバランサー
  ・EC2 Elastic IPアドレス
  ・Amazon Cl

元記事を表示

OTHERカテゴリの最新記事