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

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

AmazonLinux2 の EC2 からサクッと MSK の kafka topic を作ったりする方法

kafkacat とか kafka-topic.sh などの kafka-tools をインストールするのめんどいので、Docker でやるアプローチ

## MSK で kafka cluster の describe を得る

“`
aws kafka describe-cluster –cluster-arn {{arn:aws:kafka:X:X:cluster/analytical-msk/X}}
“`

## kafka-topic.sh で topic を create する

“`
sudo docker run wurstmeister/kafka:2.12-2.4.1 /opt/kafka/bin/kafka-topics.sh –create –zookeeper “{{z1,z2,z3}}” –topic test –partitions 1 –replication-factor 1
“`

## MSK で bootstrap-brokers を get する

“`
aws kafka get-bootstrap-brokers —

元記事を表示

『2000年創業エムスリーが挑む 大規模クラウド移行の舞台裏』 視聴メモ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501763/15da1be3-843f-37ce-5550-9759ddc6d45b.png)

はえーすっごい。

下記 connpass の視聴メモをざっくりまとめたものです。
https://m3-engineer.connpass.com/event/187265/

タイトルの通り オンプレ=>クラウド以降に関するお話でした。
移行自体の知見というより、クラウドリソースの運用ルールなど、仕組みを整えるうえで
大変だったことや工夫した点について聴ければいいなというモチベーションでした。
特に権限管理周り。

※ 個人的にまとめたものなので、内容に不備がある場合はコメントして頂けると幸いですm

## 0. エムスリーについて
– 「インターネットというメディアを活用し、医療の世界を変革します。」
– 2000 年創業
– 1996 Yahoo Japan
– 1997 楽天
– 1998 サイバー

元記事を表示

AWS データ分析環境の構築

## AWS データ分析環境の構築

### EC2環境構築
CloudFormationを使用し、VPCを作成。作成されたVPCにログを出力するEC2を構築していきます。
CloudFormationの画面に移動し、スタックの作成を行います。
今回使用するyamlファイルは参考資料のGitのほうにあるのでそれを利用します。
実行が終わるとEC2が出来上がり、/root/esdemo/testapp.logにログ出力が始まります。
実行がうまくいけば下のようにEC2のコンソール画面にインスタンスが一つ立っているのでSSH接続します。![2020-10-05 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676443/b7ace881-0864-03fc-66bc-1608bc8af702.png)

SSH接続を行い以下のようにコマンドを打つとログが出力されます。

“`
$ sudo su –
# tail -f /root/es-demo/testapp.log
“`
 ![2020-1

元記事を表示

EC2のインスタンスの違い(オンデマンド・リザーブド・スポット)

## オンデマンドインスタンス

– 概要
– 時間課金制の料金体系
– 初期費用なし
– 普通にインスタンスを立てると、こちらの費用が発生する

– 購入方法
– EC2 > インスタンス > インスタンスの作成 から作成可能 (普通のサーバ作成方法)

![2020-09-30インスタンス _ EC2 Management Console – Google Chrome 20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/c39aade0-5e73-71d0-dc43-247c4c4ea369.png)

## リザーブドインスタンス

– 概要
– 予約金の支払いをすることで、時間単価の割引が行われる
– 前払い有りにすると初期費用が発生する
– 1年や3年単位での購入になる

– 購入方法
– EC2 > リザーブドインスタンス > リザーブドインスタンスの購入 から購入できる

![リザーブドインスタンス _ EC2 Management Console – G

元記事を表示

AWS CodePipeline メモ 複数ブランチの追跡

更新日:2019/10/06

# 目的

## 現状

CodePipelineの設定画面で、Githubを選択した場合、ブランチ選択が必須になっている

## ゴール

Master以外のいずれのブランチにPushされてもCodePipelineが発火し、デプロイされてほしい

## なぜやりたいか?

* 他のCIツールでは複数ブランチからの発火ができている。
* 同じことやりたい

## AWS CodePipelineの仕様

複数ブランチの選択

### スタックオーバーフロー

AWS CodePipelineで複数ブランチのTrackingしたい

以下のスタックオーバーフローで質問あり
[Can AWS CodePipeline track multiple feature branches an

元記事を表示

AWSSAAに落ちた時の悔しさを書く

## はじめに
##### 自分のスキル感
+ 実務4ヶ月程度(メインはバックエンド)
+ AWSたまに触るぐらい(超主要なサービスは理解していた)

よーするに**AWSあんまり知らない駆け出しエンジニア**ということになります。

#####資格を取りたいと思った理由は以下の2つ
+ 昨今AWSがインフラに使われるのは主流になってきていて自分も体系的な知識をつけたいと思っていたから。
+ 資格を持っていると**AWSに関してこれぐらいの知識ありますよ〜**という明確な基準ができるから。

一口に「AWS触ったことがある」と言ってもどのサービスなのか、どれぐらいの知識があるのかなど、線引きがしづらいと思っていた。
そこで資格の勉強をしてみようと思いました。

## 勉強したこと
勉強期間は**1ヶ月ちょっと**です。
基本的に勉強したのは下記の2つのみです

[この1冊で合格!AWS認定ソリューションアーキテクトアソシエイト テキスト&問題集](https://www.amazon.co.jp/%E3%81%93%E3%81%AE1%E5%86%8A%E3%81%A7

元記事を表示

データ管理・活用でAWS/Azule/その他で使えそうなサービス探し

AWS/Azure問わず、データ管理・活用形のサービスを調べることになったので、自分用メモ

AWSから
https://aws.amazon.com/jp/big-data/datalakes-and-analytics/
上記のページを参考に構成してみる

#データ管理・活用サービス構成例
|カテゴリ |ユースケース |AWS のサービス |
|—|—|—|
|分析 |インタラクティブ分析 |Amazon Athena |
| |ビッグデータ処理 |Amazon EMR |
| |データウェアハウジング |Amazon Redshift |
| |リアルタイム分析 |Amazon Kinesis |
| |運用上の分析 |Amazon Elasticsearch Service |
| |ダッシュボードと可視化 |Amazon QuickSight |
|予測分析と機械学習|フレームワークとインターフェイス|AWS 深層学習 AMI|
||プラットフォームサービス|Amazon SageMaker|
|データの移動|リアルタイム

元記事を表示

EC2のリブートについて

## 勉強前のイメージ

rebootって、webの画面から「インスタンスの停止」ってやるだけじゃないの?

## 調査

### インスタンスリブート

#### 特徴

– グローバルIPアドレスが変わらない
– 物理的に実行されるハードウェアが変わらないから

#### 実施方法

– webコンソールでの方法
1. インスタンスにチェック
2. 右クリック or アクション
3. インスタンスの状態 → 再起動

– AWS CLIでの方法
1. `$ aws ec2 reboot-instances –instance-ids [ インスタンスID ]`

– EC2のサーバでの方法
1. `# reboot`

