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

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

AWSアカウントのルートユーザを通常運用で使ってはいけません

# はじめに
本記事は[AWS Well-Architected Labs – Security – 100 – AWS ACCOUNT AND ROOT USER
](https://wellarchitectedlabs.com/security/100_labs/100_aws_account_and_root_user/)のハンズオン内容を元にポイントをまとめたものになります。AWS Well-Architected Labsについて知りたい方は[こちら](https://qiita.com/chanhama/items/b40fd218865d9bce7723)をご覧ください。

# AWSアカウントのルートユーザとは
AWSアカウント作成時に自動的に生成されるユーザです。メールアドレスとパスワードでサインインすることができます。AWSアカウントに関する全ての操作を実行できる唯一のユーザです。そのため、ルートユーザの認証情報は厳重に管理し、通常運用では利用しないようにしましょう。代わりに通常運用で利用するためのIAMユーザ、グループ、ロールをルートユーザで初めに作成しましょう

元記事を表示

【AWSSAA(SAA-C02)】受験のために必要な最低限の知識とは?

# はじめに
AWS未経験の僕が、以前(7/23)にAWSSAA(SAA-C02)の試験を受験して合格しました。
今回は、AWSSAAの受験のために必要な最低限の知識についてまとめていきたいと思います。

※合格体験記については、私のブログに記事がありますのでご覧頂ければと思います。
[AWS未経験の僕がSAA-C02をどのように勉強したのか?](https://satton-infra.com/saa-c02-study/)

# 僕の合格点について

![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/8299dc58-d102-829e-7b6b-891c85a3a7df.jpeg)

添付の結果の通り、かなりギリギリで合格しています。
**(点数:725/合格点:720)**

# AWSSAA(SAA-C02)受験の前に必要な最低限の知識とは?

こちらの知識になります。

– **基本的なネットワーク知識**
– **TCP/IPの知識**
– **ストレージプロトコルの知

元記事を表示

デプロイ方法(AWS/EC2)

※デプロイの方法の手順① 今後の自分のメモ用に

#EC2インスタンスを作成

AWSアカウントにログイン。トップページに遷移したら、左上の「サービス」から「EC2」を選択。
1.png

操作画面を旧バージョンに切り替えるため、左上のスイッチのアイコンをクリック。「New EC2 Experience」
2.png

アンケート用のダイアログが開くのでキャンセルを選択。
3.png

元記事を表示

[AWS] CDKで、API Gateway + Lambda + DynamoDBなサンプルを作成してみる

# はじめに

以前投稿した「[[AWS] Serverless Application Model (SAM) でAPI Gateway + Lambda + DynamoDBなサンプルを作成してみる](https://qiita.com/herohit-tool/items/5b0fe520f6f28fb5b4bc)」のCDK版だと思ってください。

# CDKとは?
AWS Cloud Development Kitで。クラウドアプリケーションリソースをモデル化、およびプロビジョニングするためのフレームワークです。
SAMは、Serverless Applicationに重きを置いたフレームワークだったのに対し、CDKはIaC(Infrastructure As Code)の要素が強い開発フレームワークということになります。
さらに特徴的なのは、それをYAMLやJsonではなく、複数の言語で記述できる、ということです。

## 対応言語
以下の言語に対応しています。

– JavaScript
– TypeScript
– Python
– Java
– C#

## 前提条件

元記事を表示

【AWS SAA】ゲートウェイ に関する備忘録

#はじめに
AWS SAAの問題でゲートウェイの理解を問うような問題が頻出だが、様々なゲートウェイがあり構成がわかりにくいため、この記事を通してゲートウェイに対する理解を深めたい。

#そもそもゲートウェイとは?
英語で「出入り口」を意味する。コンピュータネットワークにおいて、通信プロトコルが異なるネットワーク同士がデータをやり取りする際、中継する役割を担うルータのような機能を備えた機器やそれに関するソフトウェアのこと。AWSでは物理的なルーターではなく、ソフトウェア的にルーティングを行なっている。ルーティングはルートテーブルに従って行われる。

#試験に出題されるゲートウェイ
ゲートウェイにはインターネットゲートウェイ・仮想プライベートゲートウェイ・カスタマーゲートウェイ・NATゲートウェイが主にある。その中でも試験に出題されるものとして「インターネットゲートウェイ」と「NATゲートウェイ」が挙げられる。

・インターネットゲートウェイ

インターネットと接続するためのゲートウェイ。例えばVPC内にあるEC2インスタンスがプライベートIPアドレスしか設定できない

元記事を表示

aws s3 cp コマンドでファイル結合する

s3に置いてあるファイルについて、複数ファイルをまとめたい時があります。
ファイルをダウンロードせずにファイル結合をできないものかとやってみました。

結論から言うと cp の標準入力と標準出力を駆使してみました。

“`
aws s3 cp – s3://… : 標準入力から書き込める
aws s3 cp s3://… – : 標準出力から表示できる
“`

こちらのclassmethod様の記事を大いに参考にさせていただいております。
https://dev.classmethod.jp/articles/aws-cli-s3-streaming/

以降にサンプルコードを書いたので参考にしてみてください。

# サンプルファイル
分割されたファイルとしてこのようなファイルがあるとします。

“`
aaa.text
aaa
aaa
aaa

bbb.txt
bbb
bbb
bbb

ccc.txt
ccc
ccc
ccc
“`

上記のファイルが下記にあるとします。

“`
aws s3 ls s3://hoge.bucket/concatenate_test/

元記事を表示

aws-amplify? 突然 TypeError: Cannot read property ‘configure’ of undefined が出て何も表示されなくなった

# 前提条件
React + Next.js + TypeScript 環境で `next start` 時

# 事象
以下のコンソールエラーが出て表示は真っ白になる。ちなみに開発環境(`next` コマンド実行時)では問題なし。

“`js
TypeError: Cannot read property ‘configure’ of undefined
“`

`configure` というメソッドはうちのプロダクトだと `Amplify.configure` しか心当たりがなかったため、そのあたりを調査。

# 対応

“`console
yarn add @aws-amplify/core # or npm install @aws-amplify/core
“`

“`diff:pages/_app.tsx
– import Amplify from ‘aws-amplify’;
+ import Amplify from ‘@aws-amplify/core’;
“`
これで治った。
公式ドキュメントでもどちらでも良いと記載してある。
https://githu

元記事を表示

AzureAD→AWS SSOへのSSO、プロビジョニング、プロビジョニング解除

# これは
AzureADからAWS SSOへのSSO、プロビジョニング、プロビジョニング解除についての技術的な記事です。
プロジェクト全体の話はこちら

# 目次
1. やりたいこと
2. SSO設定
3. プロビジョニング設定
4. SSOテスト
5. プロビジョニングテスト
6. 参考
7. 運用を考えてみる

# 1. やりたいこと
– AzureADからAWS SSOへSSO、プロビジョニング、プロビジョニング解除を行う
– AWSの権限設定はAWS SSOから行うことを想定

# 2. SSO設定
## AzureADサイド
1. Azure ADで`エンタープライズアプリケーション登録`を作成する
ギャラリー以外のアプリケーションを選択する

2. `シングルサインオン` > `SAML`を選択する
3. `フェデレーション メタデータ XML`をダウンロードしておく
スクリーンショット 2020-07-14 14.35.26.png【今日から始めるAWS】Amplifyを使ってReactアプリをデプロイする

#はじめに
30代未経験からエンジニア転職をめざすコーディング初学者のYNと申します。お読みいただきありがとうございます。
今回ご紹介する`Amplify`では、AWSのサービスを組み合わせて、驚くほど簡単に、サーバレスなwebアプリをデプロイし、かつCI/CDパイプラインまで作ることができます。
本記事では、[チュートリアル](https://aws.amazon.com/getting-started/hands-on/build-react-app-amplify-graphql/)に従って進めることで、`Amplify`の基本的な仕組みの理解を備忘録としてまとめさせていただきました。
**また、[チュートリアル](https://aws.amazon.com/getting-started/hands-on/build-react-app-amplify-graphql/)の通りに進めると、(2020年8月現在)ビルドエラーによりデプロイが失敗しますので、対処法も併せてまとめておきたいと思います。**

#今回やったこと
[チュートリアル](https://aws.amazo

元記事を表示

ターミナルでインスタンスへログインできなかった

AWSにアプリケーションをデプロイしようと思い
インスタンスへ下記のようにログインしたらエラーになる

“`
.ssh % ssh -i sample01.pem ec2-user@54.196.78.41
“`

と入力すると

“`
.ssh/config: line 5: Bad configuration option: idenityfile
.ssh/config: terminating, 1 bad configuration options
“`
このようなエラーが・・・
sshの5行目の設定がおかしいと言われているので設定ファイルを開く

“`
.ssh % vi /.ssh/config
“`

下記のような設定ファイルが開く

“`
Host sample01_key_rsa
HostName パブリックIP
Port 22
User ユーザ名
IdenityFile ~/.ssh/sample01_key_rsa
“`

自分の場合は5行目に正しくは
IdentityFile と記載するところを
IdenityFile とス

元記事を表示

AWSサービスを利用した際、Kubenetesで起こりうるアクセス管理の問題への対処方法

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/7fe9887c-3ada-d8dd-a442-f189a5c755ec.png)

#はじめに
Kubernetesは、マシンを最大限に活用できるオープンソースのコンテナオーケストレーションシステムです。 ただし、Kubernetesを使用すると、ポッドのさまざまなAWSへのアクセスを管理する際に問題が発生します。 この記事では、特定のツールを使用した際のこれらの問題を解決する方法について説明します。 情報を整理する方法は次のとおりです。

– アクセス管理が問題になる理由
– Kube2iamによるアクセスの管理
– KIAMによるアクセスの管理
– サービスアカウントのIAMロール(IRSA)

#AWSサービスへのアクセスの管理が問題になるのはなぜなのか?
想像してみてください。Kubernetesノードは、AWS DynamoDBテーブルへのアクセスを必要とするアプリケーションポッドをホストしています。一方、同じノー

元記事を表示

API Gateway + Lambdaのマルチリージョン構成をServerless Frameworkで作る

# 概要
Amazon API Gateway + AWS Lambda で作るサーバーレスなアプリケーションを、マルチリージョン構成にする。
普段から使っているServerless Frameworkで構築してみた。

# 参考
以下のAWSブログの記事が参考になる。記事自体は古いが構成は変わらない。

[Building a Multi-region Serverless Application with Amazon API Gateway and AWS Lambda](
https://aws.amazon.com/jp/blogs/compute/building-a-multi-region-serverless-application-with-amazon-api-gateway-and-aws-lambda/)

# 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241369/d688f2de-348f-0872-2c08-4275efa9e15f.png)

元記事を表示

AWS EC2 インスタンスの情報をssh configに記載して簡単にssh接続する

# 目的

– ssh configファイルにAWS EC2のインスタンス情報を記載して短いコマンドでssh接続する方法をまとめる

# 実施環境

– ハードウェア環境(ssh接続元)

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– EC2インスタンス環境(ssh接続先)

| 項目 | 情報 | 備考 |
| — | — | — |
| インスタンス種類 | AmazonLinux2 | こちらの方法で構築→[AWS EC2 をMacで使ってみよう!](https://qiita.com/miriwo/items/a1ab84c09

元記事を表示

JMESPathでAWS CLIコマンドの出力結果を抽出する

#はじめに
AWS CLIのコマンドで情報を出力させる際に、JMESPathを使って必要な部分だけ抽出するのに苦労しました。
この記事だけでは実用のイメージが湧きづらいかもしれませんが、JMESPathを使って抽出するやり方の参考になれば幸いです。

結局は以下のサイトを参考にすればおおよそ問題ないかと思いますが、自分がやってみたことをここに記載したいと思います。
参考:https://jmespath.org/tutorial.html#list-and-slice-projections

##やりたいこと
AWS CLIのコマンド「describe-listeners」で、リスナーが2つある場合において、
出力結果に1つのみTargetGroupArnを表示させたい。
(リスナーが2つあると、リスナーごとのTargetGroupArnがそれぞれ表示されるので、1つのみ抽出する)

##やってみた
まずはdescribe-listenersの引数 “–query Listeners[]”を使って、全てのリスナーをjson形式で表示してみます。
json形式でListeners[]

元記事を表示

WindowsのイベントログをS3に保存

元々AWS CLIやAWS SDKを使ってプログラムを書いていたので、
Windowsのイベントログを月に1回 S3に保管して管理できないかふと思ってやってみた結果を記載

## 前提
Ⅰ AWS上にWindowsサーバを作成して、IAMのロールにてS3とSNSの適切な権限のロールを作成してWindwsサーバにIAMロールを割り当てています。
Ⅱ S3にバケットを作成しWindowsサーバからのみバケット操作できるようにバケットポリシーを作成しております。
Ⅲ 作成したWinodwsサーバには、AWS CLI v2をインストールしています。インストール手順については[こちら](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-windows.html#cliv2-windows-install)を参考にして下さい。
Ⅳ S3にイベントログを保存できなかった時にエラー処理として、SNSで通知する仕様にしております。

## 作ったPowerShellのスクリプト

特に何か記載することはなく、各プログ

元記事を表示

クラウドの実務未経験でもAWS SAAに1.5ヶ月で合格した話

AWSのSAAの合格体験記です。
これから取ろうとしている人の参考になればいいなと思い、記事投稿します。

# 取ろうと思ったきっかけ
## 新しい技術に触れてみたかったから
オンプレでやってたことがポチポチやるだけで実装できちゃうなんて、近未来的で楽しくないですか?

## 自身のスキルアップのため
クラウドに触れたこともないエンジニアであることに危機感を感じました。
「じゃあクラウド使う現場に行けばいいじゃん」って思われるかもしれませんが、そういったところへ行くには大概**クラウド技術の実務経験が必要です。**
クラウドを使う業務に携わるためには、クラウド技術の業務経験が必須級なのです。鶏が先か、卵が先か。みたいな話ですね。。。
このジレンマを破るために武器として、資格を取得しておくという選択肢は、アリなんじゃないかと思います。
世の中には資格否定派の方もいらっしゃると思いますが、持っていないよりマシじゃないでしょうか?
また、インフラ界隈は資格肯定派が多いようにも感じます。
## ~~流行ってるから~~
上記は半分冗談ですが半分本気です。
使われていない技術をいくら一生懸命勉強し

元記事を表示

API GatewayのマッピングテンプレートでBodyのJSONを書き換える

API GatewayにPOST/PUTされてきたJSONのBody(`$input`)を、マッピングテンプレートで中身を少しだけ書き換えてバックエンドへProxyしたい時:

“`
#set($body = $input.path(‘$’))
#set($body.url = “https://example.tld/thingy/$body.id”)
$input.json(‘$’)
“`

これだけで`url`属性が`#set`で指定したURLに置き換わった状態のJSON文字列が生成される。

`#set`での属性置き換え後、最後にJSON文字列化する部分が`$body.json(‘$’)`では **ない** 点に注意。`.json(‘$’)`は`$input`にしか定義されていない。

すべて参照渡しでまぁJavaScriptみたいなもんだよと言われれば、この使い方も、そんな気もしなくもないが、それにしても、

**わかりにくすぎない!?**

たったこれだけのことをするのに1日潰れてしまった……。

ref:

* https://stackoverflow.com/qu

元記事を表示

AWS Systems Managerのパッチマネージャーを使ってパッチ適用を自動化する

# はじめに
本記事は[AWS Well-Architected Labs – Operational Excellence – 100 – INVENTORY AND PATCH MANAGEMENT](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/)のポイントやハンズオン手順をまとめたものになります。AWS Well-Architected Labsについて知りたい方は[こちら](https://qiita.com/chanhama/items/b40fd218865d9bce7723)をご覧ください。

# パッチ適用
パッチ適用運用はやらないといけないけど、手動で行う場合は面倒臭い作業です。数台のサーバーならまだしも数が多いとさらに大変です。パッチ適用は**トイル**の代表格と言っても過言ではないでしょう。そんなパッチ適用を**パッチマネージャー**を使えば**自動化**することができます。

# パッチ適用自動化を行う上でのAWSサー

元記事を表示

一時クレデンシャルを発行するローカルIMDSを作った

# はじめに

AWSを使う上でクレデンシャルをEC2インスタンス上(~/.aws/credentials)に保存したり
プログラムの設定ファイルに指定することは、セキュリティ上の観点から推奨されません。
(というかアクセスキーを発行すること自体がセキュリティリスクになります)
通常は、IAMロールをEC2に紐づけてIMDS(インスタンスメタデータサービス)から一時的な
クレデンシャルを取得してAWSリソースにアクセスにすると思います。

この一時クレデンシャルを提供するのが、IMDS(後述)と呼ばれるサービスですが、
ローカルで動くIMDSもどきを作ってみたので、その紹介です。

# インスタンスメタデータサービス(IMDS)とは

[このページ](https://aws.amazon.com/jp/blogs/news/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/)を抜粋

“`
インスタンスメタデータサービス(IMDS)は、一

元記事を表示

SageMakerを使って機械学習に入門してみる

# はじめに

AWS公式の[Amazon SageMaker の開始方法](https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/gs.html)の手順に沿って、機械学習モデルを構築してデプロイするまでの流れを実践してみる事にしました。

本記事は自身のハンズオン学習メモとして投稿します。

# 目次
– [機械学習とは](#機械学習とは)
– [SageMakerの概要](#SageMakerの概要)
– [チュートリアル](#チュートリアル)
– [おわりに](#おわりに)

# 機械学習とは

ここでは割愛。概要を把握するには以下を参照。

[一から始める機械学習(機械学習概要)](https://qiita.com/taki_tflare/items/42a40119d3d8e622edd2)

# SageMakerの概要

詳しくはAWS公式の[Amazon SageMaker のドキュメント](https://docs.aws.amazon.com/sagemaker/index.html)を参照。

>Amaz

元記事を表示

OTHERカテゴリの最新記事