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

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

【IT未経験向け】インフラエンジニアのキャリアパス【現役インフラエンジニアが解説】

# はじめに

* インフラエンジニアとしてどうキャリアを積んでいけばよいか悩んでいる

* そもそもインフラエンジニアとして何がしたいか、どんな職種があるのか分からない

* 最短で効率よくキャリアをアップさせる方法を知りたい

このような悩み、疑問に答えます。
本記事を読むと下記についてのことが分かります。

* インフラエンジニアのキャリアを知る

* インフラエンジニアとして目指すべきキャリアの方向性が分かる

* 結論はクラウド(AWS)エンジニアを目指すべき

# 記事の信頼性
筆者はAWS経験5年程度です。AWS資格は5冠達成しました。
現在は大規模ECサイトのAWS運用を任されるようになっています。

# インフラエンジニアの職種

まずはインフラエンジニアとしてどんな職種があるのか、その職種でどんな知識が必要かをざっくり紹介します。

## 職種共通知識
基本情報処理技術者レベルの基礎知識は必須です。
[基本情報技術者試験(FE) ~ ITエンジニアの登竜門~](https://www.jitec.ipa.go.jp/1_11seido/fe.html)

元記事を表示

あなたのAWS S3は安全ですか?

## はじめに

みなさま、超ウキウキするイベントが開催されていることはご存知でしょうか。
TrendMicro社が開催する以下の**イベントで大賞を取ると、超大盤振る舞い、アマゾンギフト券10万円分が手にできます!!**
TrendMicro社が誇るクラウドセキュリティ製品について学びを深めることができて、なおかつ商品ゲットのチャンスもあるということで、参加するしかない…!!と本記事を執筆するに至りました。

https://qiita.com/official-events/21bbb48549a4a68172a4

ギフト券を取るぞという気持ち半分、公平な目線でTrendMicroの製品を評価していき、より良い記事にしたいと考えています。

**アプリケーションでAWS S3を利用している方に、ぜひご覧いただけますと幸いです。
まだ利用されたことがない方も、AWS S3をアプリケーションを利用する機会も増えていると思いますので、ぜひ未来のためにご参考ください。**

## AWS S3のセキュリティって意識できてますか?

突然ですが、AWS S3のセキュリティについて、しっ

元記事を表示

ROSAクラスタの構築(自前のVPC内、且つ、STSモードで、Private Linkを添えて)

## ROSAのカスタマイズ

ROSAは愚直にインストール手順を実行すると、以下のような仕様となる。

* インストーラが作ったVPC内にクラスタが作られる
* Red Hat SRE Team用のIAM Userが勝手に作られる
* Red Hat SRE Teamからのアクセスはインターネット経由になる

ところが、色々アップデートが入り、以下のようなアレンジが効くようになった模様。

* 自前のVPCにクラスタを作れる
* IAM Userは不要で、AssumeRoleでSTSから一時トークンもらってSRE活動をしてくれる(たぶん)
* Red Hat SRE TeamからのアクセスはPrivate Link経由になる

とまぁ、規定のLanding Zoneでしか活動が認められていない民にとっては、尊い機能がリリースされたんですって。
ところが、[インストール手順をなぞってみてもうまく行かなくて死んだ](https://qiita.com/1ksen/private/cf83324d5fa3f1c69b3e)ので、~~ビアを呷りながら~~きれいな心でリトライするんだ!(*^◯

元記事を表示

AWS SNS/SQSによるメッセージ送受信のサンプル(Go言語)

## 前準備

1. SNSのトピックを作る
– 名前は適当
– タイプは標準
– 他はすべてデフォルト値でOK。
1. SQSのキューを作る。名前は適当、他は
– 名前は適当
– タイプは標準
– 他はすべてデフォルト値でOK。
1. SQSを作ったら、そのSNSサブスクリプションに最初に作ったSNSを追加する

## SNSでメッセージを送信

“`go
package main

import (
“flag”
“fmt”
“github.com/aws/aws-sdk-go/aws/session”
“github.com/aws/aws-sdk-go/service/sns”
“os”
)

func main() {
profile := flag.String(“p”, “”, “AWSの認証に使うProfile。未指定ならdefault”)
msgPtr := flag.String(“m”, “”, “The message to send to the subscribed users of the topic”)
topi

元記事を表示

cloudfrontのフィールドレベル暗号化とは

## 勉強前イメージ

フィールドレベルということはhttpの分野別の暗号化してるって感じ?

## 調査

### フィールドレベル暗号化 とは

cloudfrontの機能のフィールドレベル暗号化は
個人を特定できる情報などの機密データのセキュリティをより強化できるようになりました。
ユーザが決めたフィールド固有の暗号化キーを使用して、
リクエストがオリジンに転送される前にhttps内で機密データを更に暗号化します。

### フィールドレベル暗号化の設定

以下の手順でフィールドレベル暗号化を行います。

– 1. RSA キーペアの作成

フィールドレベル暗号化の前のパブリックキーの設定を行います。

– 2. パブリックキーを CloudFront に追加する

設定したパブリックキーをcloudfrontに追加します。

– 3. フィールドレベル暗号化のプロファイルを作成する

フィールドレベル暗号化のプロファイルで暗号化するフィールドの定義を行います。

– 4. 設定を作成する

特定のデータフィールドの暗号化に使用するプロファイルを指定します。
いろんなシナリオでオ

元記事を表示

EC2インスタンス起動/停止をLambdaで自動化してみた

## はじめに
Lambdaを使ったEC2インスタンスの自動起動/自動停止の環境を構築したので紹介します
きっかけは業務でcrontabファイルを使用しており`Lambdaに移行できるのでは?`と思い実装しました
一回構築してしまえばめんどくさい手作業が自動化できますしヒューマンエラーも防げるのでおすすめです

## 対象読者
* 個人アプリのサーバー費用節約したい人
* EC2は触ったことあるけどLambdaは触ったことがない人
* 自動化に興味のある人

## 前提
* AWSアカウント作成済み
* EC2インスタンス作成済み

## 実装の概要
**実装時間: 30~60分**
1. IAMロールの作成
2. LambdaでEC2インスタンスの起動・停止処理を実装
3. Amazon EventBridgeで Lambdaを実行する時間を指定する

## IAMロールの作成
AWSにログインして `IAM > ポリシー > ポリシーを作成 > JSONタブ`に進むとポリシー作成画面が表示されます
![スクリーンショット 2021-08-23 9.16.25.png](http

元記事を表示

Dockerでamazonlinuxを利用してnodejsの環境を作成する

##Dockerfileの書き方
参考記事

https://qiita.com/pottava/items/452bf80e334bc1fee69a

##amazonlinuxをイメージにコンテナを作成
なるべくEC2と同じ環境で作業したいためamazonlinuxでの環境構築を行う

“`
ローカルの作業ディレクトリ> docker run -it amazonlinux
Unable to find image ‘amazonlinux:latest’ locally
latest: Pulling from library/amazonlinux
85ee02fe1a09: Pull complete
Digest: sha256:2e42b5d170dbb6d54d35b3b64627480de9687b52cfbab2086267a0fd2acd7bef
Status: Downloaded newer image for amazonlinux:latest
bash-4.2# ls -lta
total 60
drwxr-xr-x 5 root root 36

元記事を表示

samでlambdaのデプロイ

# 目次
・samの導入
・sam init
・sam build
・samconfig.tomlの作成
・sam deploy

# samの導入
brewによるインストール

“`
$ brew tap aws/tap
$ brew install aws-sam-cli
“`

もしくはpipによるインストール

“`
$ pip install aws-sam-cli
“`

# sam init
対話形式でプロジェクトを作成します。

“`
$ sam init
Which template source would you like to use?
1 – AWS Quick Start Templates
2 – Custom Template Location
Choice: 1
What package type would you like to use?
1 – Zip (artifact is a zip uploaded to S3)
2 – Image (artifact is an

元記事を表示

CDKでFargate&ECS Exec

# CDKでFargate&ECS Exec
## はじめに
### 内容
CDKでECS Execが有効なコンテナーを作成しようとしたら、躓いてしまったのでその紹介しながら、CDKでECS Execできるまでの最小構成のテンプレートを記述しています。

### 環境
| 日付 | 2021年8月22日 |
| ————- | ————- |
| aws cli | 2.2.27 |
| @aws-cdk/core | 1.117.0 |

### ECS Execとは
AWSのDockerコンテナの実行サービスであるECSで実行中のコンテナに対してコマンドを実行できるという機能です。簡単にいうとAWS上のコンテナに対してローカルのコンテナと同じように`dokcer exec`や`docker-compose exec`が実行できます。もちろんbashを起動することで対話的なコマンドラインで作業することもできます。

[参考 Amazon ECS Exec](https://aws.amazon.c

元記事を表示

Lightsailで独自ドメインを付けてSSL認証にする。

### 前提
あいからわず自分用メモに近い記事です。

読む方のために、スクリーンショットやコマンドを細かく記載していきますので、参考資料というより
実際にやらなくてもやったつもりになれる記事を目指していきます。

Route53で直接ドメインを取れば簡単なのかもしれませんが、今回は別のGoogleDomainsで取得中のドメインを使ってLightsail上のnginxに紐づけてrailsアプリを起動させるところまでやっていきます。

なお、モザイクや黒塗りが好きではないですが、スクリーンショットは加工してあり、
独自ドメインの部分に`mydomain.app`
静的IPのところを`99.83.154.118`と直しています。

### 現在までの状態
LightsailでAmazonLinux2インスタンスを作ります。

![AmazonLinux.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285882/f70ddf96-500e-6b6a-38fd-70cb6daeeb1c.jpeg)
その後A

元記事を表示

EKS の LoadBalancerController で http → https のリダイレクト

## やりたいこと
EKS の LoadBalancerController で http を https にリダイレクトさせたい

## よくある方法
https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/tasks/ssl_redirect/

“`
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: default
name: ingress
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxx:certificate/xxxxxx
alb.ingress.kubernetes.io/listen-ports: ‘[{“HTTP”: 80}, {“HTTPS”:443}]’
alb.ing

元記事を表示

【AWS】AWS Codeシリーズ

#はじめに
AWS認定試験取得に向けてAWSの知識を整理するためのまとめです。
今回はAWS Codeシリーズについてまとめます。

ソフトウェアやアプリを開発してリリースするまでは下記のような流れになると思われます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/718108/e7f5682c-c89f-dddf-277c-114d1fb7a665.png)
AWSで各工程のサービスと、この一連の流れ(CI環境)を実現できるのがCodeシリーズになります。

# AWS Codeシリーズとは
AWSではコードシリーズと呼ばれる、下記の4つのサービスが提供されています。
AWS CodeCommit、AWS CodeBuild、AWS CodeDeploy、AWS CodePipeline
一つ一つ見ていきましょう。

# AWS CodeCommit
ソースコードを管理するサービスです。
完全マネージド型なので、ソースコード管理サーバのバックアップやスケールなどを
気にすることなく利用

元記事を表示

AWS利用して栃木県コロナデータのレポート出力を自動化する構成を考えてみた

## はじめに
栃木県のコロナのデータは以下サイトにデータの公開と可視化がされています.
しかし, データはいつ公開されているかはわからず比較的全体的な
データの可視化しかされていません.
そこで, コロナの感染状況のデータを自動的に取得してレポートとして公開する方法を考えましたので
ご覧いただけると幸いです.
※あくまでも, レポートとして公開することを目的としているので内容等の考察は行いません.

また, 今回は栃木県のコロナデータをもとにノートブックアウトプット資料の自動化を行っていますが,
他の形式データでも応用可能なので栃木県のコロナの状況には興味のない人にも適応できる内容かな
と思います.

※これはあくまでも個人で作成したものです.

## データセット
https://www.pref.tochigi.lg.jp/e04/welfare/hoken-eisei/kansen/hp/coronakensahasseijyoukyou.html

上記, URLのExcelデータを使用しています.

## 使用技術
開発環境

* macbook air (2020) in

元記事を表示

【AWS】Terraformでアクセスを分散、WebサーバーをHTTPS化する その2(Route53)

## 概要
TerraformでAWSサービスを使用して、

– 負荷分散
– 独自ドメインの設定
– SSL証明書を作成してHTTPS化

上記の3つを含めた構成を作成する手順をまとめました。

## 目次
本記事は「2. Route53でDNS設定」について記述。
「1. ALBの作成」まではこちら → [【AWS】Terraformでアクセスを分散、WebサーバーをHTTPS化する その1(ALB) ](https://qiita.com/ramunauna/items/250d1dfc16468c5b8522)

1. アプリケーションロードバランサー(ALB)の作成
– ALBの作成
– ターゲットグループの作成 / ターゲットの登録
– リスナーを設定
– ALBのDNS名からHTTPアクセス確認
1. Route53でDNS設定 __←本記事はここから__
– ドメインの取得(例はfreenomの無料ドメイン)
– ホストゾーンの作成
– DNSレコードの定義
– ネームサーバーの設定を加える
– 取得したドメインへHTTPアクセス確認

元記事を表示

MENTAでインフラ/サーバー周りをコーチングしてもらったことを振り返る

## 背景

AWSのデプロイで詰まっていたところ、MENTAでお声掛け頂いてから8月の1ヶ月間MENTAにてメンターの@adachin0817にコーチングの下、インフラ周りの実装を行いました。その成果物としては以下のインフラ構成図の通り。

![Tamari-Baインフラ構成図_Qiita用](https://user-images.githubusercontent.com/69702983/130358185-61db1a10-eee2-4b77-8503-5583eaa2b27b.png)

具体的にはCircleCIによる自動デプロイ、EC2の本番環境、Dockerによる開発環境構築を行いました。
ちなみに今回はポートフォリオということもあり、AWSはコスト削減のためALBやRDSは利用していません。

リポジトリ: https://github.com/Hiroto-Iizuka/Tamari-Ba

内容は以下に全てまとめているので是非ご覧いただければ幸いです。

#### アウトプット
– [【CircleCI】AWSにデプロイしたRails6アプリをCircleCI

元記事を表示

API Gateway でLambda実行後、特定のページにリダイレクトする ②

#はじめに
前回の続きですが、題名の内容だけ知りたい方も参考になる書き方をします。

前回の続きだと、⑧htmlから起動などのLambda実行後、htmlページにリダイレクトするよう設定します。
[APIGateway+Lambdaで、WebページからEC2の起動・停止・スペック変更を操作する①](https://qiita.com/holdout0521/items/f0cb3182bfb3785388a0)

#事前準備
・Lambda作成
・ApiGateway作成
・S3などにhtmlを設置

#やりたいこと
##初見の方用
`https:aaa.bbb.html`からLambdaを実行し(apiを叩き)、apiをリクエストしますが、レスポンス時`https:aaa.bbb.html`にリダイレクトさせます

“`html:https//aaa.bbb.htmlページ


ec2を起

元記事を表示

terraformでec2サーバーのキーペアを設定して起動する

# 概要
過去にterraformによりAWSのec2インスタンスを作成した

https://qiita.com/kazato110tm/items/59d4a780d2262ab96aaa

しかし、これではssh接続の際のキーペアが設定されていないため、terraformでec2にキーペアを設定する方法をまとめる

terraformのためには認証キーの登録が必要なため別途以下で対応

https://qiita.com/kazato110tm/items/3a581f156f51fd257f76

# キーペアなしでEC2インスタンスを構築
## EC2を起動する

EC2をterraformで起動するための最低限のスクリプトは以下の通り
リージョンとAMI, インスタンスタイプを`main.tf`に記載する
今回はAmazon Linuxを使用

“`main.tf
provider “aws” {
region = “ap-northeast-1”
}

resource “aws_instance” “default” {
ami = “ami-09

元記事を表示

AWS SecretsManager motoを使用してpytest する方法

#secretsmanager motoを使用してのpytest

pytestをする必要があったので検索しましたがあまり日本語がなさそうな雰囲気。。。
別にmoto使用しなくても全てmockにしてしまってもいいけどね。
なんとなく知的好奇心が沸いたので試してみました。
なので記事にしてみました。

##必要モジュール
boto3
moto
pytest

##実装箇所

“`secrets_manager.py
import json
import boto3
import logging

# log_level
logging.getLogger().setLevel(logging.INFO)

class SecretsManagerClass:

def __init__(self, secret_name):
logging.info(secret_name)
self.secret_name = secret_name

def _open_boto_session(self):
return b

元記事を表示

AWS(EC2 + RDS) でLaravel環境構築

![スクリーンショット 2021-08-21 11.04.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620908/9d5b0f0f-ac4f-587f-c72e-f25e51314eec.png)
AWS EC2のインスタンス作成〜Laravelのマイグレーション実行までの備忘録です。

実行環境
MACOS

#EC2インスタンスの作成

##リージョン選択
画面右上のリージョンを選択します。

今回は「東京リージョン」を選択します。
詳しい違いは以下のサイトが参考になりました。
https://www.t3a.jp/blog/infrastructure/aws-best-region/

簡単にいうと、
スピード重視:東京、大阪
金額重視:バージニアなど
を選ぶとよいです。

![スクリーンショット 2021-08-21 10.04.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620908/292

元記事を表示

[Python]ローカルPCからSSHトンネリングを行いDB接続する方法 メモ

* Pythonで踏み台サーバー経由でDB接続する方法についてメモする。

## 環境構成

* ローカルPCから踏み台サーバー(EC2)を経由し、DB(Aurora)に接続するようなケースを想定

![python_db_tunnel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586535/86c562fa-9e65-17fd-f7fb-ac715eab8e43.png)

## コード

* `conf/setting.conf`

* 踏み台サーバーとDBの接続情報を記述する。

“`conf
# 踏み台サーバー接続情報
[BASTION]
BASTION_HOST = YOUR_BASTION_HOST_IP
BASTION_PORT = 22
BASTION_HOST_KEY = None
BASTION_USERNAME = YOUR_BASTION_USERNAME
BASTION_PASSWORD = YOUR_BASTION_PASSWOR

元記事を表示

OTHERカテゴリの最新記事