### システムリブート

#### 特徴

– グローバルIPアドレスが変わる
– 物理的に実行されるハードウェアが変わるから
– ElasticIPを使用することで防ぐことが出来る
– インスタンスストアのデータが消える

#### 実施方法

– webコンソールでの方法
1. インスタンスにチェック
2. 右クリック or アクション

元記事を表示

AWSで10万円溶かした話

![fx_melt_allmoney.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208060/3548a0bd-6ef8-182a-a9bf-641f140ee0a9.png)

#はじめに
AWSで10万円溶かしたバカがいるらしい(私です)
しかも、Webサービスなど全く構築していない状況で発生した課金だと言うから救いようがない。
ドコモ口座事件も記憶に新しい現在、私は最初に新手の詐欺を疑った。しかし、普通に利用明細を見ると紛れもなく自分の過失であることが判明した。

こんなバカげた話が何故起こったのかということを今日は詳述していきたい

#前段
AWSについて理解を深めようと思いudemyで以下のコースを受講した
[これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)](https://www.udemy.com/course/aws-associate/)

8月から9月にかけてこのコースを一通り履修したのが悪夢の始まりであった 

元記事を表示

[AWS入門]AWSでWebサーバ構築備忘録

AWSでサーバ立てたことないので立てた時のやつ
SSLは既存でワイルドカードの証明を作成ずみのやつがあったのでLBにつける。

やったこと

・VPCを作成する
・作成したVPCにサブネットを作成する
 ・LBは二つ以上のアベイラリティゾーンが必要らしいので二つ作成してみた
 ・アベイラリティゾーンの設定
・セキュリティグループの作成
・ゲートウェイの作成
・ルートテーブルの作成
・EC2サーバの作成(Amazon Linux)
 ・LEMP(MySQLはRDS)サーバの構築(厳密にはLEPだが)


yum update -y
amazon-linux-extras install nginx1
amazon-linux-extras install php7.4

自動起動

sudo systemctl start nginx.service
sudo systemctl enable nginx.service
sudo systemctl start php-fpm.service
sudo systemctl enable php-f

初めてのAWS Lambda〜自作関数を動かす

# 前回の記事
[初めてのAWS Lambda〜Hello World](https://qiita.com/johnny1204/items/ef37459d96d74b0e62df)

# 今回の目標
Lambdaで自作関数を作成して、Slackに通知を送る

# 前準備
Slack通知を行いたいワークスペースにIncoming Webhookを追加し、Webhook URLを取得する
![slack_webhook.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236230/a6808192-8800-1ba3-a43e-ca3cd6b6bb20.png)

# 関数の作成
## AWSコンソール
今回は関数を自作するので、「一から作成」を選択し、関数名を入力。
言語はお好きなものを選択。今回はNode.jsにしてみた

![lambda.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236230/0a788c58

Java Lambda で巨大 JSON を扱う

InputStream を Lambda の入力にする記事を書きました。

Java Lambda の入出力型を試してみた〜Stream 編〜
https://qiita.com/kazfuku/items/6f0f55ffa3a88d76cfaa

InputStream を使用した場合のメリットとして、巨大な JSON を扱えると書いてます。そこで、実際のところどうなのかを検証してみました。

## テストデータ
まず、巨大 JSON を用意しました。name と text を持った object が 6000 個含まれるデータで、Lambda の入力サイズ上限 6MB に近い、約 5.9MB です。

```Json
{
"data":[
{
"name":"vrZPwIw3T7","text":"Ku7aQqW3WzUeiRdXnNB26iVElWdOUj8mQhvHksvN1sMmQ2fT3M8navvbTJuspda2q0bY3FWvsDoguE33tTNtoxuiHjdkUIHmylIezYGitmhJ2bbgcHhcHPzGr4eg3Ger9Ei

AWS VPC周りの用語まとめ NATゲートウェイ、ネットワークACL...

# はじめに
今回はAWSのVPCに関する用語を解説していきます!

youtubeでは図解で説明しているので、気になる方はそちらも確認ください!

[【YouTube動画】AWS VPC周りの用語編 VPC NAT ネットワークACL](https://youtu.be/m1XknpF5x5s)
[![【YouTube動画】AWS VPC周りの用語編 VPC NAT ネットワークACL](https://img.youtube.com/vi/m1XknpF5x5s/0.jpg)](https://www.youtube.com/watch?v=m1XknpF5x5s)

# VPCとサブネットマスク
VPCとは、Virtual Private Cloudの略で、AWSが提供する仮想ネットワークです。
サブネットはVPCを切り分けた領域です。

[参考]
[Amazon VPC とは?](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html)

# NATゲートウェイとインター

HULFT 8はAWS for Windows Server 2008 で構築する。

#1.仕組み図
![Hulft.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693974/161ee0fc-d733-6f1b-9aea-b5b9b1d3fe86.png)
#2.事前確認
- 1. AWS環境移行完成
- [Cloudendure使用してオンプレミスからクラウドへ移行](https://qiita.com/pythontjlc/items/95317aeba0678c8ffeea)
- 2.Hulft 8 アカウント申請
- [HULFT8アカウント公式サイト参考](https://hulftorangelab.zendesk.com/hc/ja/articles/232059167-HULFT8-for-Windows%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%9F%E3%81%84)
- 3.HULFT8構築するため、AWSセキュリティグループ設定

Laravelアプリで画像をS3に保存するように変更したらハマった話

#Laravelアプリで画像をS3に保存するように変更したらハマった話

##環境
Heroku
AWS(S3で画像を保存)
PHP 7.3
Laravel 8.8.0
MySQL 5.6.47
HTML
CSS
Blade

##背景
元々、Laravel8で作ったアプリのデプロイは、全ての機能をHerokuでデプロイしていました。しかし、投稿画像が一定時間を超えると画像がリンク切れを起こします。これはHerokuの仕様です。
この問題を解決すべく、画像の保存場所をAWSのS3に変更しました。環境変数の設定などを行い(これは、「Heroku Laravel S3」などでググれば出てきます)、いざ画像を投稿しようとしたら以下のようなエラーが出ました。

####①これで画像を投稿しようとすると……
![V-Lifeイベント作成ページ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/644353/7ab48e33-a6f9-2fe4-3b01-52cc65d26953.png)
####②こうなる
!

AWS AppSync + GraphQL + AWS Amplify + Angular

AngularからGraphQLでAWS AppSyncと通信を行う基本方法を記述します

今回はサンプルなのでAWS AppSyncのデータソースはDynamoDBのテーブルを直接参照する形とします。

【前提条件】
 Angular側には既にAmplifyがインストールされていることとする

(1)AWS AppSyncでインターフェースを作成
 (a)AWS AppSyncの「データソース」を選択し、データソース画面を表示する
 (b)「データソースを作成」ボタンをクリックし、新しいデータソース画面を表示する
 (c)以下の通り入力し、「作成」ボタンをクリックする
   データソース名・・・適当な名前(ここではsampleとする)
   データソースタイプ・・・「Amazon DynamoDBテーブル」を選択
   リージョン・・・DynamoDBテーブルのあるリージョンを選択
   テーブル名・・・情報を取得したいテーブルを選択
   既存のロールを作成または使用する・・・適宜選択
   バージョン管理・・・今回は有効化しない
   GraphQL を自動的に生成する・・・「O

AWS初心者がAWS 認定ソリューションアーキテクト – プロフェッショナル資格試験に合格した時の勉強法

# 概要

アソシエイト資格に合格してから2年、「AWS 認定ソリューションアーキテクト – プロフェッショナル」資格試験にもチャレンジしてみました。結果、なかなか大変だったけど、2回目の受験にしてなんとか合格できたので、アソシエイト資格に続きプロフェッショナル資格の勉強法を紹介します。

もしアソシエイト編に興味がある方がいたら以下に記事を投稿してします。

[AWS初心者がAWS 認定ソリューションアーキテクト – アソシエイト資格試験に合格した時の勉強法](https://qiita.com/fkooo/items/e5284a4ed3c3466ffd41 "AWS初心者がAWS 認定ソリューションアーキテクト – アソシエイト資格試験に合格した時の勉強法")

## 私の経歴

* インフラは専門外
* メインはアプリケーションエンジニア。システムの可用性/耐障害性とかはインフラチームにお任せ。AWSのアソシエイト資格取得で少し自信が付き、ちょっと口を出してみたりする。
* AWS初心者から脱却中
* 仕事では、EC2の中のアプリケーションの話しが多いのであまり知識を活用

CDKでAWS Batch環境の作成 準備編

## 概要

CDKを使ってAWS環境を作成するときの方法についてまとめていこうと思います。
今回は準備編なので軽めに
(うまく動かないところがあったので・・・)

## 準備

* [AWS Summit](https://resources.awscloud.com/aws-summit-online-japan-2020-on-demand-self-paced-hands-on-85234)のCDKハンズオンを見て準備をしましょう。
* こちらでも簡単に準備手順を
* AWS CLIのインストール
* AWS Configureの設定
* アカウントはCDKで作成するリソースにアクセスできる権限を付与しましょう。(お試しでやる場合はAdministrator権限の方がいいかもしれません)
* node.jsのインストール
* `npm install -g aws-cdk` のコマンドでcdkをインストール

### プロジェクトの準備

* TypeScriptでの例となります。
1. 空のディレクトリを用意する。
1. ディ

EC2 などの Linux に git をインストールする方法

備忘のために Linux に git をインストールする方法をメモ

まずは各種パッケージをアップデート

```
$ sudo yum update -y
```

それから git をインストール(簡単)

```
$ sudo yum install git -y
```

インストールできていることを確認します。

```
$ git version
git version 2.23.3
```

Serverless Application Repositoryへアプリケーションを公開する

# はじめに

以下の投稿でSAMで作ったリソースを、Serverless Application Repositoryに公開してみたので手順をまとめました。

- [CodeCommitのプルリクをCodeBuildで検証しAWS ChatbotでSlack通知する](https://qiita.com/joe-king-sh/items/d896ec66a93212e92147#%E5%BE%8C%E7%89%87%E4%BB%98%E3%81%91)

基本的には公式の[AWS Serverless Application Repository - アプリケーションの発行](https://docs.aws.amazon.com/ja_jp/serverlessrepo/latest/devguide/serverlessrepo-publishing-applications.html)手順の通りです。

# Serverless Application Repositoryの公開手順
## SAMテンプレートにメタデータを追加
Serverless Application R