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

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

ECSのタスク定義でボリュームのマウントをする時のパラメータの書き方

## ボリュームプロパティ
事前に`Volumes`プロパティで、マウント先であるインスタンス側のボリュームを、パスを指定して命名しておく。

“`yml
Properties:
Volumes:
– Name: host_volume
Host:
SourcePath: /var/log
“`

## マウントパラメータ
マウント自体は`mountPoints`パラメータで定義される。
`SourceVolume`パラメータには先ほど定義したマウント先のインスタンスのボリューム名を入れる。
この時、`SourceVolume`で指定できるのは、`Volumes`プロパティで定義されたものだけなので注意。
`ContainerPath`パラメータにはマウントするコンテナ内のボリュームのパスをそのまま書けばよい。
`ReadOnly`パラメータはデフォルトで`false`。

“`yml
MountPoints:
– SourceVolume: host_volume

元記事を表示

macからEC2にSSH接続したら、Bad configuration option: identifyfile?/ terminating, 1 bad configuration optionsが出てしまった時の対処法

@nakmさん: [AWSのEC2にmacからSSHする方法](https://qiita.com/nakm/items/695e41d8e71d0d281ac4)

こちらの記事を参照して、設定した際に、
`Bad configuration option: identifyfile?`

`terminating, 1 bad configuration options`

が出てきてしまいました。
対処に時間をかけてしまったので、自分が解決したケースをシェアさせて頂きます。

秘密鍵ファイルの移動をしてSSH接続を試みたところ….

“`ssh -i ~/.ssh/<秘密鍵ファイル名> <ユーザー名>@<接続先IP>“`

以下のエラーが返ってきました。

`…/ .ssh/config: line 6: Bad configuration option: identifyfile?`

`…/ .ssh/config:terminating, 1 bad configuration options`

configファイルの設定は以下の通り

元記事を表示

aws apache rds

# ec2にログイン
アパッチをyumでインストール

#RDS

## private subnet の作成
ip 10.0.20.0/24
internet gateway と接続しない。
RDSを作るとき用にもう一つ
ip 10.0.21.0/24も作る。availability zoneを違うところにして

## RDSの作成
まず、セキュリティグループの設定
データベース用の作成
xxxx-db-sg あたりにして
vpc の選択
inbound rule
type MYSQL/Aurora
Source webように作ったもの

RDSに移動
database create

DB instance identifierに名前を入れて
Credentials Settings
Master user
password 設定

### connectivity
VPC

vpc-sg

availability zone の設定

###追加の設定
db name
sg の設定
## ssh

terminal で
login
mysql install

dat

元記事を表示

AWS Lambda上でGCCを動かす。

はじめに
=====
オンラインジャッジをサーバーレスで構築してみたかったので、まずLambda上でGCCを動くようにしました。

環境
=====
Node.js 12.x

GCCが動作するのに必要なもの
=====
– GCC: 本体。
– Binutils: GASとか。
– GLibC: ヘッダーファイルやランタイムなど。

普通の環境ではGCCのみコンパイルすれば動かすことができます。
ですがLambdaの中には最小限のソフトウェアしかインストールされていないため、いくつか別にインストールする必要があります。

インストール先
=====
最初に思いつくであろう方法がプログラムを含めたZIPファイルに一緒に含めてGCCをアップロードする方法です。
ただその場合ZIPファイルの容量制限がかなり厳しいので、結構機能制限しないとGCCをアップロードすることはできません。
またGCCだけで容量がいっぱいいっぱいになるため、他のコンパイラをインストールすることができないというデメリットもあります。
そのため今回はGCCをインストールしたEFSを用意して、Lambdaにマウントすること

元記事を表示

AWS Organizationsの概念がよく分からなかった理由

AWSを触り始めて、3ヶ月程の初心者ですが、つい最近までAWS Organizationsの概念があまり理解できていませんでした。しかし、今回実際にAWS Organizationsを個人利用ではありますが実際に使ってみて概念と使い方がわかりました。そこで、なぜいまままで理解が深まらなかったか、理解できるようにするにはどうすればよいのかを説明していきます。

##理解ができなかった一番の要因
理解ができなかった理由としては
【AWSアカウントを1つしか持たなかったことで複数アカウントを使用する理由が分からなかった】
ということがあります。僕はまだ、学生の独学での利用なので、アカウント1つで十分に勉強ができていました。なので、業務で部署ごとなどにアカウントを複数所持しているのであれば、このAWS Organizationsのメリットや使い方はすんなり理解できると思います。

##AWS Organizationsはこんな事ができる!
・AWS Organizationsによって、いちいちクレジットカード情報や住所を入力しなくても新規アカウントが作成できる。
・アカウントを用途別にあわせた

元記事を表示

AWSアカウントを作成したら最低限にやること(アカウント保護)

AWS Organizationsを個人利用の中で使う際に、久しぶりにAWSアカウントを複数作成したので、その際にアカウント保護の最低限の項目をまとめてみました。

##最低限やること(rootユーザーのアカウント保護)
AWSアカウントを作成したら
①【マイアカウント】から、AWSアカウント(rootユーザー)のパスワードを変更する。
>パスワードは長めがオススメ(個人的には40桁の英数字特殊記号ランダム)

②IAMへ移動し、【ダッシュボードを確認】し5つの✅項目を満たす。
>②-1) MFAの有効化を設定
>②-2) IAMパスワードポリシーの適用
>②-3) IAMユーザーの作成 
>②-4) グループを指定したアクセス許可の割り当て

##IAMユーザーの作成に際して(IAMユーザーのアカウント保護)
上記の②-3でIAMユーザーを作成した際にも注意が必要です。IAMユーザーの作成においては、個人利用に際しても不用意に強い権限を与えないことと、ユーザー自体の保護が重要です。
やることとしては
 【アカウント保護】
・IAMユーザーのパスワードを強化(IAMパスワードポリシーに

元記事を表示

[AWS] Step Functionsで遊んでみる(SAM + Lambda) Part.3(分岐編)

# Part.2のおさらい
[Part2](https://qiita.com/herohit-tool/items/fbd0b91dacce218819ae)では、主に以下のことを行いました。

– Lambdaに固定引数を渡してみる
– Lambdaに外部からの引数を渡してみる
– Lambdaにコンテキストオブジェクトを渡してみる
– Lambdaの戻り値を、別のTaskの引数に渡してみる

今回は、その続きからはじめてみます。
ここから始める方は、
https://github.com/hito-psv/sam-demo-005
のコードを`git clone`してもらっても大丈夫ですし、[Part2](https://qiita.com/herohit-tool/items/fbd0b91dacce218819ae)からやってみてもらっても構いません。

# 今回のターゲット

– Lambdaでランダムな結果を返す
– 結果に応じて、次に実行するタスクを変える
– リトライ時は、しばらく時間が経ってから再実行する

をターゲットにしてみたいと思います。
Lambda部分につ

元記事を表示

S3の静的ウェブサイトホスティングをRoute53のプライベートホストゾーンからエイリアスする

# はじめに
S3の静的ウェブサイトホスティングは便利。
でもエンドポイントが“`http://バケット名.s3-website-ap-northeast-1.amazonaws.com“`になってしまったり“`https://s3-ap-northeast-1.amazonaws.com/バケット名.com“`になってしまってイケてない。内部通信くらいはちゃんとしたサービス名をつけてあげたいけど内部通信にドメイン使用量は払いたくない。

