- 1. EC2のEBS拡張
- 2. C言語をAWSで使用する場合の環境構築
- 3. 【AWS Lambda】推しを広めるTwitterBotをほぼ無料で運用した
- 4. 自分なりにAWSの主要サービスをまとめてみた。
- 5. Apex UpでNode.js × expressをAWS Lambda, API Gatewayに速攻デプロイしてみる
- 6. Muiti-AWS Accountのアクセス制限(AWS Organizations)
- 7. AWS 認定 セキュリティ – 専門知識(SCS)に合格しました。
- 8. EC2インスタンス起動後に必要なセキュリティ設定
- 9. AWS Chaliceの開発環境をdockerで構築し、超高速でサーバーレスアプリケーションをデプロイしてみた
- 10. DynamoDBをローカルで構築し、AWS CLIコマンドを使っていじるまで
- 11. (DynamoDBで)苦しかったときの話をしようか
- 12. AWS Client VPNの承認ルールに複数のADグループを設定する場合の注意点
- 13. 白いマスクから怪人マスクへ、AWSでサーバレスLINE写真処理アプリの開発記
- 14. AWS SDK for Ruby profile変更 & assume role
- 15. Amazon Linux2にECS Agent登録&デバッグ
- 16. ALBでHostBasedRouting
- 17. PrivateSubnetからNatGatewayを経由してSESメール配信
- 18. AWS CLIでオートスケーリンググループの更新・デプロイ
- 19. AWS Organizationsと無料枠
- 20. AmazonLinux2 の EC2 からサクッと MSK の kafka topic を作ったりする方法
EC2のEBS拡張
EC2のEBSのボリュームを拡張する話です。
“`bash
[]$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 92K 2.0G 1% /dev/shm
tmpfs 2.0G 448K 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/xvda1 100G 27G 74G 27% /
tmpfs 395M 0 395M 0% /run/user/40503
“`パーティションを拡張する
“`bash
[]$ sudo growpart /dev/xvda 1
CHANGED: partition=1 start=4096 old: size=209711071 end=209715167 new: size=
C言語をAWSで使用する場合の環境構築
#前提
業務でC言語を使用することになったので事前学習でドットインストールで勉強することに。
しかし、ドットインストールの[C言語入門](https://dotinstall.com/lessons/basic_c)は、ローカル環境構築の前提。
ローカル環境構築ではロケットスタートできないためAWSでポチれる環境構築方法を調べた#環境
Windows10
AWS cloud9#やりかた
AWS cloud9よりcreate envirmentをしワークスペースを作成する。
あとは普通に「xxxx.c」と拡張子cのファイルを作成すればよい。![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/734661/cb64c008-e9db-a04a-66b9-bba587af6818.png)
ちなみにC言語はコンパイル必須なので、gcc -o hello hello.cでコンパイルしたのち、./helloでバッシュ実行している。
“`c:hello.c
ec2-user:~
【AWS Lambda】推しを広めるTwitterBotをほぼ無料で運用した
# 作ったモノ
## 谷崎早耶?さややん?画像bot
谷崎早耶ちゃん(さややん)の画像・動画をツイートするボットを趣味で作りました。
2019年の5月に公開して、1.5年くらい運用しています。![スクリーンショット 2020-10-06 11.18.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/255210/2b0b8ef5-ad11-abf2-a65c-cff437efdea8.png)
可愛いと思ったらリツイートお願いします!#谷崎早耶 自分なりにAWSの主要サービスをまとめてみた。
#【自分なりにAWSの主要サービスをまとめてみた。】
AWSクラウドプラクティショナーの学習をしています。
自分の独断と偏見で重要そうだなと判断したものをまとめました。
個人メモのような感じです。##・コンピューティングサービス
###Amazon EC2 (Elastic Compute Cloud)
AWS上の仮想的なプライベートサーバー。起動されたものをEC2インスタンス。###AWS Elastic Beanstalk
マネージドな仮想マシンでソフトウェアを実行できるサービス。###Amazon Lightsail
Amazonの提供するホスティングサービス。様々なアプリがある。とても簡単にデプロイ可能。###AWS Lambda
サーバーなし、かつイベント駆動でコードを実行できるサービス。###Amazon Machine Image (AMI)
EC2インスタンス起動に必要なEBSの全体のイメージ(スナップショット)などを指す。##・コンテナサービス
###Amazon ECS (Elastic Container Service)
EC2やFApex UpでNode.js × expressをAWS Lambda, API Gatewayに速攻デプロイしてみる
# はじめに
Node.js × expressのAPIのデプロイ先としてLambdaを使おうと思ったのですが
手取り早くデプロイして試したかったので、Apex Upを使ってみた。今回はその時の備忘録# Upとは
APIや静的ウェブサイトをLambda × API Gatewayに`up`コマンドでデプロイしてくれるツールです。# 使ってみる
Upのインストール
“`
curl -sf https://up.apex.sh/install | sh
“`プロジェクト作成
“`bash
mkdir node-up
cd node-up
npm init
entry point: (index.js) app.js # 自分はapp.jsに変更
“`expressのインストール
“`bash
npm install express
touch app.js
touch up.json # Upの設定ファイル
“`app.js
“`javascript
const express = require(‘express’)
const app = e
Muiti-AWS Accountのアクセス制限(AWS Organizations)
# [AWS Organizations](https://aws.amazon.com/jp/organizations/) を利用したアカウント制限
## 想定対象読者
* 複数のAWS Accountの制限について困っている方
* アカウントの解約を勝手にされると困る
* 組織から勝手に離脱をされると困る
* サポートケースを勝手に起票されると困る
… etc## 本稿で取り扱っている内容
:ok_woman_tone1: AWS Organizationsにおける [SCP](https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_policies_scps.html) で制限
## AWSのアカウント権限について
[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/best-practices.html)でも記載されていますが、
A
AWS 認定 セキュリティ – 専門知識(SCS)に合格しました。
[AWS認定 ソリューションアーキテクト プロフェッショナル(SAP-C01)](https://qiita.com/sicksixrock66/items/71e8f350781f56297c34)
に合格したので、
AWS 認定 セキュリティ – 専門知識(SCS)を受験し合格しました。#合格時のAWS歴
業務歴1年程度#点数
816点(思ったより点数がとれませんでした。。)#難易度
AWS SAPと比べると問題文も短く、答えも内容がわかっていれば明確に選べる問題も多かった気がします。
SAAよりは難しいかもしれませんがSAPよりは確実に簡単です。試験時間も見直し含め1時間程度で私は解けました。
※試験ガイドに記載のサービス内容について実際に業務で触れていたのは大きいかもしれません。#勉強方法
今回は書籍の[要点整理から攻略する『AWS認定 セキュリティ-専門知識』](https://www.amazon.co.jp/%E8%A6%81%E7%82%B9%E6%95%B4%E7%90%86%E3%81%8B%E3%82%89%E6%94%BB%E7%95%A5%E
EC2インスタンス起動後に必要なセキュリティ設定
EC2 に SSH でログインした後、最低限必要な設定をまとめます。
## ユーザ設定
### ユーザ追加、パスワード設定
“`
# ユーザ追加とパスワード設定
sudo useradd hogehoge
sudo passwd hogehoge
“`### wheel グループに追加
# 作成したユーザのディレクトリを確認
“`
# wheelグループに追加
sudo usermod -aG wheel hogehoge# wheelに所属しているユーザーの確認
less /etc/group | grep wheel
“`### 公開鍵設定
“`
# 公開鍵のコピーとパーミッション設定
sudo cp -R ~/.ssh/ /home/hogehoge/.ssh
sudo chown -R hogehoge:hogehoge /home/hogehoge/.ssh
sudo chmod -R go-rwx /home/hogehoge/.ssh
“`## SSH 設定
### ec2-user へ直接 ssh を禁止
“`
sudo e
AWS Chaliceの開発環境をdockerで構築し、超高速でサーバーレスアプリケーションをデプロイしてみた
# AWS Chaliceの開発環境をdockerで構築し、超高速でサーバーレスアプリケーションをデプロイしてみた
ChaliceもLambdaも初めてですが、
初めてのサーバーレスアプリケーションに興奮したので書きますソースコード [naokit-dev/python3_chalice_on_docker](https://github.com/naokit-dev/python3_chalice_on_docker)
## Chalice (チャリス?)
AWSが提供するPythonフレームワーク
Lambdaを使ったサーバーレスアプリケーションを簡単にデプロイできる
[Documentation — AWS Chalice](https://aws.github.io/chalice/index.html)## 環境
– macOS Catalina
– VS Code
– Docker Desktop“`
docker –version
Docker version 19.03.13, build 4484c46d9d
docker-compose –
DynamoDBをローカルで構築し、AWS CLIコマンドを使っていじるまで
実施環境はWindowsのPC内にVagrantで立てたCentOSの仮想マシンです。
## Javaがなかったので入れる
“`
[root@localhost ~]# yum install java-1.8.0-openjdk
[root@localhost ~]# java -version
openjdk version “1.8.0_181”
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
“`## dynamodb-localをダウンロード
“`
[vagrant@localhost ~]$ sudo su –
[root@localhost ~]# wget http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.tar.gz100%[=============================
(DynamoDBで)苦しかったときの話をしようか
# はじめに
本記事は**AWS**の**DynamoDB**を使った開発で**苦しんだ**経験をまとめたものです。ちなみにタイトルの元ネタは[これ](https://www.amazon.co.jp/%E8%8B%A6%E3%81%97%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AE%E8%A9%B1%E3%82%92%E3%81%97%E3%82%88%E3%81%86%E3%81%8B-%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%9E%E3%83%B3%E3%81%AE%E7%88%B6%E3%81%8C%E6%88%91%E3%81%8C%E5%AD%90%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AB%E6%9B%B8%E3%81%8D%E3%81%9F%E3%82%81%E3%81%9F%E3%80%8C%E5%83%8D%E3%81%8F%E3%81%93%E3%81%A8%E3%81%AE%E6%9C%AC%E8%B3%AA%E3%80%8D-
AWS Client VPNの承認ルールに複数のADグループを設定する場合の注意点
AWSにはAWS Client VPNというマネージドのVPNサービスがあり、OpenVPN ベースのVPN クライアントを使用すれば、VPN接続を簡単に実施することができます。
その中で、Active Directory認証と相互認証(証明書)を使用して認証することができるのですが、
Active Directory認証を使用した際に通常のネットワークの使用とは異なる部分がありました。#Active Directory認証をする際の注意点
※動作としては以下のトラブルシュート
https://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/troubleshooting.html#ad-group-auth-rules例えば、ひとつのClientVPNにおなじディレクトリに所属する2つのADグループと承認ルールを設定していたとします。
| ADグループ名 | 承認ルール |
| —- | —- |
| test1 | 10.0.0.0/16 |
| test2 | 10.0.0.0/1
白いマスクから怪人マスクへ、AWSでサーバレスLINE写真処理アプリの開発記
# 0.はじめに
初めまして、中国から参りましたポンです。
今は野村総合研究所で働いている新人エンジニアです。
日本語がまだ下手ですから、もし変な日本語が入りましたらご容赦ください。
どうぞよろしくお願いいたします。コロナ時期の旅行写真には、白いマスクが多すぎで、
もう我慢できないですよね?
ちょうど今は新人開発研修があって、これを研修の課題にしました。
これを解決するため、写真中の白いマスクを怪人マスクに変換するアプリケーションを開発しました。
「できるだけ作業量を減らす」というコンセプトに基づいて、
AWSの色々なサービスを活用してサーバレスLINE写真処理アプリとして開発しました。
**マスクだらけの写真にうんざりした方**も、**サーバレスに興味ある方**も、
ぜひ、この開発記をお楽しみください。# 1.なぜこのアプリを開発?
AWS SDK for Ruby profile変更 & assume role
AWS SDK for Rubyにてcredentialsのprofile指定とassume role方法についてわかりづらかったので記載
↓profileはaws-cliで下記のように作成した際のもの
“`bash
$ aws configure –profile hoge
“`### profile指定
Clientの引数に渡すだけ
例:EC2“`ruby
ec2 = Aws::EC2::Client.new(
profile: “hoge”,
# …
)
“`### assume role
“`ruby
require ‘aws-sdk-core’
require ‘aws-sdk-ec2’role_credentials = Aws::AssumeRoleCredentials.new(
client: Aws::STS::Client.new(opts),
role_arn: “arn:aws:iam::xxxxxxxxxxxx:role/hoge_role”,
role_session_name: hoge
)e
Amazon Linux2にECS Agent登録&デバッグ
# ECSでEC2を使う場合のデバッグ
– Amazon Linux2に[公式マニュアル](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/ecs-agent-install.html)を元にecs-agentを入れてクラスターにつないでみた
– マニュアルのとおりにやっても正常に起動しない場合があり、そういう時にどうやってデバグするのか情報がまとまっていなかったので、自分のメモがてら記事にしてみる
– 今回のケースではAmazon Linux2に手動でagentをインストールした場合を扱います。他のケースだと細かいパスとかは違っているかもしれません# デバッグに有用なファイルのパス
“`shell
# 設定情報
## 設定情報。どのクラスタに所属させるか、などを設定
/etc/ecs/ecs.config
## エージェント状態ファイル。インスタンスがクラスターに作成された後に作られる。曲者なやつ。
/var/lib/ecs/data/ecs_agent_data.json# ログファイル
ALBでHostBasedRouting
#概要
アプリケーションを複数のサービスの集合体として運用している場合に、それぞれのドメインごとにALBを立てて管理する方法と、ALBのリスナールールで管理する方法がある。後者の方が管理コストが低いので試してみた。
#ALBの設定
設定はすごく簡単、EC2からロードバランサーを選択、対象のロードバランサーをチェック
![スクリーンショット 2020-10-06 14.38.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209804/1dc1a0ac-d0ab-7cdb-acc1-e3fbba08f015.png)
編集したいリスナーを選び、ルールの編集をクリックし、ルールの追加をクリック。
条件式をホストヘッダーにし、ドメインを記入、このドメインの時に転送する転送先(ターゲットグループ)を選択。以上
![スクリーンショット 2020-10-06 14.39.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209
PrivateSubnetからNatGatewayを経由してSESメール配信
#NATGatewayの作成
VPCからNATゲートウェイ選択、作成クリック
![スクリーンショット 2020-10-06 13.06.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209804/5b3b69a5-f10e-5e46-df2a-5d2beef82803.png)
適当に名前をつけ、NATゲートウェイをおくパブリックサブネットを指定。ElasticIPの割り当ては自動でよければElasticIpの割り当てボタンをクリックすると勝手に振ってくれる。
![スクリーンショット 2020-10-06 13.07.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209804/71724a4d-8868-9b12-5711-b7cd3e72e69b.png)#EC2から外部ネットワークへNATGatewayを経由して接続
VPCのルートテーブルから、対象のEC2インスタンスが存在するPrivateSubn
AWS CLIでオートスケーリンググループの更新・デプロイ
# TL;DL
“`terminal
bash deploy.sh v1.1.1
“`“`sh:deploy.sh
#!/bin/bash
echo “”
echo “### Start Deploy $1 ###”
echo “”echo “”
echo “### SSH Server ###”
echo “”
ssh -A YourSSHTarget bash deploy.shecho “”
echo “### Creating New AMI ###”
echo “”
created_ami_id=$(aws ec2 create-image –instance-id YourInstanceId –name “InstanceName-$1” | jq -r .ImageId)
echo “AMI_ID: $created_ami_id created”echo “”
echo “### Update Launch Template ###”
echo “”# update launch template
prev_template_ver=$
AWS Organizationsと無料枠
AWSの無料枠ってOrganizationsのメンバーアカウントだとどうなるんだっけ、というのを再確認したのでメモ。
# AWSの無料枠
AWSアカウントごとに、無料で使えるリソース量が提供される。特にアカウント作成直後は「12 か月無料」「無期限無料」のものが両方利用できるので、使えるサービスの幅が広い。
> **AWS 無料利用枠では、さまざまな AWS のサービスをそれぞれの上限まで無料でお試しいただけます。無料利用枠には、12 か月無料、無期限無料、短期トライアルの 3 タイプがあります。**12 か月無料タイプを使用したサービスでは、アカウント作成日からの 1 年間、所定の上限まで製品を無料でご使用いただけます。無期限無料タイプを使用したサービスでは、AWS アカウントをお持ちのあいだは常に、所定の上限まで製品を無料でご使用いただけます。短期トライアルタイプを使用したサービスでは、選択されたサービスに応じて、所定の期間か、または 1 回に限り、製品を無料でご使用いただけます。
> ([無料利用枠に関するよくある質問](https://aws.amazon.com/jp/
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 —