AWS関連のことを調べてみた

AWS関連のことを調べてみた

AWS LambdaとLINEでオウム返しbotを作ってみる

# LINEでオウム返しbotを作る
* 入力した文字がそのまま帰ってくる、オウム返しLINE Botを作ってみました🦜
 画像はLINEからメッセージを送信してオウム返しを確認した様子です。

# 主な手順
* 1.LINE Developersアカウントへのログイン
* 2.lambda_functionの作成
* 3.AWS Lambdaの設定
* 4.API Gatewayの設定
* 5.LINE DeveloppersでMessaging APIの設定
* 6.LINEからメッセージを送信してオウム返しを確認する

# 1.LINE Developersの作成とログイン
LINE Developersアカウントへのログイン[URL](https://developers.line.biz/ja/)

# 2.lambd

元記事を表示

フルスタックアプリ(Spring Boot, React.js, MySQL)をAWS(Elastic Beanstalk, S3, RDS)にデプロイする際に参考にした資料

# はじめに
フルスタックアプリ(Spring Boot, React.js, MySQL)をAWSにデプロイする際に、実際に参考にした資料を載せていきたいと思います。VPCやセキュリティグループの設定など詳細な設定が難しいと感じている方の参考になりましたら幸いです。

# Spring BootアプリをElastic Beanstalkにデプロイする方法
こちらの動画では、VPC内にElastic BeanstalkとRDSの環境を構築する方法を紹介しています。

# ReactアプリをS3にデプロイする方法
こちらの動画では、S3にReactアプリをデプロイする方法を紹介しています。動画の3:58秒以降のステップではCLIを使用していますが、私はAWSのGUIを使用して、オブジェクトタブからファイル・フォルダのアップロードを行いました。

# 【番外編】 MySQL WorkbenchからRDSに接続す

元記事を表示

AWSのConnection Drainingについて事例を用いて理解するの備忘録

### Connection Drainingを有効にした場合のデータ処理の流れについて

#### 事例
ウェブアプリケーションのバックエンドには複数のデータベースサーバーがあり、ヘルスチェックはデータベースの接続状態を確認します。しかし、データベースにネットワーク的な問題が発生し、ヘルスチェックが一時的に失敗します。

#### 要因
データベースのネットワーク接続がタイムアウトし、ヘルスチェックが失敗します。この場合、データベースは一時的な問題により一時的にアクセス不能となっています。

#### 処理完了のための措置
Connection Drainingにより、ヘルスチェックの失敗したデータベースに新しいリクエストが送信されなくなりますが、既存のリクエストやセッションは引き続き処理されます。データベースの問題が一時的であり、ヘルスチェックが失敗した後も、データベースが回復する可能性があります。そのため、Connection Drainingによって、ユーザーが利用中のセッションやリクエストを中断することなく、サービスを継続することができます。

このように、Connecti

元記事を表示

【AWS】S3 静的ウェブサイトホスティング

# 目的
S3を使って簡単なWEBページを即時インターネット公開する。

## 手順の流れ
– S3バケットを作成する

公開したいWEBサイトのHTMLファイル等を格納するバケットを作成する。
バケット名はURLに含まれる。

http://<バケット名>.s3-website-<リージョン名>.amazonaws.com

バケット名は世界で一意となる名前でなければならない。

– バケットに公開する資材(HTMLファイル等)を格納する
– バケットのアクセス権を設定する
– 静的ウェブサイトホスティングを有効にする

## コンソールから作成
S3サービス画面から「バケットを作成」をクリックする。

任意のリージョン及びバケット名を指定する。
実務でPandasとMatplotlibを使う時がやっと来た

# はじめに

AWS エンジニアになる前は Python を独学で学び、Pandas や Matplotlib などデータ分析に関わるライブラリを触ってきました。

実務で使うことはあるのかと思っていましたが、ようやく学んだことを活かせる時が来たので記事にしようと思います。

# どんな業務で扱うことになったのか?

AWS エンジニア(インフラ担当)として、**『AWS リソースの使用状況を月次で報告する』** という月一の定例業務が発生することになりました。

EC2 インスタンスの 1 ヶ月の CPU やメモリの使用率などの推移を見て、今後のキャパシティプランニングに役立てる目的のためです。

私がジョインしているプロジェクトでは、システムの機能ごとに複数の AWS アカウントを使用し、かつ EC2 インスタンスを冗長化しているためサーバ数が多い状況です。
手作業で各サーバの CPU、メモリ使用率を確認していては月一の作業に対しての工数がかかってしまいます。

そこで、以下の方法で『工数がかかりすぎる問題』を解決しました。

[![Image from Gyazo](https

元記事を表示

AWS StepfunctionsとSWFの違い

## はじめに
AWS SAPの勉強中、SWFについて不明瞭だったこと、
StepfunctionsとSWFの違いが理解できていなかったことから、
これらについて勉強しました。
ドキュメントやちょっと動かしてみて得られた知見を共有します。

## 想定読者
SWFについて不明瞭な人。

## まず、SWFとは
Amazon SWF(Simple Workflow Service)とは、フルマネージド型のワークフローサービスです。
処理のステート管理やタスク間のコーディネートが行える、
Stepfunctionsの前身といえるサービスです。

SWFはワークフローを作成し、タスクや状態を管理するものであり、
実際に処理をするワーカーと呼ばれるものが別途必要です。

ワーカーとは、SWFエンドポイントに通信できる
任意のコンピューティングデバイス(EC2、オンプレ等)で動作するプログラムのことです。
以下の言語で開発できます。

* 開発言語
Java、.NET、Node.js、PHP、PHP バージョン 2、Python および Ruby

また、ワーカーには種類があります。
SWFを実

元記事を表示

【AWS】Systems ManagerでEC2へ接続する方法

セッションマネージャーを使うと、ブラウザのAWSマネジメントコンソールから、対象のEC2インスタンスにSSHの設定無しでアクセスすることができる。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-getting-started.html

### Session Manager を許可する IAM ポリシー の作成
1. IAM コンソールを開く
1. ポリシーを選択し、ポリシーの作成を選択
1. JSONタブを選択
1. 下記のJSONを張り付ける
key-name を、使用する AWS KMS key の Amazon リソースネーム (ARN) に置き換え
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [

元記事を表示

EC2慣れしてしまった人に向けたAmazon Lightsailの備忘録

# はじめに
EC2に慣れていると、Lightsailでのコマンドやパスの違いに毎回戸惑うので、備忘録としてここに記します。

# ドキュメントルート
“`console
$ pwd
/home/bitnami/htdocs
“`

# パス
## Apache
“`console
$ cat /opt/bitnami/apache2/conf/bitnami/bitnami.conf
“`

## MariaDB
“`console
$ cat /opt/bitnami/mariadb/conf/my.cnf
“`

# 起動・停止・再起動コマンド
ApacheやMariaDBの再起動や停止はこちらのコマンド。

## 起動
### Apache
“`console
$ sudo /opt/bitnami/ctlscript.sh start apache
Started apache
“`
### MariaDB
“`console
$ sudo /opt/bitnami/ctlscript.sh start mariadb
Started mariadb
“`

元記事を表示

CloudFormationを使ってALBとCloudFront用のWAFを作成しよう!

## 概要
今回はCloudFormationを使って
– ALB
– CloudFront

用のWAFを作成します

## 前提
– ALBとCloudFrontを構築済み

## ディレクトリ構成
“`
tree
.
└── templates
├── network
| └── cloudfront.yml
└── security
├── waf-for-alb.yml
└── waf-for-cloudfront.yml
“`

## WAF
### ALB用のWAFの作成

“`waf-for-alb.yml
AWSTemplateFormatVersion: 2010-09-09
Description: “WAFv2 For ALB”

# ————————————-
# Metadata
# ————————————-
Metadata:
AWS::CloudFormation::Interface:

元記事を表示

Amazon GuardDutyについて書いてみた

## はじめに
おはこんばんにちは。キティちゃんです。最近はセキュリティで今後どう働いていこうかを考えています。今回はAmazon GuardDutyについて書いてみようと思います。

## きっかけ
資格の勉強をしていて、名前を聞いたということやAWS関連のセミナーに参加したときにもよく名前があがったことからまとめてみようかなと思いました。

## Amazon GuardDutyとは
AWSアカウント、ワークロードを継続的にモニタリングし、悪意のあるアクティビティがないかを確認して脅威を検出するサービスです。機械学習を用いて検出しているのが特徴です。

## 利用するメリット
メリットとしては以下が挙げられるかなと思います。

1.有効化することで直ぐに利用が可能

2.複数アカウントの検出状況を一元管理ができる

## 有効化することで直ぐに利用が可能
セキュリティというと、ソフトウェアを導入し、あれやこれやを設定する必要があり一苦労するというイメージがあるかもしれません。しかし、Amazon GuardDutyの場合、一度有効化の設定をしてしまえば、直ぐに利用可能です。追加のア

元記事を表示

Terraformのnull_resourceでAWS CLIを使うときの注意点

Terraformの`null_resource`ではawsプロバイダで指定している`profile`が使用されない。
例えばECRにPushするときのクレデンシャルを取得する`get-login-password`は
“`
aws ecr get-login-password –profile=production | docker login …
“`
といった感じにprofileを明示してあげる必要がある。
地味にハマりポイントなので注意。

元記事を表示

弊社で取り組んでいるデータ活用システムの取り込み方法について

## はじめに
弊社オープントーンで提供している、
データの投入とそのデータを分析、活用するツールです。

業務のデジタル化により効率化を図るだけではなく、
デジタル化によって収集されるデータの分析・利活用により、
ビジネス戦略の再検討や、新たなビジネスモデルの創出が望まれています。

昨今弊社では様々なビジネス上のユーザーデータを集めて、データ集計・分析する取り組みをし、それを顧客に提供しています。
その中でいくつかのデータの投入方法を実現しています。

そのようなデータを集積・分析するには実際のデータを吸い上げることが必要で、
また統計データの集計値ではなく、実際のデータを利用するため、
より現実に即したデータで分析を行うことができるものになります。

ここではその一例を紹介します。

## データの投入方法について
データの投入をするという話を上記で触れたかと思いましたが、
以下のような取り込み方法に対応しています。

– 1.SFTP投入
– 2.スクレイピング投入
– 3.API投入
– 4.手動投入

## SFTP投入
エンドユーザーから直接S3にSFTPでデータファイル

元記事を表示

Amplify ディレクティブ一覧

Amplifyで使用できるディレクティブ一覧をまとめた物です。

以下の公式サイトを和訳したものですので、詳細はそちらをご覧ください。
https://docs.amplify.aws/javascript/tools/cli/graphqlapi/directives-reference/#pageMain

| ディレクティブ | 詳細 |
| —- | —- |
| @model | トップレベルのデータモデルを定義する物です。内部的にはDynamoDBが生成されます |****
| @primaryKey | データモデルに対して、カスタムのプライマリーキーを設定します |********
| @index | データモデルに対してカスタムのセカンダリインデックスを設定します |********
| @auth | データモデルとフィールドに対して認証ルールを定義します |********
| @hasOne | 二つのデータモデル間で、一方向の1対1リレーションを作成します。 一つのプロジェクトが一つのチームを持つような関係性

元記事を表示

AWS CLF入門 – セキュリティ

# はじめに
AWS CLF (Certified Cloud Practitioner) を取得した際の学習記録をアウトプットとして以下に記す。

# リンク
[ネットワーク](https://qiita.com/yashiuri/items/31b2c9c3c49c2584cd01)
[セキュリティ](https://qiita.com/yashiuri01/items/73e5310b09ff41912862) ←今ここ
[コンピューティング]()
[コンテナ]()
[スケーリング]()
[ストレージ]()
[データベース]()
[メッセージ]()
[モニタリング]()
[デプロイ]()
[コストとサポート]()
[移行とイノーベーション]()
[AWS製品群一覧]()

# **責任共有モデル**

– リソースの安全性を確保する責任はAWSとお客様の両方にある。(責任共有モデル)
– それぞれの担当は以下
– AWS – クラウドのセキュリティ
– お客様 – クラウド内のセキュリティ

詳しい責任分界点は以下。
![IMG_8258.png](https:/

元記事を表示

ReactアプリをS3にCLIでデプロイしてどこからでもアクセスできるようにする

はじめに

ReactアプリをS3にデプロイして誰でもアクセスできるような環境を作成していきます!
S3へのデプロイはAWSのマネコンからではなくCLIでできるようにするところまでがゴールになります!

①Reactアプリを作成

まずはNode.jsをインストールします。
インストールできたかどうかは以下コマンドで確認します。

“`
node -v
npm -v
“`

それぞれバージョンが表示されたら次はReactアプリを作成します。
今回はS3へのデプロイがメインのため、下記のコマンドを実行しすぐに動作確認ができるプロジェクトを作成します。

“`
npx create-react-app my-app
“`

作成したプロジェクトが動作するか確認するため以下コマンドを実行します。
※カレントディレクトリがmy-appの状態で実行すること
“`
npm start
“`

以下のような画面がブラウザで表示されていれば正しく起動できています。
AWSリソースのセキュリティ監視環境をTerraformで構築する。

# 概要
AWSリソースのセキュリティ監視、解析環境をterraformで構築する方法をまとめています。

最終的な構成は以下の図のようになります。
![kosezu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987556/16e0c173-0e5d-de55-55aa-77f4eb7d7ca6.png)

## Security Hubの設定
SecurityHubはAWSのセキュリティイベントを集約し、セキュリティの状態を監視するサービスです。例えばAWS ConfigやGuardDutyなどのセキュリティサービスの結果を集約し、それらの結果を一元的に確認することができます。

また、「セキュリティ基準」と呼ばれるセキュリティのベストプラクティスに基づいて、リソースの設定をチェックすることができます。このチェックはAWS Configと連携して行われます。
Go言語でAWSを操る: パッケージsessionについて


Go言語でAWSを操る: パッケージsessionについて

**とあるバンドマン**

_「いやー、いいセッションだったね」_

_「こちらこそ、魂が震えるライブだった」_

_「それにしてもこんな所で、こんな良いギタリストに出会えるとは」_

_「私こそ!こんなに良いドラマーに出会えるとは」_

_「いやー」_

_「いやー」_

_「「ここが異世界でなければなー」」_

_「あの私たちをひいてきたトラックの

Amazon S3を使用して容量の大きいファイルを静的サイトで閲覧する

# はじめに
今回、容量の大きいサイズのファイル(約1GB)を公開すべく、S3を使用してみました。

なぜ、今回S3を使用するといった経緯についてですが、大きく2点ありました。 


#### ① VS Codeからgit hubにpushできる最大容量が100MiB
(以下の記事に記載されています)
https://docs.github.com/ja/repositories/working-with-files/managing-large-files/about-large-files-on-github

#### ② Git LFSを使用してみたものの、描画されるまで時間がかかってしまう

こちらのGit LFSを使用すると、 無料プランだとファイルの最大サイズが2GBまでpushできるようになります。
https://docs.github.com/ja/repositories/working-with-files/managing-large-files/about-git-large-file-storage

# 解決策
#### AWS S3を使用する

AWSでWordPressを構築

内容
・目標
・公式サイト
・使用できるサービス
・実行環境
・目指す構成
・VPCの作成
・EC2起動設定
・RDS作成
・ELB作成
・WordPressの初期設定
・WordPressがインストールされたEC2のAMI(イメージ)を作成して2個目のEC2を作成
・2個目のEC2をELBに登録
・RDSのDBインスタンスをマルチAZ化
・EC2の可用性の確認
・RDSインスタンスのフェイルオーバーを行い、全体の可用性を確認
・撤収!!!
・結果

## 目標
AWSに関しての基礎技術の修得を目標に再びWordPressをデプロイしていきます!
ドメイン取得から期間が経っていないため、今回ドメインは使用できず、SSLの設定もしていません。ドメインなどの情報に関しては最下部にリンクがあります。

## 公式サイト:

今回はこちら↓↓↓

https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Scalable-2022-confirmation_386.html

CLI中心で設定する場合↓↓↓

http

AWS CloudFormation で関連付けの無いIAMポリシーを作成したい

## 概要
AWS CloudFormation でIAM Role等に関連付けないIAMポリシーを作成しようとした際、
エラーになったため、その原因と解決策を備忘として残します。

## やろうとしたこと

以下CloudFormationを実行しようとしたところ

“`yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Parameters:
RoleName:
Type: String
Default: “hoge-role”
Resources:
AssumerolePolicy:
Type: AWS::IAM::Policy
Properties:
PolicyName: “hoge-policy”
PolicyDocument:
Version: “2012-10-17”
Statement:
– Effect: Allow
Action:
– “sts:AssumeRo