そんなワガママなあなたに、良い感じの名前でアクセスするコツを書いておく。

さらに、今回の記事では、作った静的ウェブサイトホスティングに対してクロスアカウントでセキュアにアクセスする方法まで書いておく。

# Route53のプライベートホストゾーンを使おう
良い感じの名前を付けるのであれば、Route53のプライベートホストゾーンを使えば良い。

プライベートホストゾーンを設定する方法は[以前の記事](https://qiita.com/neruneruo/items/70b6bbc07ad859a0d3ca)に書いている。

一つ注意しな

元記事を表示

AWS CDKのデプロイで複数のAWSアカウントを使い分ける方法

## やりたいこと
– AWS CDKでデプロイする際に、何も設定しない場合、AWS CLIで指定されているアカウントでデプロイを行います
– ただし、お仕事とプライベートでAWS CLIのアカウントを分けたかったり、開発環境と本番環境で異なるアカウントを使用したいということがあるかと思います
– AWS CDKでデプロイする際に、使用するAWSアカウントを明示的に指定できるようにしてみましょう

## –profileオプション
– –profileオプションを使えば、AWS CDKを実行するアカウントを指定できます
– こちらの使い方を説明していきます

### configを設定する
– ローカルのawsフォルダ以下にコンフィグファイルを新規作成します
– VS Codeを使用する場合は以下コマンドで作成できます

“`
code ~/.aws/config
“`

– 作成されたconfigファイルに以下を記述します
– 「profile XXXX」の「XXXX」に適当な分かりやすい名前をつけましょう

“`
[profile personal]
aws_access

元記事を表示

dockerでelasticsearchクラスターの検証

# dockerでelasticsearchクラスターの検証

## 前提

– 今回は検証なので色々おかしいとろがあると思います。

### 検証環境
– cloud
– AWS EC2
– machine type
– Rhel8
– instance type
– t2.xlarge

## 目的
– 今回は検証なので

docker hostで

`curl 0.0.0.0:9200/_cat/health?v`

↑叩いた時以下のような出力が得られるようにする

“`
cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
elasctic green 2 1 0 0 0 0 0 0 –

元記事を表示

たくさんのAWS Glue Jobを実行している環境で実行履歴を一覧表示するPythonスクリプト

Glue Jobの実行履歴をコマンドラインのワンライナーで見る方法を以前にブログに書きました。

– [たくさんのAWS Glue Jobを実行している環境で実行履歴をまとめて見るワンライナー](https://suzuki-navi.hatenablog.com/entry/2020/06/14/121717)

が、日時の表示がイケてなくて、使いづらかったので、Pythonのスクリプトで書き直しました。

“`python
import boto3

# default以外のprofileを使う場合はここで指定
profile = “default”

session = boto3.session.Session(profile_name = profile)

client = session.client(“glue”)

jobs = client.get_jobs()

header = [
“started”,
“completed”,
“executionTime”,
“status”,
“name”,
“alloca

元記事を表示

クラウドストレージに保管されたバックアップデータをAWS移行に利用しませんか?【CloudCatalyst編】

# はじめに
以前、「NetBackup CloudCatalyst for AWS入門」で、CloudCatalystについて解説を行いました。
CloudCatalystの詳細については、[こちらのまとめ記事](https://qiita.com/vxse_japan/items/ae157c2444fdc100777c)をご参照下さい。

CloudCatalystでは、重複排除されたバックアップデータをAmazon S3などのクラウドストレージに保管することが可能です。
![Qiita0-1_CC構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452113/35edf012-0639-aad1-e40e-33f5948dc57a.png)
通常、クラウドストレージに保管されたバックアップデータは、オンプレミスに存在するNetBackupサーバーでバックアップ/リストアなどの操作を行うことになります。

オンプレミスではなく、クラウド上にNetBackupサーバーを構築することで、このクラウ

元記事を表示

aws sts get-caller-identityしたときにunknown output typeが表示されたはなし

## はじめに
`aws sts get-caller-identity`をしたら`unknown output type`が表示されて、ちょっとはまったので忘れないようにメモ。

## おきたこと
そもそも`aws sts get-caller-identity`をしようとしたら、間違えて`aws configure`をしてしまいました。(なぜかよくやっちゃう。)なので、いつも通りそのままEnter押していきます。

“`
C:\>aws configure
AWS Access Key ID [******************ID]:
AWS Secret Access Key [*****************KEY]:
Default region name [ap-northeast-1]:
Default output format [JSON]:
“`

そして、ようやくやりたかったコマンドを打ってみたらUnknown output typeと言われてしまいました。

“`
C:\>aws sts get-caller-identity

Unknown ou

元記事を表示

AWS Chatbot + Lambda(Go)でSlackからRDSを操作する

## はじめに
RDSを常時起動させておく必要がないシステムがあります。そのシステムを使う時だけRDSを起動させたいのですが、使用する人はIAMユーザを持っていないため、コンソールから起動、停止できない、ということがありました!

そこで、SlackからRDSの操作をできるようにしました!

Chatbotを紐づけたSlackのチャンネルからコマンドを実行し、Lambda関数を呼び出すことで、RDSの操作をします。
## やりたいこと
Slackからやりたいことは以下の3つです。

+ RDSの起動
+ RDSの停止
+ RDSのステータスの確認

## 方法検討
調べてみると、Slackから実行する方法が2つ見つかりました。

+ API Gatewayを使う方法(Slash Commandsの作成)
+ AWS Chatbotを使う方法

今回は、2020年4月にGAになった、使ってみたかった、Slackとの組み合わせが素晴らしいらしいという観点から**AWS Chatbot**を使ってみることにしました!

## AWS Chatbotってなに?
[公式サイト](https://

元記事を表示

AWS CLIで出力される文字列のダブルクォートを外す方法

`–output text` をつければ外れます。

“`つけない場合.sh
$ aws lambda get-function \
–function-name $NAME \
–query “Configuration.FunctionArn”
> “arn:aws:lambda:ap-northeast-1:1234567890:hoge”
“`
“`つけた場合.sh
$ aws lambda get-function \
–function-name $NAME \
–query “Configuration.FunctionArn” \
–output text
> arn:aws:lambda:ap-northeast-1:1234567890:hoge
“`
参照: [Convert to plain text](https://claudiajs.com/tutorials/aws-cli-tricks.html#convert-to-plain-text)

デフォルトのJSON形式は常にダブルクォートに囲まれているため、前のコ

元記事を表示

【AWS】RDS ProxyをCloudFormationで構築する

RDS Proxyが2020/6/30にGAされましたね。
最近RDS Proxyに触れる機会があり、サクッと消せるようにCloudFormation(以下CFnと略)を使って構築しました。その時書いたCFnテンプレートを一例としてご紹介します。

RDS Proxyの詳細や運用の勘所については説明しませんので、公式ドキュメントなどを参照してください。

# 要件

– プロキシ先はAurora
– ユーザとパスワードの一般的な認証
– Secrets Managerを利用
– TLSは必須ではない

# CFnテンプレート

テンプレートが100行超えたのでGitHub Gistにアップロードしました。
テンプレートの全容を見たい方は[homoluctus/rds_proxy.yml](https://gist.github.com/homoluctus/92939c6c9442ebba51f2fa8094124439)を参照してください。

# 解説

## Parameters

“`yaml
Parameters:
# DB Proxy
ProxyName:

元記事を表示

S3のアクセスを特定のサービスロールに制限する

# 概要
AWSのS3に設定するバケットポリシーのお話です。
2パターン用意したので好きな方使うとよいです。

# 特定のサービスロールのみを許可する方法

“`json
{
“Version”: “2012-10-17”,
“Id”: “{POLICY_ID}”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“AWS”: [
“arn:aws:iam::{ACCOUNT_ID}:role/{ROLE_NAME}”
]
},
“Action”: “s3:GetObject”,
“Resource”: “arn:aws:s3:::{REPOSITORY_NAME}/*”
}
]
}
“`

# 特定のAWSアカウントからのサービスロールを全て

元記事を表示

PHPでSQSのメッセージの取得と削除をする

SQSのメッセージを取得する部分と、メッセージを削除する部分をAWSのSDK経由で行います。

PHPでLaravelを使っている場合、一般的なJobをQueueする処理などは、LaravelのQueueの機能を使えば実装出来ますが、
メールのBounceなど、Laravelの機能とは別のサービス経由で発生したメッセージを処理する場合は、Laravelの機能を使わずにSQSからのメッセージ取得、削除を書くこともあると思います。

以下にSQSからのメッセージ一覧の取得とメッセージの削除を載せます。

“`php:SqsClient.php

元記事を表示

[AWS] Step Functionsで遊んでみる(SAM + Lambda) Part.2(パラメータ編)

# Part.1のおさらい
[Part1](https://qiita.com/herohit-tool/items/a43044383832ed04ffba)では、主に以下のことを行いました。

– Lambda関数を作成する(SAM)
– Lambda関数をデプロイする(SAM)
– ステートマシンを構成する
– Lambda関数を呼び出す(だけ)
– ステートマシンをデプロイする(SAM)
– ステートマシンを実行する(マネジメントコンソール)

今回は、その続きからはじめてみます。
ここから始める方は、
https://github.com/hito-psv/sam-demo-004
のコードを`git clone`してもらっても大丈夫ですし、[Part1](https://qiita.com/herohit-tool/items/a43044383832ed04ffba)からやってみてもらっても構いません。

# 今回のターゲット
– Lambdaに固定引数を渡してみる
– Lambdaに外部からの引数を渡してみる
– Lambdaにコンテキストオブジェクトを渡してみる

元記事を表示

【CloudWatch】請求アラートの設定

## なぜ設定するのか?
使用状況の監視・使用料金の上限設定等に基づいたアラート設定を行うことで予期せぬ課金を防止するため

## 1. IAMユーザーに請求情報へのアクセス権限を付与する
スクリーンショット 2020-08-02 23.48.39.png
スクリーンショット 2020-08-02 23.49.32.png

## 2. Billingの設定を行う
スクリーンショット 2020-0</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>AWS</div>
<div class='tag-cloud-link'>CloudWatch</div>
<div class='tag-cloud-link'>AWS認定試験</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/777cb_/items/6c68090f0c31b84410e7'>元記事を表示</a></div>
</div>
      </section>
	        
      
      
      
	        <!-- 記事下シェアボタン -->
        <aside>
<ul class=

  • OTHERカテゴリの最新記事